diff options
Diffstat (limited to 'ethutil/rlp.go')
-rw-r--r-- | ethutil/rlp.go | 6 |
1 files changed, 6 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)))) |