From 5a62eb923ecd5363888d91c930fd95ae2ab8bc8a Mon Sep 17 00:00:00 2001 From: Anna Shaleva Date: Wed, 1 Apr 2020 20:31:29 +0300 Subject: [PATCH] smartcontract: fix uint160 marshalling in smartcontract.Parameter There's a bug after #785: smartcontract.Parameter of type hash160 should be marshalled in LE (as default marshaller for uint160 does) instead of BE, so fixed. --- pkg/smartcontract/parameter.go | 6 ++---- pkg/smartcontract/parameter_test.go | 8 ++++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/pkg/smartcontract/parameter.go b/pkg/smartcontract/parameter.go index 0fc872785..4152e0512 100644 --- a/pkg/smartcontract/parameter.go +++ b/pkg/smartcontract/parameter.go @@ -66,9 +66,7 @@ func (p *Parameter) MarshalJSON() ([]byte, error) { resultErr error ) switch p.Type { - case Hash160Type: - resultRawValue, resultErr = json.Marshal(p.Value.(util.Uint160).Reverse()) // Hash160 should be marshaled in BE but default marshaler uses LE. - case BoolType, StringType, Hash256Type: + case BoolType, StringType, Hash160Type, Hash256Type: resultRawValue, resultErr = json.Marshal(p.Value) case IntegerType: val, ok := p.Value.(int64) @@ -202,7 +200,7 @@ func (p *Parameter) UnmarshalJSON(data []byte) (err error) { if err = json.Unmarshal(r.Value, &h); err != nil { return } - p.Value = h.Reverse() // Hash160 should be marshaled in BE but default marshaler uses LE. + p.Value = h case Hash256Type: var h util.Uint256 if err = json.Unmarshal(r.Value, &h); err != nil { diff --git a/pkg/smartcontract/parameter_test.go b/pkg/smartcontract/parameter_test.go index 4980dfd51..8371a82c1 100644 --- a/pkg/smartcontract/parameter_test.go +++ b/pkg/smartcontract/parameter_test.go @@ -95,8 +95,8 @@ var marshalJSONTestCases = []struct { input: Parameter{ Type: Hash160Type, Value: util.Uint160{ - 0x0b, 0xcd, 0x29, 0x78, 0x63, 0x4d, 0x96, 0x1c, 0x24, 0xf5, - 0xae, 0xa0, 0x80, 0x22, 0x97, 0xff, 0x12, 0x87, 0x24, 0xd6, + 0xd6, 0x24, 0x87, 0x12, 0xff, 0x97, 0x22, 0x80, 0xa0, 0xae, + 0xf5, 0x24, 0x1c, 0x96, 0x4d, 0x63, 0x78, 0x29, 0xcd, 0xb, }, }, result: `{"type":"Hash160","value":"0x0bcd2978634d961c24f5aea0802297ff128724d6"}`, @@ -188,8 +188,8 @@ var unmarshalJSONTestCases = []struct { result: Parameter{ Type: Hash160Type, Value: util.Uint160{ - 0x0b, 0xcd, 0x29, 0x78, 0x63, 0x4d, 0x96, 0x1c, 0x24, 0xf5, - 0xae, 0xa0, 0x80, 0x22, 0x97, 0xff, 0x12, 0x87, 0x24, 0xd6, + 0xd6, 0x24, 0x87, 0x12, 0xff, 0x97, 0x22, 0x80, 0xa0, 0xae, + 0xf5, 0x24, 0x1c, 0x96, 0x4d, 0x63, 0x78, 0x29, 0xcd, 0xb, }, }, },