aboutsummaryrefslogtreecommitdiffstats
path: root/ethutil
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-10-29 17:34:40 +0800
committerobscuren <geffobscura@gmail.com>2014-10-29 17:34:40 +0800
commitfb4113dab4df8480c77bdcb707fa6b5408755b79 (patch)
treeb369bb26e7b96826120fb08ff61739326add0e92 /ethutil
parent665a44646e9453e37c8a73bdd2c94ba7dc1e7c0a (diff)
downloaddexon-fb4113dab4df8480c77bdcb707fa6b5408755b79.tar
dexon-fb4113dab4df8480c77bdcb707fa6b5408755b79.tar.gz
dexon-fb4113dab4df8480c77bdcb707fa6b5408755b79.tar.bz2
dexon-fb4113dab4df8480c77bdcb707fa6b5408755b79.tar.lz
dexon-fb4113dab4df8480c77bdcb707fa6b5408755b79.tar.xz
dexon-fb4113dab4df8480c77bdcb707fa6b5408755b79.tar.zst
dexon-fb4113dab4df8480c77bdcb707fa6b5408755b79.zip
PoC 7 updates
* Bloom * Block restructure * Receipts
Diffstat (limited to 'ethutil')
-rw-r--r--ethutil/rlp.go6
-rw-r--r--ethutil/value.go4
2 files changed, 10 insertions, 0 deletions
diff --git a/ethutil/rlp.go b/ethutil/rlp.go
index 55406133b..1fff2b28a 100644
--- a/ethutil/rlp.go
+++ b/ethutil/rlp.go
@@ -15,6 +15,10 @@ type RlpEncodeDecode interface {
RlpValue() []interface{}
}
+type RlpEncodable interface {
+ RlpData() interface{}
+}
+
func Rlp(encoder RlpEncode) []byte {
return encoder.RlpEncode()
}
@@ -100,6 +104,8 @@ func Encode(object interface{}) []byte {
switch t := object.(type) {
case *Value:
buff.Write(Encode(t.Raw()))
+ case RlpEncodable:
+ buff.Write(Encode(t.RlpData()))
// Code dup :-/
case int:
buff.Write(Encode(big.NewInt(int64(t))))
diff --git a/ethutil/value.go b/ethutil/value.go
index dd777fa43..6417b0008 100644
--- a/ethutil/value.go
+++ b/ethutil/value.go
@@ -377,6 +377,10 @@ func (val *Value) NewIterator() *ValueIterator {
return &ValueIterator{value: val}
}
+func (it *ValueIterator) Len() int {
+ return it.value.Len()
+}
+
func (it *ValueIterator) Next() bool {
if it.idx >= it.value.Len() {
return false