mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-12 23:13:45 +00:00
fix abigen to create pure/view methods
This commit is contained in:
parent
c69ad1342b
commit
4e6427d076
1 changed files with 9 additions and 7 deletions
|
|
@ -114,12 +114,13 @@ func (abi ABI) UnpackIntoMap(v map[string]interface{}, name string, data []byte)
|
||||||
// UnmarshalJSON implements json.Unmarshaler interface
|
// UnmarshalJSON implements json.Unmarshaler interface
|
||||||
func (abi *ABI) UnmarshalJSON(data []byte) error {
|
func (abi *ABI) UnmarshalJSON(data []byte) error {
|
||||||
var fields []struct {
|
var fields []struct {
|
||||||
Type string
|
Type string
|
||||||
Name string
|
Name string
|
||||||
Constant bool
|
Constant bool
|
||||||
Anonymous bool
|
StateMutability string
|
||||||
Inputs []Argument
|
Anonymous bool
|
||||||
Outputs []Argument
|
Inputs []Argument
|
||||||
|
Outputs []Argument
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := json.Unmarshal(data, &fields); err != nil {
|
if err := json.Unmarshal(data, &fields); err != nil {
|
||||||
|
|
@ -142,9 +143,10 @@ func (abi *ABI) UnmarshalJSON(data []byte) error {
|
||||||
name = fmt.Sprintf("%s%d", field.Name, idx)
|
name = fmt.Sprintf("%s%d", field.Name, idx)
|
||||||
_, ok = abi.Methods[name]
|
_, ok = abi.Methods[name]
|
||||||
}
|
}
|
||||||
|
isConst := field.Constant || field.StateMutability == "pure" || field.StateMutability == "view"
|
||||||
abi.Methods[name] = Method{
|
abi.Methods[name] = Method{
|
||||||
Name: name,
|
Name: name,
|
||||||
Const: field.Constant,
|
Const: isConst,
|
||||||
Inputs: field.Inputs,
|
Inputs: field.Inputs,
|
||||||
Outputs: field.Outputs,
|
Outputs: field.Outputs,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue