@ -31,29 +31,29 @@ import (
const jsondata = `
[
{ "type" : "function" , "name" : "balance" , "constant" : true } ,
{ "type" : "function" , "name" : "send" , "constant" : false , " inputs" : [ { "name" : "amount" , "type" : "uint256" } ] }
{ "type" : "function" , "name" : "balance" , "stateMutability" : "view" } ,
{ "type" : "function" , "name" : "send" , "inputs" : [ { "name" : "amount" , "type" : "uint256" } ] }
] `
const jsondata2 = `
[
{ "type" : "function" , "name" : "balance" , "constant" : true } ,
{ "type" : "function" , "name" : "send" , "constant" : false , " inputs" : [ { "name" : "amount" , "type" : "uint256" } ] } ,
{ "type" : "function" , "name" : "test" , "constant" : false , " inputs" : [ { "name" : "number" , "type" : "uint32" } ] } ,
{ "type" : "function" , "name" : "string" , "constant" : false , " inputs" : [ { "name" : "inputs" , "type" : "string" } ] } ,
{ "type" : "function" , "name" : "bool" , "constant" : false , " inputs" : [ { "name" : "inputs" , "type" : "bool" } ] } ,
{ "type" : "function" , "name" : "address" , "constant" : false , " inputs" : [ { "name" : "inputs" , "type" : "address" } ] } ,
{ "type" : "function" , "name" : "uint64[2]" , "constant" : false , " inputs" : [ { "name" : "inputs" , "type" : "uint64[2]" } ] } ,
{ "type" : "function" , "name" : "uint64[]" , "constant" : false , " inputs" : [ { "name" : "inputs" , "type" : "uint64[]" } ] } ,
{ "type" : "function" , "name" : "foo" , "constant" : false , " inputs" : [ { "name" : "inputs" , "type" : "uint32" } ] } ,
{ "type" : "function" , "name" : "bar" , "constant" : false , " inputs" : [ { "name" : "inputs" , "type" : "uint32" } , { "name" : "string" , "type" : "uint16" } ] } ,
{ "type" : "function" , "name" : "slice" , "constant" : false , " inputs" : [ { "name" : "inputs" , "type" : "uint32[2]" } ] } ,
{ "type" : "function" , "name" : "slice256" , "constant" : false , " inputs" : [ { "name" : "inputs" , "type" : "uint256[2]" } ] } ,
{ "type" : "function" , "name" : "sliceAddress" , "constant" : false , " inputs" : [ { "name" : "inputs" , "type" : "address[]" } ] } ,
{ "type" : "function" , "name" : "sliceMultiAddress" , "constant" : false , " inputs" : [ { "name" : "a" , "type" : "address[]" } , { "name" : "b" , "type" : "address[]" } ] } ,
{ "type" : "function" , "name" : "nestedArray" , "constant" : false , " inputs" : [ { "name" : "a" , "type" : "uint256[2][2]" } , { "name" : "b" , "type" : "address[]" } ] } ,
{ "type" : "function" , "name" : "nestedArray2" , "constant" : false , " inputs" : [ { "name" : "a" , "type" : "uint8[][2]" } ] } ,
{ "type" : "function" , "name" : "nestedSlice" , "constant" : false , " inputs" : [ { "name" : "a" , "type" : "uint8[][]" } ] }
{ "type" : "function" , "name" : "balance" , "stateMutability" : "view" } ,
{ "type" : "function" , "name" : "send" , "inputs" : [ { "name" : "amount" , "type" : "uint256" } ] } ,
{ "type" : "function" , "name" : "test" , "inputs" : [ { "name" : "number" , "type" : "uint32" } ] } ,
{ "type" : "function" , "name" : "string" , "inputs" : [ { "name" : "inputs" , "type" : "string" } ] } ,
{ "type" : "function" , "name" : "bool" , "inputs" : [ { "name" : "inputs" , "type" : "bool" } ] } ,
{ "type" : "function" , "name" : "address" , "inputs" : [ { "name" : "inputs" , "type" : "address" } ] } ,
{ "type" : "function" , "name" : "uint64[2]" , "inputs" : [ { "name" : "inputs" , "type" : "uint64[2]" } ] } ,
{ "type" : "function" , "name" : "uint64[]" , "inputs" : [ { "name" : "inputs" , "type" : "uint64[]" } ] } ,
{ "type" : "function" , "name" : "foo" , "inputs" : [ { "name" : "inputs" , "type" : "uint32" } ] } ,
{ "type" : "function" , "name" : "bar" , "inputs" : [ { "name" : "inputs" , "type" : "uint32" } , { "name" : "string" , "type" : "uint16" } ] } ,
{ "type" : "function" , "name" : "slice" , "inputs" : [ { "name" : "inputs" , "type" : "uint32[2]" } ] } ,
{ "type" : "function" , "name" : "slice256" , "inputs" : [ { "name" : "inputs" , "type" : "uint256[2]" } ] } ,
{ "type" : "function" , "name" : "sliceAddress" , "inputs" : [ { "name" : "inputs" , "type" : "address[]" } ] } ,
{ "type" : "function" , "name" : "sliceMultiAddress" , "inputs" : [ { "name" : "a" , "type" : "address[]" } , { "name" : "b" , "type" : "address[]" } ] } ,
{ "type" : "function" , "name" : "nestedArray" , "inputs" : [ { "name" : "a" , "type" : "uint256[2][2]" } , { "name" : "b" , "type" : "address[]" } ] } ,
{ "type" : "function" , "name" : "nestedArray2" , "inputs" : [ { "name" : "a" , "type" : "uint8[][2]" } ] } ,
{ "type" : "function" , "name" : "nestedSlice" , "inputs" : [ { "name" : "a" , "type" : "uint8[][]" } ] }
] `
func TestReader ( t * testing . T ) {
@ -61,10 +61,10 @@ func TestReader(t *testing.T) {
exp := ABI {
Methods : map [ string ] Method {
"balance" : {
"balance" , "balance" , tru e, nil , nil ,
"balance" , "balance" , "view" , false , false , false , fals e, nil , nil ,
} ,
"send" : {
"send" , "send" , false , [ ] Argument {
"send" , "send" , "" , false , false , false , false , [ ] Argument {
{ "amount" , Uint256 , false } ,
} , nil ,
} ,
@ -173,7 +173,7 @@ func TestTestSlice(t *testing.T) {
func TestMethodSignature ( t * testing . T ) {
String , _ := NewType ( "string" , "" , nil )
m := Method { "foo" , "foo" , false , [ ] Argument { { "bar" , String , false } , { "baz" , String , false } } , nil }
m := Method { "foo" , "foo" , "" , false , false , false , false , [ ] Argument { { "bar" , String , false } , { "baz" , String , false } } , nil }
exp := "foo(string,string)"
if m . Sig ( ) != exp {
t . Error ( "signature mismatch" , exp , "!=" , m . Sig ( ) )
@ -185,7 +185,7 @@ func TestMethodSignature(t *testing.T) {
}
uintt , _ := NewType ( "uint256" , "" , nil )
m = Method { "foo" , "foo" , false , [ ] Argument { { "bar" , uintt , false } } , nil }
m = Method { "foo" , "foo" , "" , false , false , false , false , [ ] Argument { { "bar" , uintt , false } } , nil }
exp = "foo(uint256)"
if m . Sig ( ) != exp {
t . Error ( "signature mismatch" , exp , "!=" , m . Sig ( ) )
@ -204,7 +204,7 @@ func TestMethodSignature(t *testing.T) {
{ Name : "y" , Type : "int256" } ,
} } ,
} )
m = Method { "foo" , "foo" , false , [ ] Argument { { "s" , s , false } , { "bar" , String , false } } , nil }
m = Method { "foo" , "foo" , "" , false , false , false , false , [ ] Argument { { "s" , s , false } , { "bar" , String , false } } , nil }
exp = "foo((int256,int256[],(int256,int256)[],(int256,int256)[2]),string)"
if m . Sig ( ) != exp {
t . Error ( "signature mismatch" , exp , "!=" , m . Sig ( ) )
@ -582,7 +582,7 @@ func TestInputFixedArrayAndVariableInputLength(t *testing.T) {
}
func TestDefaultFunctionParsing ( t * testing . T ) {
const definition = ` [ { "name" : "balance" }] `
const definition = ` [ { "name" : "balance", "type" : "function" }] `
abi , err := JSON ( strings . NewReader ( definition ) )
if err != nil {