|
|
|
@ -357,8 +357,6 @@ func TestMethodPack(t *testing.T) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
sig := abi.Methods["slice"].Id() |
|
|
|
|
sig = append(sig, common.LeftPadBytes([]byte{32}, 32)...) |
|
|
|
|
sig = append(sig, common.LeftPadBytes([]byte{2}, 32)...) |
|
|
|
|
sig = append(sig, common.LeftPadBytes([]byte{1}, 32)...) |
|
|
|
|
sig = append(sig, common.LeftPadBytes([]byte{2}, 32)...) |
|
|
|
|
|
|
|
|
@ -406,8 +404,6 @@ func TestMethodPack(t *testing.T) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
sig = abi.Methods["slice256"].Id() |
|
|
|
|
sig = append(sig, common.LeftPadBytes([]byte{32}, 32)...) |
|
|
|
|
sig = append(sig, common.LeftPadBytes([]byte{2}, 32)...) |
|
|
|
|
sig = append(sig, common.LeftPadBytes([]byte{1}, 32)...) |
|
|
|
|
sig = append(sig, common.LeftPadBytes([]byte{2}, 32)...) |
|
|
|
|
|
|
|
|
@ -931,6 +927,7 @@ func TestUnmarshal(t *testing.T) { |
|
|
|
|
{ "name" : "bytes", "constant" : false, "outputs": [ { "type": "bytes" } ] }, |
|
|
|
|
{ "name" : "fixed", "constant" : false, "outputs": [ { "type": "bytes32" } ] }, |
|
|
|
|
{ "name" : "multi", "constant" : false, "outputs": [ { "type": "bytes" }, { "type": "bytes" } ] }, |
|
|
|
|
{ "name" : "intArraySingle", "constant" : false, "outputs": [ { "type": "uint256[3]" } ] }, |
|
|
|
|
{ "name" : "addressSliceSingle", "constant" : false, "outputs": [ { "type": "address[]" } ] }, |
|
|
|
|
{ "name" : "addressSliceDouble", "constant" : false, "outputs": [ { "name": "a", "type": "address[]" }, { "name": "b", "type": "address[]" } ] }, |
|
|
|
|
{ "name" : "mixedBytes", "constant" : true, "outputs": [ { "name": "a", "type": "bytes" }, { "name": "b", "type": "bytes32" } ] }]` |
|
|
|
@ -1083,6 +1080,26 @@ func TestUnmarshal(t *testing.T) { |
|
|
|
|
t.Errorf("expected %x, got %x", fixed, out[1]) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
buff.Reset() |
|
|
|
|
buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) |
|
|
|
|
buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) |
|
|
|
|
buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000003")) |
|
|
|
|
// marshal int array
|
|
|
|
|
var intArray [3]*big.Int |
|
|
|
|
err = abi.Unpack(&intArray, "intArraySingle", buff.Bytes()) |
|
|
|
|
if err != nil { |
|
|
|
|
t.Error(err) |
|
|
|
|
} |
|
|
|
|
var testAgainstIntArray [3]*big.Int |
|
|
|
|
testAgainstIntArray[0] = big.NewInt(1) |
|
|
|
|
testAgainstIntArray[1] = big.NewInt(2) |
|
|
|
|
testAgainstIntArray[2] = big.NewInt(3) |
|
|
|
|
|
|
|
|
|
for i, Int := range intArray { |
|
|
|
|
if Int.Cmp(testAgainstIntArray[i]) != 0 { |
|
|
|
|
t.Errorf("expected %v, got %v", testAgainstIntArray[i], Int) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// marshal address slice
|
|
|
|
|
buff.Reset() |
|
|
|
|
buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) // offset
|
|
|
|
|