diff options
author | Péter Szilágyi <peterke@gmail.com> | 2016-03-16 19:12:14 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2016-03-16 19:12:14 +0800 |
commit | 8b6ae6bf86091483a7514b272bafcf730def0200 (patch) | |
tree | ab961c903c234a8997e24defedd018f9b1157ede | |
parent | 2855a93ede6e9437d05a82c2397d48744621db9b (diff) | |
parent | 270ea6eec330962d083fb66453cee563985114c2 (diff) | |
download | dexon-8b6ae6bf86091483a7514b272bafcf730def0200.tar.gz dexon-8b6ae6bf86091483a7514b272bafcf730def0200.tar.zst dexon-8b6ae6bf86091483a7514b272bafcf730def0200.zip |
Merge pull request #2355 from karalabe/abi-constant-functions-2
accounts/abi: handle the "constant" modifier for functions
-rw-r--r-- | accounts/abi/abi.go | 14 | ||||
-rw-r--r-- | accounts/abi/method.go | 7 |
2 files changed, 12 insertions, 9 deletions
diff --git a/accounts/abi/abi.go b/accounts/abi/abi.go index 324d3c76f..3704e6262 100644 --- a/accounts/abi/abi.go +++ b/accounts/abi/abi.go @@ -268,12 +268,12 @@ func set(dst, src reflect.Value, output Argument) error { func (abi *ABI) UnmarshalJSON(data []byte) error { var fields []struct { - Type string - Name string - Const bool - Indexed bool - Inputs []Argument - Outputs []Argument + Type string + Name string + Constant bool + Indexed bool + Inputs []Argument + Outputs []Argument } if err := json.Unmarshal(data, &fields); err != nil { @@ -288,7 +288,7 @@ func (abi *ABI) UnmarshalJSON(data []byte) error { case "function", "": abi.Methods[field.Name] = Method{ Name: field.Name, - Const: field.Const, + Const: field.Constant, Inputs: field.Inputs, Outputs: field.Outputs, } diff --git a/accounts/abi/method.go b/accounts/abi/method.go index e259c09aa..206c7d408 100644 --- a/accounts/abi/method.go +++ b/accounts/abi/method.go @@ -67,8 +67,11 @@ func (m Method) String() string { } outputs[i] += output.Type.String() } - - return fmt.Sprintf("function %v(%v) returns(%v)", m.Name, strings.Join(inputs, ", "), strings.Join(outputs, ", ")) + constant := "" + if m.Const { + constant = "constant " + } + return fmt.Sprintf("function %v(%v) %sreturns(%v)", m.Name, strings.Join(inputs, ", "), constant, strings.Join(outputs, ", ")) } func (m Method) Id() []byte { |