accounts/abi/bind: Accept function ptr parameter (#19755)

* accounts/abi/bind: Accept function ptr parameter

They are translated as [24]byte

* Add Java template version

* accounts/abi/bind: fix merge issue

* Fix CI
This commit is contained in:
Guillaume Ballet
2019-07-02 09:52:58 +02:00
committed by GitHub
parent 0b26a826e9
commit 6bf5555c4f
6 changed files with 100 additions and 14 deletions

View File

@ -44,7 +44,7 @@ const (
// to be used as is in client code, but rather as an intermediate struct which
// enforces compile time type safety and naming convention opposed to having to
// manually maintain hard coded strings that break on runtime.
func Bind(types []string, abis []string, bytecodes []string, pkg string, lang Lang) (string, error) {
func Bind(types []string, abis []string, bytecodes []string, fsigs []map[string]string, pkg string, lang Lang) (string, error) {
// Process each individual contract requested binding
contracts := make(map[string]*tmplContract)
@ -125,6 +125,9 @@ func Bind(types []string, abis []string, bytecodes []string, pkg string, lang La
Transacts: transacts,
Events: events,
}
if len(fsigs) > i {
contracts[types[i]].FuncSigs = fsigs[i]
}
}
// Generate the contract template data content and render it
data := &tmplData{
@ -180,8 +183,7 @@ func bindBasicTypeGo(kind abi.Type) string {
case abi.BytesTy:
return "[]byte"
case abi.FunctionTy:
// todo(rjl493456442)
return ""
return "[24]byte"
default:
// string, bool types
return kind.String()
@ -240,8 +242,7 @@ func bindBasicTypeJava(kind abi.Type) string {
case abi.StringTy:
return "String"
case abi.FunctionTy:
// todo(rjl493456442)
return ""
return "byte[24]"
default:
return kind.String()
}