mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
accounts/abi/bind: removed unnecessary resolve methods
This commit is contained in:
parent
54d50175b0
commit
4da3e03dc8
1 changed files with 3 additions and 66 deletions
|
|
@ -537,9 +537,7 @@ var methodNormalizer = map[Lang]func(string) string{
|
||||||
}
|
}
|
||||||
|
|
||||||
// capitalise makes a camel-case string which starts with an upper case character.
|
// capitalise makes a camel-case string which starts with an upper case character.
|
||||||
func capitalise(input string) string {
|
var capitalise = abi.ToCamelCase
|
||||||
return abi.ToCamelCase(input)
|
|
||||||
}
|
|
||||||
|
|
||||||
// decapitalise makes a camel-case string which starts with a lower case character.
|
// decapitalise makes a camel-case string which starts with a lower case character.
|
||||||
func decapitalise(input string) string {
|
func decapitalise(input string) string {
|
||||||
|
|
@ -589,73 +587,12 @@ func hasStruct(t abi.Type) bool {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// resolveArgName converts a raw argument representation into a user friendly format.
|
|
||||||
func resolveArgName(arg abi.Argument, structs map[string]*tmplStruct) string {
|
|
||||||
var (
|
|
||||||
prefix string
|
|
||||||
embedded string
|
|
||||||
typ = &arg.Type
|
|
||||||
)
|
|
||||||
loop:
|
|
||||||
for {
|
|
||||||
switch typ.T {
|
|
||||||
case abi.SliceTy:
|
|
||||||
prefix += "[]"
|
|
||||||
case abi.ArrayTy:
|
|
||||||
prefix += fmt.Sprintf("[%d]", typ.Size)
|
|
||||||
default:
|
|
||||||
embedded = typ.TupleRawName + typ.String()
|
|
||||||
break loop
|
|
||||||
}
|
|
||||||
typ = typ.Elem
|
|
||||||
}
|
|
||||||
if s, exist := structs[embedded]; exist {
|
|
||||||
return prefix + s.Name
|
|
||||||
} else {
|
|
||||||
return arg.Type.String()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// formatMethod transforms raw method representation into a user friendly one.
|
// formatMethod transforms raw method representation into a user friendly one.
|
||||||
func formatMethod(method abi.Method, structs map[string]*tmplStruct) string {
|
func formatMethod(method abi.Method, structs map[string]*tmplStruct) string {
|
||||||
inputs := make([]string, len(method.Inputs))
|
return method.String()
|
||||||
for i, input := range method.Inputs {
|
|
||||||
inputs[i] = fmt.Sprintf("%v %v", resolveArgName(input, structs), input.Name)
|
|
||||||
}
|
|
||||||
outputs := make([]string, len(method.Outputs))
|
|
||||||
for i, output := range method.Outputs {
|
|
||||||
outputs[i] = resolveArgName(output, structs)
|
|
||||||
if len(output.Name) > 0 {
|
|
||||||
outputs[i] += fmt.Sprintf(" %v", output.Name)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Extract meaningful state mutability of solidity method.
|
|
||||||
// If it's default value, never print it.
|
|
||||||
state := method.StateMutability
|
|
||||||
if state == "nonpayable" {
|
|
||||||
state = ""
|
|
||||||
}
|
|
||||||
if state != "" {
|
|
||||||
state = state + " "
|
|
||||||
}
|
|
||||||
identity := fmt.Sprintf("function %v", method.RawName)
|
|
||||||
if method.Type == abi.Fallback {
|
|
||||||
identity = "fallback"
|
|
||||||
} else if method.Type == abi.Receive {
|
|
||||||
identity = "receive"
|
|
||||||
}
|
|
||||||
return fmt.Sprintf("%s(%v) %sreturns(%v)", identity, strings.Join(inputs, ", "), state, strings.Join(outputs, ", "))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// formatEvent transforms raw event representation into a user friendly one.
|
// formatEvent transforms raw event representation into a user friendly one.
|
||||||
func formatEvent(event abi.Event, structs map[string]*tmplStruct) string {
|
func formatEvent(event abi.Event, structs map[string]*tmplStruct) string {
|
||||||
inputs := make([]string, len(event.Inputs))
|
return event.String()
|
||||||
for i, input := range event.Inputs {
|
|
||||||
if input.Indexed {
|
|
||||||
inputs[i] = fmt.Sprintf("%v indexed %v", resolveArgName(input, structs), input.Name)
|
|
||||||
} else {
|
|
||||||
inputs[i] = fmt.Sprintf("%v %v", resolveArgName(input, structs), input.Name)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return fmt.Sprintf("event %v(%v)", event.RawName, strings.Join(inputs, ", "))
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue