mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-13 15:33:47 +00:00
wip
This commit is contained in:
parent
5eb7271f0b
commit
6a007cac18
16 changed files with 331 additions and 66 deletions
|
|
@ -134,11 +134,9 @@ func (cb *contractBinder) bindMethod(original abi.Method) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// normalizeErrorOrEventFields normalizes errors/events for emitting through bindings:
|
func normalizeArgs(inp abi.Arguments) abi.Arguments {
|
||||||
// Any anonymous fields are given generated names.
|
normalizedArguments := make([]abi.Argument, len(inp))
|
||||||
func (cb *contractBinder) normalizeErrorOrEventFields(originalInputs abi.Arguments) abi.Arguments {
|
copy(normalizedArguments, inp)
|
||||||
normalizedArguments := make([]abi.Argument, len(originalInputs))
|
|
||||||
copy(normalizedArguments, originalInputs)
|
|
||||||
used := make(map[string]bool)
|
used := make(map[string]bool)
|
||||||
|
|
||||||
for i, input := range normalizedArguments {
|
for i, input := range normalizedArguments {
|
||||||
|
|
@ -152,6 +150,15 @@ func (cb *contractBinder) normalizeErrorOrEventFields(originalInputs abi.Argumen
|
||||||
}
|
}
|
||||||
normalizedArguments[i].Name = fmt.Sprintf("%s%d", normalizedArguments[i].Name, index)
|
normalizedArguments[i].Name = fmt.Sprintf("%s%d", normalizedArguments[i].Name, index)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
return normalizedArguments
|
||||||
|
}
|
||||||
|
|
||||||
|
// normalizeErrorOrEventFields normalizes errors/events for emitting through bindings:
|
||||||
|
// Any anonymous fields are given generated names.
|
||||||
|
func (cb *contractBinder) normalizeErrorOrEventFields(originalInputs abi.Arguments) abi.Arguments {
|
||||||
|
normalizedArguments := normalizeArgs(originalInputs)
|
||||||
|
for _, input := range normalizedArguments {
|
||||||
if hasStruct(input.Type) {
|
if hasStruct(input.Type) {
|
||||||
cb.binder.BindStructType(input.Type)
|
cb.binder.BindStructType(input.Type)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -19,6 +19,9 @@ package v2
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"github.com/ethereum/go-ethereum/accounts/abi/bind/v2/internal/contracts/events"
|
||||||
|
"github.com/ethereum/go-ethereum/accounts/abi/bind/v2/internal/contracts/nested_libraries"
|
||||||
|
"github.com/ethereum/go-ethereum/accounts/abi/bind/v2/internal/contracts/solc_errors"
|
||||||
"io"
|
"io"
|
||||||
"math/big"
|
"math/big"
|
||||||
"os"
|
"os"
|
||||||
|
|
@ -30,9 +33,6 @@ import (
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi"
|
"github.com/ethereum/go-ethereum/accounts/abi"
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi/bind"
|
"github.com/ethereum/go-ethereum/accounts/abi/bind"
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi/bind/backends"
|
"github.com/ethereum/go-ethereum/accounts/abi/bind/backends"
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi/bind/v2/internal/events"
|
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi/bind/v2/internal/nested_libraries"
|
|
||||||
"github.com/ethereum/go-ethereum/accounts/abi/bind/v2/internal/solc_errors"
|
|
||||||
"github.com/ethereum/go-ethereum/cmd/utils"
|
"github.com/ethereum/go-ethereum/cmd/utils"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/ethereum/go-ethereum/common"
|
||||||
"github.com/ethereum/go-ethereum/common/compiler"
|
"github.com/ethereum/go-ethereum/common/compiler"
|
||||||
|
|
@ -474,3 +474,5 @@ func TestBindingGeneration(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// contract test ideas (from the v1 bind tests): error that takes struct argument. constructor that takes struct arg.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue