diff --git a/.githooks/go-lint b/.githooks/go-lint index f2f2c4879..131c80c48 100755 --- a/.githooks/go-lint +++ b/.githooks/go-lint @@ -7,7 +7,7 @@ find "./" -type f -name 'go.mod' -print0 | while IFS= read -r -d $'\0' file; do # Run linter and capture exit status set +e - golangci-lint run + golangci-lint run -v linting_result=$? set -e diff --git a/.github/workflows/seth-lint.yml b/.github/workflows/seth-lint.yml index ac68ad8f8..a9712b1d3 100644 --- a/.github/workflows/seth-lint.yml +++ b/.github/workflows/seth-lint.yml @@ -24,7 +24,7 @@ jobs: if: steps.changes.outputs.src == 'true' with: nix_path: nixpkgs=channel:nixos-unstable - - name: Run tests + - name: Lint if: steps.changes.outputs.src == 'true' run: | nix develop -c make lint diff --git a/.golangci.yaml b/.golangci.yaml index 58c13b4d8..83f6b3c25 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -87,3 +87,6 @@ issues: - wasp/examples/* - seth/examples_wasp/* - k8s + - seth/contracts + - seth/examples + - seth/examples_wasp diff --git a/docker/test_env/cmd/.private_chains/ethereum_network_2ad80558.toml b/docker/test_env/cmd/.private_chains/ethereum_network_2ad80558.toml new file mode 100644 index 000000000..4c6189d0f --- /dev/null +++ b/docker/test_env/cmd/.private_chains/ethereum_network_2ad80558.toml @@ -0,0 +1,31 @@ +ethereum_version = 'eth2' +consensus_layer = 'prysm' +execution_layer = 'geth' +docker_network_names = ['network-25952094-f1aa-4ee1-8459-f28928cad7c9'] +wait_for_finalization = false +generated_data_host_dir = '/var/folders/q4/975jb0kx3bb2x_yy0_7mf2y00000gn/T/metadata1688318665' +val_keys_dir = '/var/folders/q4/975jb0kx3bb2x_yy0_7mf2y00000gn/T/val_keys2002154029' +node_log_level = 'info' + +[[containers]] +container_name = 'geth-eth2-v1_14_3-22cb547f' +container_type = 'execution_layer' + +[[containers]] +container_name = 'prysm-beacon-chain-6051e27f' +container_type = 'consensus_layer' + +[[containers]] +container_name = 'prysm-validator-975ad786' +container_type = 'consensus_validator' + +[EthereumChainConfig] +seconds_per_slot = 6 +slots_per_epoch = 2 +genesis_delay = 15 +validator_count = 8 +chain_id = 1337 +GenesisTimestamp = 1724770017 +addresses_to_fund = ['0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'] + +[EthereumChainConfig.HardForkEpochs] diff --git a/docker/test_env/cmd/.private_chains/ethereum_network_6c196142.toml b/docker/test_env/cmd/.private_chains/ethereum_network_6c196142.toml new file mode 100644 index 000000000..9f61aee6b --- /dev/null +++ b/docker/test_env/cmd/.private_chains/ethereum_network_6c196142.toml @@ -0,0 +1,31 @@ +ethereum_version = 'eth2' +consensus_layer = 'prysm' +execution_layer = 'geth' +docker_network_names = ['network-1c36e593-ba16-41b9-a5e9-c1ac0084175c'] +wait_for_finalization = false +generated_data_host_dir = '/var/folders/q4/975jb0kx3bb2x_yy0_7mf2y00000gn/T/metadata3375294890' +val_keys_dir = '/var/folders/q4/975jb0kx3bb2x_yy0_7mf2y00000gn/T/val_keys3731567686' +node_log_level = 'info' + +[[containers]] +container_name = 'geth-eth2-v1_14_3-d3d721f4' +container_type = 'execution_layer' + +[[containers]] +container_name = 'prysm-beacon-chain-f5ae0a0f' +container_type = 'consensus_layer' + +[[containers]] +container_name = 'prysm-validator-92dea702' +container_type = 'consensus_validator' + +[EthereumChainConfig] +seconds_per_slot = 6 +slots_per_epoch = 2 +genesis_delay = 15 +validator_count = 8 +chain_id = 2337 +GenesisTimestamp = 1724770169 +addresses_to_fund = ['0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'] + +[EthereumChainConfig.HardForkEpochs] diff --git a/seth/.golangci.yml b/seth/.golangci.yml new file mode 100644 index 000000000..e90c7bd61 --- /dev/null +++ b/seth/.golangci.yml @@ -0,0 +1,86 @@ +run: + concurrency: 4 + timeout: 5m +linters: + enable: + # defaults + - errcheck + - gosimple + - govet + - ineffassign + - staticcheck + - typecheck + - unused + # extra + - exhaustive + - exportloopref + - revive + - goimports + - gosec + - misspell + - errorlint + - contextcheck +linters-settings: + exhaustive: + default-signifies-exhaustive: true + goimports: + local-prefixes: github.com/smartcontractkit/chainlink-testing-framework/seth + gosec: + exclude-generated: true + govet: + # report about shadowed variables + check-shadowing: false + errorlint: + # Allow formatting of errors without %w + errorf: false + revive: + confidence: 0.8 + rules: + - name: blank-imports + - name: context-as-argument + - name: context-keys-type + - name: dot-imports + - name: error-return + - name: error-strings + - name: error-naming + - name: if-return + - name: increment-decrement +# - name: var-naming + - name: var-declaration + - name: package-comments + - name: range + - name: receiver-naming + - name: time-naming + - name: unexported-return + - name: indent-error-flow + - name: errorf + - name: exported + - name: empty-block + - name: superfluous-else + - name: unused-parameter + - name: unreachable-code + - name: redefines-builtin-id + - name: waitgroup-by-value + - name: unconditional-recursion + - name: struct-tag + - name: string-format + - name: string-of-int + - name: range-val-address + - name: range-val-in-closure + - name: modifies-value-receiver + - name: modifies-parameter + - name: identical-branches + - name: get-return + - name: flag-parameter + - name: early-return + - name: defer + - name: constant-logical-expr + - name: confusing-naming +# - name: confusing-results + - name: bool-literal-in-expr + - name: atomic +issues: + exclude-dirs: + - contracts/* + - examples/* + - examples_wasp/* diff --git a/seth/Makefile b/seth/Makefile index f41ce5c5e..141a9cb9c 100644 --- a/seth/Makefile +++ b/seth/Makefile @@ -64,4 +64,4 @@ test_cover: .PHONY: lint lint: - golangci-lint --color=always run -v + golangci-lint --color=always run -v -c .golangci.yml diff --git a/seth/README.md b/seth/README.md index 584ba4076..f93719836 100644 --- a/seth/README.md +++ b/seth/README.md @@ -219,13 +219,15 @@ client, err := builder. WithProtections(true, true, seth.MustMakeDuration(2*time.Minute)). // artifacts folder WithArtifactsFolder("some_folder"). + // folder with gethwrappers for ABI decoding + WithGethWrappersFolders([]string{"./gethwrappers/ccip", "./gethwrappers/keystone"}). // nonce manager WithNonceManager(10, 3, 60, 5). // EIP-1559 and gas estimations WithEIP1559DynamicFees(true). WithDynamicGasPrices(120_000_000_000, 44_000_000_000). WithGasPriceEstimations(false, 10, seth.Priority_Fast). - // gas bumping: retries, max gas price, bumping strategy function +// gas bumping: retries, max gas price, bumping strategy function WithGasBumping(5, 100_000_000_000, PriorityBasedGasBumpingStrategyFn). Build() diff --git a/seth/client.go b/seth/client.go index 58ea752b3..857886e3c 100644 --- a/seth/client.go +++ b/seth/client.go @@ -84,7 +84,7 @@ func NewClientWithConfig(cfg *Config) (*Client, error) { L.Debug().Msgf("Using tracing level: %s", cfg.TracingLevel) cfg.setEphemeralAddrs() - cs, err := NewContractStore(filepath.Join(cfg.ConfigDir, cfg.ABIDir), filepath.Join(cfg.ConfigDir, cfg.BINDir)) + cs, err := NewContractStore(filepath.Join(cfg.ConfigDir, cfg.ABIDir), filepath.Join(cfg.ConfigDir, cfg.BINDir), cfg.GethWrappersDirs) if err != nil { return nil, errors.Wrap(err, ErrCreateABIStore) } @@ -354,7 +354,7 @@ func NewClientRaw( if c.Cfg.TracingLevel != TracingLevel_None && c.Tracer == nil { if c.ContractStore == nil { - cs, err := NewContractStore(filepath.Join(cfg.ConfigDir, cfg.ABIDir), filepath.Join(cfg.ConfigDir, cfg.BINDir)) + cs, err := NewContractStore(filepath.Join(cfg.ConfigDir, cfg.ABIDir), filepath.Join(cfg.ConfigDir, cfg.BINDir), cfg.GethWrappersDirs) if err != nil { return nil, errors.Wrap(err, ErrCreateABIStore) } diff --git a/seth/client_builder.go b/seth/client_builder.go index e985f0589..5967a30dd 100644 --- a/seth/client_builder.go +++ b/seth/client_builder.go @@ -228,6 +228,13 @@ func (c *ClientBuilder) WithArtifactsFolder(folder string) *ClientBuilder { return c } +// WithGethWrappersFolders sets list of folders where the Geth wrappers are stored. Seth will load ABIs from all wrappers it finds in theses folders (including subfolders). +// Default value is an empty string (= loading disabled). +func (c *ClientBuilder) WithGethWrappersFolders(folders []string) *ClientBuilder { + c.config.GethWrappersDirs = folders + return c +} + // WithNonceManager sets the rate limit for key sync, number of retries, timeout and retry delay. // Default values are 10 calls per second, 3 retires, 60s timeout and 5s retry delay. func (c *ClientBuilder) WithNonceManager(rateLimitSec int, retries uint, timeout, retryDelay time.Duration) *ClientBuilder { diff --git a/seth/client_main_test.go b/seth/client_main_test.go index 0bb339c52..55063257c 100644 --- a/seth/client_main_test.go +++ b/seth/client_main_test.go @@ -129,7 +129,7 @@ func NewDebugContractSetup() ( if err != nil { return nil, nil, common.Address{}, common.Address{}, nil, err } - cs, err := seth.NewContractStore("./contracts/abi", "./contracts/bin") + cs, err := seth.NewContractStore("./contracts/abi", "./contracts/bin", nil) if err != nil { return nil, nil, common.Address{}, common.Address{}, nil, err } diff --git a/seth/client_trace_test.go b/seth/client_trace_test.go index 40a33d10d..018f1e79d 100644 --- a/seth/client_trace_test.go +++ b/seth/client_trace_test.go @@ -1517,7 +1517,7 @@ func TestTraceContractTracingClientInitialisesTracerIfTracingIsEnabled(t *testin cfg, err := test_utils.CopyConfig(TestEnv.Client.Cfg) require.NoError(t, err, "failed to copy config") - as, err := seth.NewContractStore(filepath.Join(cfg.ConfigDir, cfg.ABIDir), filepath.Join(cfg.ConfigDir, cfg.BINDir)) + as, err := seth.NewContractStore(filepath.Join(cfg.ConfigDir, cfg.ABIDir), filepath.Join(cfg.ConfigDir, cfg.BINDir), nil) require.NoError(t, err, "failed to create contract store") nm, err := seth.NewNonceManager(cfg, TestEnv.Client.Addresses, TestEnv.Client.PrivateKeys) @@ -1567,7 +1567,7 @@ func TestTraceContractTracingSaveToJson(t *testing.T) { cfg, err := test_utils.CopyConfig(TestEnv.Client.Cfg) require.NoError(t, err, "failed to copy config") - as, err := seth.NewContractStore(filepath.Join(cfg.ConfigDir, cfg.ABIDir), filepath.Join(cfg.ConfigDir, cfg.BINDir)) + as, err := seth.NewContractStore(filepath.Join(cfg.ConfigDir, cfg.ABIDir), filepath.Join(cfg.ConfigDir, cfg.BINDir), nil) require.NoError(t, err, "failed to create contract store") nm, err := seth.NewNonceManager(cfg, TestEnv.Client.Addresses, TestEnv.Client.PrivateKeys) diff --git a/seth/config.go b/seth/config.go index b28cd6700..cb335f8d0 100644 --- a/seth/config.go +++ b/seth/config.go @@ -52,6 +52,7 @@ type Config struct { RootKeyFundsBuffer *int64 `toml:"root_key_funds_buffer"` ABIDir string `toml:"abi_dir"` BINDir string `toml:"bin_dir"` + GethWrappersDirs []string `toml:"geth_wrappers_dirs"` ContractMapFile string `toml:"contract_map_file"` SaveDeployedContractsMap bool `toml:"save_deployed_contracts_map"` Network *Network `toml:"network"` diff --git a/seth/config_test.go b/seth/config_test.go index effa73d67..8b316dfc2 100644 --- a/seth/config_test.go +++ b/seth/config_test.go @@ -70,6 +70,8 @@ func TestConfig_MaximalBuilder(t *testing.T) { WithProtections(true, true, seth.MustMakeDuration(2*time.Minute)). // artifacts folder WithArtifactsFolder("some_folder"). + // geth wrappers folders + WithGethWrappersFolders([]string{"./contracts/bind"}). // nonce manager WithNonceManager(10, 3, 60, 5). Build() diff --git a/seth/contract_store.go b/seth/contract_store.go index 49c3697fe..1be1bcad8 100644 --- a/seth/contract_store.go +++ b/seth/contract_store.go @@ -1,6 +1,11 @@ package seth import ( + "encoding/json" + "fmt" + "go/ast" + "go/parser" + "go/token" "os" "path/filepath" "strings" @@ -15,6 +20,7 @@ const ( ErrOpenABIFile = "failed to open ABI file" ErrParseABI = "failed to parse ABI file" ErrOpenBINFile = "failed to open BIN file" + ErrNoABIInFile = "no ABI content found in file" ) // ContractStore contains all ABIs that are used in decoding. It might also contain contract bytecode for deployment @@ -73,13 +79,36 @@ func (c *ContractStore) AddBIN(name string, bin []byte) { } // NewContractStore creates a new Contract store -func NewContractStore(abiPath, binPath string) (*ContractStore, error) { +func NewContractStore(abiPath, binPath string, gethWrappersPaths []string) (*ContractStore, error) { cs := &ContractStore{ABIs: make(ABIStore), BINs: make(map[string][]byte), mu: &sync.RWMutex{}} + if len(gethWrappersPaths) > 0 && abiPath != "" { + L.Debug().Msg("ABI files are loaded from both ABI path and Geth wrappers path. This might result in ABI duplication. It shouldn't cause any issues, but it's best to chose only one method.") + } + + err := cs.loadABIs(abiPath) + if err != nil { + return nil, err + } + + err = cs.loadBINs(binPath) + if err != nil { + return nil, err + } + + err = cs.loadGethWrappers(gethWrappersPaths) + if err != nil { + return nil, errors.Wrapf(err, "failed to load geth wrappers from %v", gethWrappersPaths) + } + + return cs, nil +} + +func (c *ContractStore) loadABIs(abiPath string) error { if abiPath != "" { files, err := os.ReadDir(abiPath) if err != nil { - return nil, err + return err } var foundABI bool for _, f := range files { @@ -87,26 +116,29 @@ func NewContractStore(abiPath, binPath string) (*ContractStore, error) { L.Debug().Str("File", f.Name()).Msg("ABI file loaded") ff, err := os.Open(filepath.Join(abiPath, f.Name())) if err != nil { - return nil, errors.Wrap(err, ErrOpenABIFile) + return errors.Wrap(err, ErrOpenABIFile) } a, err := abi.JSON(ff) if err != nil { - return nil, errors.Wrap(err, ErrParseABI) + return errors.Wrap(err, ErrParseABI) } - cs.ABIs[f.Name()] = a + c.ABIs[f.Name()] = a foundABI = true } } if !foundABI { - L.Warn().Msg("No ABI files found") - L.Warn().Msg("You will need to provide the bytecode manually, when deploying contracts") + return fmt.Errorf("no ABI files found in '%s'. Fix the path or comment out 'abi_dir' setting", abiPath) } } + return nil +} + +func (c *ContractStore) loadBINs(binPath string) error { if binPath != "" { files, err := os.ReadDir(binPath) if err != nil { - return nil, err + return err } var foundBIN bool for _, f := range files { @@ -114,17 +146,152 @@ func NewContractStore(abiPath, binPath string) (*ContractStore, error) { L.Debug().Str("File", f.Name()).Msg("BIN file loaded") bin, err := os.ReadFile(filepath.Join(binPath, f.Name())) if err != nil { - return nil, errors.Wrap(err, ErrOpenBINFile) + return errors.Wrap(err, ErrOpenBINFile) } - cs.BINs[f.Name()] = common.FromHex(string(bin)) + c.BINs[f.Name()] = common.FromHex(string(bin)) foundBIN = true } } if !foundBIN { - L.Warn().Msg("No BIN files found") - L.Warn().Msg("You will need to provide the bytecode manually, when deploying contracts") + return fmt.Errorf("no BIN files found in '%s'. Fix the path or comment out 'bin_dir' setting", binPath) } } - return cs, nil + return nil +} + +func (c *ContractStore) loadGethWrappers(gethWrappersPaths []string) error { + foundWrappers := false + for _, gethWrappersPath := range gethWrappersPaths { + err := filepath.Walk(gethWrappersPath, func(path string, _ os.FileInfo, err error) error { + if err != nil { + return err + } + + if filepath.Ext(path) == ".go" { + contractName, abiContent, err := extractABIFromGethWrapperDir(path) + if err != nil { + if !strings.Contains(err.Error(), ErrNoABIInFile) { + return err + } + L.Debug().Err(err).Msg("ABI not found in file. Skipping") + + return nil + } + c.AddABI(contractName, *abiContent) + + // we want to know whether we found at least one wrapper + if !foundWrappers { + foundWrappers = true + } + } + return nil + }) + + if err != nil { + return err + } + } + + if len(gethWrappersPaths) > 0 && !foundWrappers { + return fmt.Errorf("no geth wrappers found in '%v'. Fix the path or comment out 'geth_wrappers_dirs' setting", gethWrappersPaths) + } + + return nil +} + +// extractABIFromGethWrapperDir extracts ABI from gethwrappers in a given directory +func extractABIFromGethWrapperDir(filePath string) (string, *abi.ABI, error) { + fileset := token.NewFileSet() + node, err := parser.ParseFile(fileset, filePath, nil, parser.AllErrors) + if err != nil { + return "", nil, err + } + + var abiContent string + // use package name as contract name + contractName := node.Name.Name + +TOP_LOOP: + for _, decl := range node.Decls { + genDecl, ok := decl.(*ast.GenDecl) + if !ok || genDecl.Tok != token.VAR { + continue + } + + // Loop through the specs (each spec represents a variable or constant declaration) + for _, spec := range genDecl.Specs { + vspec, ok := spec.(*ast.ValueSpec) + if !ok { + continue + } + + abiContent = extractValueFromCompositeLiteralField(vspec, "bind", "MetaData", "ABI") + if abiContent != "" { + break TOP_LOOP + } + } + } + + if abiContent == "" { + return "", nil, fmt.Errorf("%s: %s", ErrNoABIInFile, filePath) + } + + // this cleans up all escape and similar characters that might interfere with the JSON unmarshalling + var rawAbi interface{} + if err := json.Unmarshal([]byte(abiContent), &rawAbi); err != nil { + return "", nil, errors.Wrap(err, "failed to unmarshal ABI content") + } + + parsedAbi, err := abi.JSON(strings.NewReader(fmt.Sprint(rawAbi))) + if err != nil { + return "", nil, errors.Wrap(err, "failed to parse ABI content") + } + + return contractName, &parsedAbi, nil +} + +// extractValueFromCompositeLiteralField finds a composite literal in a given ValueSpec with given type (packageName.typeName) +// and extracts value of a field with a given name +func extractValueFromCompositeLiteralField(vspec *ast.ValueSpec, varPackageName, varType, fieldName string) string { + for i := range vspec.Names { + // defensive programming - make sure that for given name index there's a value + if len(vspec.Values)-1 >= i { + // check for expected types until we find a field with bind.MetaData type + // this might need to be updated if the structure of the MetaData struct changes + // or if package name that stores MetaData changes + if unaryExpr, ok := vspec.Values[i].(*ast.UnaryExpr); ok { + if compLit, ok := unaryExpr.X.(*ast.CompositeLit); ok { + if expr, ok := compLit.Type.(*ast.SelectorExpr); ok { + if x, ok := expr.X.(*ast.Ident); ok { + if x.Name == varPackageName && expr.Sel.Name == varType { + return extractStringKeyFromCompositeLiteral(compLit, fieldName) + } + } + } + } + } + } + } + + return "" +} + +// extractStringKeyFromCompositeLiteral returns value of a string field with a given name from a composite literal +func extractStringKeyFromCompositeLiteral(compositeLiteral *ast.CompositeLit, keyName string) string { + var abiContent string + for _, elt := range compositeLiteral.Elts { + if kvExpr, ok := elt.(*ast.KeyValueExpr); ok { + // Look for filed named "ABI" + // in a similar way we could extract bytecode from "BIN" field + if key, ok := kvExpr.Key.(*ast.Ident); ok && key.Name == keyName { + if abiValue, ok := kvExpr.Value.(*ast.BasicLit); ok && abiValue.Kind == token.STRING { + abiContent = abiValue.Value + break + } + } + } + } + + return abiContent } diff --git a/seth/contract_store_test.go b/seth/contract_store_test.go index eaa054a33..78248751a 100644 --- a/seth/contract_store_test.go +++ b/seth/contract_store_test.go @@ -10,40 +10,106 @@ import ( ) func TestSmokeContractABIStore(t *testing.T) { - type test struct { - name string - abiPath string - err string + name string + abiPath string + gethWrappersPaths []string + err string + expectedABICount int } tests := []test{ { - name: "can load the ABI", - abiPath: "./contracts/abi", + name: "can load the ABI only from ABI files", + abiPath: "./contracts/abi", + expectedABICount: 5, + }, + { + name: "can load the ABI from ABI files and from gethwrappers", + abiPath: "./contracts/abi", + gethWrappersPaths: []string{"./contracts/bind"}, + expectedABICount: 10, + }, + { + name: "can load the ABI only from gethwrappers", + gethWrappersPaths: []string{"./contracts/bind"}, + expectedABICount: 5, + }, + { + name: "can load the ABI from 2 gethwrappers folders", + gethWrappersPaths: []string{"./contracts/bind", "./contracts/bind2"}, + expectedABICount: 6, }, { name: "can't open the ABI path", abiPath: "dasdsadd", err: "open dasdsadd: no such file or directory", }, + { + name: "can't open the gethwrappers path", + gethWrappersPaths: []string{"dasdsadd"}, + err: "failed to load geth wrappers from [dasdsadd]: lstat dasdsadd: no such file or directory", + }, + { + name: "correct and broken gethwrappers path", + gethWrappersPaths: []string{"./contracts/emptyContractDir", "dasdsadd"}, + err: "failed to load geth wrappers from [./contracts/emptyContractDir dasdsadd]: lstat dasdsadd: no such file or directory", + }, + { + name: "broken and correct gethwrappers path", + gethWrappersPaths: []string{"dasdsadd", "./contracts/emptyContractDir"}, + err: "failed to load geth wrappers from [dasdsadd ./contracts/emptyContractDir]: lstat dasdsadd: no such file or directory", + }, { name: "empty ABI dir", abiPath: "./contracts/emptyContractDir", + err: "no ABI files found in './contracts/emptyContractDir'. Fix the path or comment out 'abi_dir' setting", + }, + { + name: "empty gethwrappers dir", + gethWrappersPaths: []string{"./contracts/emptyContractDir"}, + err: "failed to load geth wrappers from [./contracts/emptyContractDir]: no geth wrappers found in '[./contracts/emptyContractDir]'. Fix the path or comment out 'geth_wrappers_dirs' setting", }, { - name: "invalid ABI inside dir", + name: "empty ABI and gethwrappers dir", + abiPath: "./contracts/emptyContractDir", + gethWrappersPaths: []string{"./contracts/emptyContractDir"}, + err: "no ABI files found in './contracts/emptyContractDir'. Fix the path or comment out 'abi_dir' setting", + }, + { + name: "no MetaData in one of gethwrappers", + gethWrappersPaths: []string{"./contracts/noMetaDataContractDir"}, + expectedABICount: 1, + }, + { + name: "empty MetaData in one of gethwrappers", + gethWrappersPaths: []string{"./contracts/emptyMetaDataContractDir"}, + err: "failed to load geth wrappers from [./contracts/emptyMetaDataContractDir]: failed to parse ABI content: EOF", + }, + { + name: "gethwrappers dir mixes regular go files and gethwrappers", + gethWrappersPaths: []string{"./contracts/gethWrapperAndGoFile"}, + expectedABICount: 1, + }, + { + name: "invalid ABI inside ABI dir", abiPath: "./contracts/invalidContractDir", err: "failed to parse ABI file: invalid character ':' after array element", }, + { + name: "invalid ABI in gethwrappers inside dir", + gethWrappersPaths: []string{"./contracts/invalidContractDir"}, + err: "failed to load geth wrappers from [./contracts/invalidContractDir]: failed to parse ABI content: invalid character 'i' looking for beginning of value", + }, } for _, tc := range tests { t.Run(tc.name, func(t *testing.T) { var err error - cs, err := seth.NewContractStore(tc.abiPath, tc.abiPath) + cs, err := seth.NewContractStore(tc.abiPath, "", tc.gethWrappersPaths) if err == nil { require.NotNil(t, cs.ABIs, "ABIs should not be nil") + require.Equal(t, tc.expectedABICount, len(cs.ABIs), "ABIs should have the expected count") require.NotNil(t, cs.BINs, "BINs should not be nil") require.Equal(t, make(map[string][]uint8), cs.BINs) err = errors.New("") @@ -70,6 +136,12 @@ func TestSmokeContractBINStore(t *testing.T) { binPath: "./contracts/bin", binFound: true, }, + { + name: "can load the ABI and BIN and gethWrappers", + abiPath: "./contracts/abi", + binPath: "./contracts/bin", + binFound: true, + }, { name: "can't open the BIN path", abiPath: "./contracts/abi", @@ -80,13 +152,14 @@ func TestSmokeContractBINStore(t *testing.T) { name: "empty BIN dir", abiPath: "./contracts/abi", binPath: "./contracts/emptyContractDir", + err: "no BIN files found in './contracts/emptyContractDir'. Fix the path or comment out 'bin_dir' setting", }, } for _, tc := range tests { t.Run(tc.name, func(t *testing.T) { var err error - cs, err := seth.NewContractStore(tc.abiPath, tc.binPath) + cs, err := seth.NewContractStore(tc.abiPath, tc.binPath, nil) if err == nil { require.NotEmpty(t, cs.ABIs, "ABIs should not be empty") err = errors.New("") diff --git a/seth/contracts/bind/burn_mint_erc677/burn_mint_erc677.go b/seth/contracts/bind/burn_mint_erc677/burn_mint_erc677.go new file mode 100644 index 000000000..1a420c0a6 --- /dev/null +++ b/seth/contracts/bind/burn_mint_erc677/burn_mint_erc677.go @@ -0,0 +1,2038 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package burn_mint_erc677 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +var BurnMintERC677MetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"maxSupply_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"supplyAfterMint\",\"type\":\"uint256\"}],\"name\":\"MaxSupplyExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderNotBurner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderNotMinter\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"BurnAccessGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"BurnAccessRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"MintAccessGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"MintAccessRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBurners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinters\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"grantBurnRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"burnAndMinter\",\"type\":\"address\"}],\"name\":\"grantMintAndBurnRoles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"grantMintRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"isBurner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"revokeBurnRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"revokeMintRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x60c06040523480156200001157600080fd5b50604051620022dd380380620022dd833981016040819052620000349162000277565b338060008686818160036200004a838262000391565b50600462000059828262000391565b5050506001600160a01b0384169150620000bc90505760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600580546001600160a01b0319166001600160a01b0384811691909117909155811615620000ef57620000ef8162000106565b50505060ff90911660805260a052506200045d9050565b336001600160a01b03821603620001605760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401620000b3565b600680546001600160a01b0319166001600160a01b03838116918217909255600554604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001da57600080fd5b81516001600160401b0380821115620001f757620001f7620001b2565b604051601f8301601f19908116603f01168101908282118183101715620002225762000222620001b2565b816040528381526020925086838588010111156200023f57600080fd5b600091505b8382101562000263578582018301518183018401529082019062000244565b600093810190920192909252949350505050565b600080600080608085870312156200028e57600080fd5b84516001600160401b0380821115620002a657600080fd5b620002b488838901620001c8565b95506020870151915080821115620002cb57600080fd5b50620002da87828801620001c8565b935050604085015160ff81168114620002f257600080fd5b6060959095015193969295505050565b600181811c908216806200031757607f821691505b6020821081036200033857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200038c57600081815260208120601f850160051c81016020861015620003675750805b601f850160051c820191505b81811015620003885782815560010162000373565b5050505b505050565b81516001600160401b03811115620003ad57620003ad620001b2565b620003c581620003be845462000302565b846200033e565b602080601f831160018114620003fd5760008415620003e45750858301515b600019600386901b1c1916600185901b17855562000388565b600085815260208120601f198616915b828110156200042e578886015182559484019460019091019084016200040d565b50858210156200044d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a051611e4c6200049160003960008181610447015281816108c301526108ed015260006102710152611e4c6000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806379cc67901161010f578063c2e3273d116100a2578063d73dd62311610071578063d73dd6231461046b578063dd62ed3e1461047e578063f2fde38b146104c4578063f81094f3146104d757600080fd5b8063c2e3273d1461040c578063c630948d1461041f578063c64d0ebc14610432578063d5abeb011461044557600080fd5b80639dc29fac116100de5780639dc29fac146103c0578063a457c2d7146103d3578063a9059cbb146103e6578063aa271e1a146103f957600080fd5b806379cc67901461037557806386fe8b43146103885780638da5cb5b1461039057806395d89b41146103b857600080fd5b806340c10f19116101875780636618846311610156578063661884631461030f5780636b32810b1461032257806370a082311461033757806379ba50971461036d57600080fd5b806340c10f19146102c157806342966c68146102d65780634334614a146102e95780634f5632f8146102fc57600080fd5b806323b872dd116101c357806323b872dd14610257578063313ce5671461026a578063395093511461029b5780634000aea0146102ae57600080fd5b806301ffc9a7146101f557806306fdde031461021d578063095ea7b31461023257806318160ddd14610245575b600080fd5b6102086102033660046119b9565b6104ea565b60405190151581526020015b60405180910390f35b61022561061b565b6040516102149190611a5f565b610208610240366004611a9b565b6106ad565b6002545b604051908152602001610214565b610208610265366004611ac5565b6106c5565b60405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610214565b6102086102a9366004611a9b565b6106e9565b6102086102bc366004611b30565b610735565b6102d46102cf366004611a9b565b610858565b005b6102d46102e4366004611c19565b61097f565b6102086102f7366004611c32565b6109cc565b6102d461030a366004611c32565b6109d9565b61020861031d366004611a9b565b610a35565b61032a610a48565b6040516102149190611c4d565b610249610345366004611c32565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6102d4610a59565b6102d4610383366004611a9b565b610b5a565b61032a610ba9565b60055460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610214565b610225610bb5565b6102d46103ce366004611a9b565b610bc4565b6102086103e1366004611a9b565b610bce565b6102086103f4366004611a9b565b610c9f565b610208610407366004611c32565b610cad565b6102d461041a366004611c32565b610cba565b6102d461042d366004611c32565b610d16565b6102d4610440366004611c32565b610d24565b7f0000000000000000000000000000000000000000000000000000000000000000610249565b6102d4610479366004611a9b565b610d80565b61024961048c366004611ca7565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6102d46104d2366004611c32565b610d8a565b6102d46104e5366004611c32565b610d9b565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f36372b0700000000000000000000000000000000000000000000000000000000148061057d57507fffffffff0000000000000000000000000000000000000000000000000000000082167f4000aea000000000000000000000000000000000000000000000000000000000145b806105c957507fffffffff0000000000000000000000000000000000000000000000000000000082167fe6599b4d00000000000000000000000000000000000000000000000000000000145b8061061557507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60606003805461062a90611cda565b80601f016020809104026020016040519081016040528092919081815260200182805461065690611cda565b80156106a35780601f10610678576101008083540402835291602001916106a3565b820191906000526020600020905b81548152906001019060200180831161068657829003601f168201915b5050505050905090565b6000336106bb818585610df7565b5060019392505050565b6000336106d3858285610e2b565b6106de858585610efc565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906106bb9082908690610730908790611d5c565b610df7565b60006107418484610c9f565b508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1685856040516107a1929190611d6f565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff84163b156106bb576040517fa4c0ed3600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063a4c0ed369061081c90339087908790600401611d90565b600060405180830381600087803b15801561083657600080fd5b505af115801561084a573d6000803e3d6000fd5b505050505060019392505050565b61086133610cad565b61089e576040517fe2c8c9d50000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b813073ffffffffffffffffffffffffffffffffffffffff8216036108c157600080fd5b7f00000000000000000000000000000000000000000000000000000000000000001580159061092257507f00000000000000000000000000000000000000000000000000000000000000008261091660025490565b6109209190611d5c565b115b15610970578161093160025490565b61093b9190611d5c565b6040517fcbbf111300000000000000000000000000000000000000000000000000000000815260040161089591815260200190565b61097a8383610f2a565b505050565b610988336109cc565b6109c0576040517fc820b10b000000000000000000000000000000000000000000000000000000008152336004820152602401610895565b6109c98161101d565b50565b6000610615600983611027565b6109e1611056565b6109ec6009826110d9565b156109c95760405173ffffffffffffffffffffffffffffffffffffffff8216907f0a675452746933cefe3d74182e78db7afe57ba60eaa4234b5d85e9aa41b0610c90600090a250565b6000610a418383610bce565b9392505050565b6060610a5460076110fb565b905090565b60065473ffffffffffffffffffffffffffffffffffffffff163314610ada576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610895565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000008082163390811790935560068054909116905560405173ffffffffffffffffffffffffffffffffffffffff909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b610b63336109cc565b610b9b576040517fc820b10b000000000000000000000000000000000000000000000000000000008152336004820152602401610895565b610ba58282611108565b5050565b6060610a5460096110fb565b60606004805461062a90611cda565b610ba58282610b5a565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610c92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610895565b6106de8286868403610df7565b6000336106bb818585610efc565b6000610615600783611027565b610cc2611056565b610ccd60078261111d565b156109c95760405173ffffffffffffffffffffffffffffffffffffffff8216907fe46fef8bbff1389d9010703cf8ebb363fb3daf5bf56edc27080b67bc8d9251ea90600090a250565b610d1f81610cba565b6109c9815b610d2c611056565b610d3760098261111d565b156109c95760405173ffffffffffffffffffffffffffffffffffffffff8216907f92308bb7573b2a3d17ddb868b39d8ebec433f3194421abc22d084f89658c9bad90600090a250565b61097a82826106e9565b610d92611056565b6109c98161113f565b610da3611056565b610dae6007826110d9565b156109c95760405173ffffffffffffffffffffffffffffffffffffffff8216907fed998b960f6340d045f620c119730f7aa7995e7425c2401d3a5b64ff998a59e990600090a250565b813073ffffffffffffffffffffffffffffffffffffffff821603610e1a57600080fd5b610e25848484611235565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e255781811015610eef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610895565b610e258484848403610df7565b813073ffffffffffffffffffffffffffffffffffffffff821603610f1f57600080fd5b610e258484846113e8565b73ffffffffffffffffffffffffffffffffffffffff8216610fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610895565b8060026000828254610fb99190611d5c565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6109c93382611657565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001830160205260408120541515610a41565b60055473ffffffffffffffffffffffffffffffffffffffff1633146110d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610895565b565b6000610a418373ffffffffffffffffffffffffffffffffffffffff841661181b565b60606000610a418361190e565b611113823383610e2b565b610ba58282611657565b6000610a418373ffffffffffffffffffffffffffffffffffffffff841661196a565b3373ffffffffffffffffffffffffffffffffffffffff8216036111be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610895565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116918217909255600554604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b73ffffffffffffffffffffffffffffffffffffffff83166112d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff821661137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff831661148b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff821661152e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156115e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610e25565b73ffffffffffffffffffffffffffffffffffffffff82166116fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054818110156117b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6000818152600183016020526040812054801561190457600061183f600183611dce565b855490915060009061185390600190611dce565b90508181146118b857600086600001828154811061187357611873611de1565b906000526020600020015490508087600001848154811061189657611896611de1565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806118c9576118c9611e10565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610615565b6000915050610615565b60608160000180548060200260200160405190810160405280929190818152602001828054801561195e57602002820191906000526020600020905b81548152602001906001019080831161194a575b50505050509050919050565b60008181526001830160205260408120546119b157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610615565b506000610615565b6000602082840312156119cb57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610a4157600080fd5b6000815180845260005b81811015611a2157602081850181015186830182015201611a05565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610a4160208301846119fb565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a9657600080fd5b919050565b60008060408385031215611aae57600080fd5b611ab783611a72565b946020939093013593505050565b600080600060608486031215611ada57600080fd5b611ae384611a72565b9250611af160208501611a72565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600060608486031215611b4557600080fd5b611b4e84611a72565b925060208401359150604084013567ffffffffffffffff80821115611b7257600080fd5b818601915086601f830112611b8657600080fd5b813581811115611b9857611b98611b01565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611bde57611bde611b01565b81604052828152896020848701011115611bf757600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600060208284031215611c2b57600080fd5b5035919050565b600060208284031215611c4457600080fd5b610a4182611a72565b6020808252825182820181905260009190848201906040850190845b81811015611c9b57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101611c69565b50909695505050505050565b60008060408385031215611cba57600080fd5b611cc383611a72565b9150611cd160208401611a72565b90509250929050565b600181811c90821680611cee57607f821691505b602082108103611d27577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561061557610615611d2d565b828152604060208201526000611d8860408301846119fb565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000611dc560608301846119fb565b95945050505050565b8181038181111561061557610615611d2d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000813000a", +} + +var BurnMintERC677ABI = BurnMintERC677MetaData.ABI + +var BurnMintERC677Bin = BurnMintERC677MetaData.Bin + +func DeployBurnMintERC677(auth *bind.TransactOpts, backend bind.ContractBackend, name string, symbol string, decimals_ uint8, maxSupply_ *big.Int) (common.Address, *types.Transaction, *BurnMintERC677, error) { + parsed, err := BurnMintERC677MetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(BurnMintERC677Bin), backend, name, symbol, decimals_, maxSupply_) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &BurnMintERC677{address: address, abi: *parsed, BurnMintERC677Caller: BurnMintERC677Caller{contract: contract}, BurnMintERC677Transactor: BurnMintERC677Transactor{contract: contract}, BurnMintERC677Filterer: BurnMintERC677Filterer{contract: contract}}, nil +} + +type BurnMintERC677 struct { + address common.Address + abi abi.ABI + BurnMintERC677Caller + BurnMintERC677Transactor + BurnMintERC677Filterer +} + +type BurnMintERC677Caller struct { + contract *bind.BoundContract +} + +type BurnMintERC677Transactor struct { + contract *bind.BoundContract +} + +type BurnMintERC677Filterer struct { + contract *bind.BoundContract +} + +type BurnMintERC677Session struct { + Contract *BurnMintERC677 + CallOpts bind.CallOpts + TransactOpts bind.TransactOpts +} + +type BurnMintERC677CallerSession struct { + Contract *BurnMintERC677Caller + CallOpts bind.CallOpts +} + +type BurnMintERC677TransactorSession struct { + Contract *BurnMintERC677Transactor + TransactOpts bind.TransactOpts +} + +type BurnMintERC677Raw struct { + Contract *BurnMintERC677 +} + +type BurnMintERC677CallerRaw struct { + Contract *BurnMintERC677Caller +} + +type BurnMintERC677TransactorRaw struct { + Contract *BurnMintERC677Transactor +} + +func NewBurnMintERC677(address common.Address, backend bind.ContractBackend) (*BurnMintERC677, error) { + abi, err := abi.JSON(strings.NewReader(BurnMintERC677ABI)) + if err != nil { + return nil, err + } + contract, err := bindBurnMintERC677(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &BurnMintERC677{address: address, abi: abi, BurnMintERC677Caller: BurnMintERC677Caller{contract: contract}, BurnMintERC677Transactor: BurnMintERC677Transactor{contract: contract}, BurnMintERC677Filterer: BurnMintERC677Filterer{contract: contract}}, nil +} + +func NewBurnMintERC677Caller(address common.Address, caller bind.ContractCaller) (*BurnMintERC677Caller, error) { + contract, err := bindBurnMintERC677(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &BurnMintERC677Caller{contract: contract}, nil +} + +func NewBurnMintERC677Transactor(address common.Address, transactor bind.ContractTransactor) (*BurnMintERC677Transactor, error) { + contract, err := bindBurnMintERC677(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &BurnMintERC677Transactor{contract: contract}, nil +} + +func NewBurnMintERC677Filterer(address common.Address, filterer bind.ContractFilterer) (*BurnMintERC677Filterer, error) { + contract, err := bindBurnMintERC677(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &BurnMintERC677Filterer{contract: contract}, nil +} + +func bindBurnMintERC677(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := BurnMintERC677MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +func (_BurnMintERC677 *BurnMintERC677Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _BurnMintERC677.Contract.BurnMintERC677Caller.contract.Call(opts, result, method, params...) +} + +func (_BurnMintERC677 *BurnMintERC677Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BurnMintERC677.Contract.BurnMintERC677Transactor.contract.Transfer(opts) +} + +func (_BurnMintERC677 *BurnMintERC677Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _BurnMintERC677.Contract.BurnMintERC677Transactor.contract.Transact(opts, method, params...) +} + +func (_BurnMintERC677 *BurnMintERC677CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _BurnMintERC677.Contract.contract.Call(opts, result, method, params...) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BurnMintERC677.Contract.contract.Transfer(opts) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _BurnMintERC677.Contract.contract.Transact(opts, method, params...) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _BurnMintERC677.Contract.Allowance(&_BurnMintERC677.CallOpts, owner, spender) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _BurnMintERC677.Contract.Allowance(&_BurnMintERC677.CallOpts, owner, spender) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) BalanceOf(account common.Address) (*big.Int, error) { + return _BurnMintERC677.Contract.BalanceOf(&_BurnMintERC677.CallOpts, account) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _BurnMintERC677.Contract.BalanceOf(&_BurnMintERC677.CallOpts, account) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "decimals") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) Decimals() (uint8, error) { + return _BurnMintERC677.Contract.Decimals(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) Decimals() (uint8, error) { + return _BurnMintERC677.Contract.Decimals(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) GetBurners(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "getBurners") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) GetBurners() ([]common.Address, error) { + return _BurnMintERC677.Contract.GetBurners(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) GetBurners() ([]common.Address, error) { + return _BurnMintERC677.Contract.GetBurners(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) GetMinters(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "getMinters") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) GetMinters() ([]common.Address, error) { + return _BurnMintERC677.Contract.GetMinters(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) GetMinters() ([]common.Address, error) { + return _BurnMintERC677.Contract.GetMinters(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) IsBurner(opts *bind.CallOpts, burner common.Address) (bool, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "isBurner", burner) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) IsBurner(burner common.Address) (bool, error) { + return _BurnMintERC677.Contract.IsBurner(&_BurnMintERC677.CallOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) IsBurner(burner common.Address) (bool, error) { + return _BurnMintERC677.Contract.IsBurner(&_BurnMintERC677.CallOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) IsMinter(opts *bind.CallOpts, minter common.Address) (bool, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "isMinter", minter) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) IsMinter(minter common.Address) (bool, error) { + return _BurnMintERC677.Contract.IsMinter(&_BurnMintERC677.CallOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) IsMinter(minter common.Address) (bool, error) { + return _BurnMintERC677.Contract.IsMinter(&_BurnMintERC677.CallOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) MaxSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "maxSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) MaxSupply() (*big.Int, error) { + return _BurnMintERC677.Contract.MaxSupply(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) MaxSupply() (*big.Int, error) { + return _BurnMintERC677.Contract.MaxSupply(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) Name() (string, error) { + return _BurnMintERC677.Contract.Name(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) Name() (string, error) { + return _BurnMintERC677.Contract.Name(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) Owner() (common.Address, error) { + return _BurnMintERC677.Contract.Owner(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) Owner() (common.Address, error) { + return _BurnMintERC677.Contract.Owner(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "supportsInterface", interfaceId) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _BurnMintERC677.Contract.SupportsInterface(&_BurnMintERC677.CallOpts, interfaceId) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _BurnMintERC677.Contract.SupportsInterface(&_BurnMintERC677.CallOpts, interfaceId) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) Symbol() (string, error) { + return _BurnMintERC677.Contract.Symbol(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) Symbol() (string, error) { + return _BurnMintERC677.Contract.Symbol(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) TotalSupply() (*big.Int, error) { + return _BurnMintERC677.Contract.TotalSupply(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) TotalSupply() (*big.Int, error) { + return _BurnMintERC677.Contract.TotalSupply(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "acceptOwnership") +} + +func (_BurnMintERC677 *BurnMintERC677Session) AcceptOwnership() (*types.Transaction, error) { + return _BurnMintERC677.Contract.AcceptOwnership(&_BurnMintERC677.TransactOpts) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _BurnMintERC677.Contract.AcceptOwnership(&_BurnMintERC677.TransactOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "approve", spender, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Approve(&_BurnMintERC677.TransactOpts, spender, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Approve(&_BurnMintERC677.TransactOpts, spender, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "burn", amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) Burn(amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Burn(&_BurnMintERC677.TransactOpts, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) Burn(amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Burn(&_BurnMintERC677.TransactOpts, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) Burn0(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "burn0", account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) Burn0(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Burn0(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) Burn0(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Burn0(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "burnFrom", account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.BurnFrom(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.BurnFrom(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Session) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.DecreaseAllowance(&_BurnMintERC677.TransactOpts, spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.DecreaseAllowance(&_BurnMintERC677.TransactOpts, spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) DecreaseApproval(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "decreaseApproval", spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Session) DecreaseApproval(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.DecreaseApproval(&_BurnMintERC677.TransactOpts, spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) DecreaseApproval(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.DecreaseApproval(&_BurnMintERC677.TransactOpts, spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) GrantBurnRole(opts *bind.TransactOpts, burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "grantBurnRole", burner) +} + +func (_BurnMintERC677 *BurnMintERC677Session) GrantBurnRole(burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantBurnRole(&_BurnMintERC677.TransactOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) GrantBurnRole(burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantBurnRole(&_BurnMintERC677.TransactOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) GrantMintAndBurnRoles(opts *bind.TransactOpts, burnAndMinter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "grantMintAndBurnRoles", burnAndMinter) +} + +func (_BurnMintERC677 *BurnMintERC677Session) GrantMintAndBurnRoles(burnAndMinter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantMintAndBurnRoles(&_BurnMintERC677.TransactOpts, burnAndMinter) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) GrantMintAndBurnRoles(burnAndMinter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantMintAndBurnRoles(&_BurnMintERC677.TransactOpts, burnAndMinter) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) GrantMintRole(opts *bind.TransactOpts, minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "grantMintRole", minter) +} + +func (_BurnMintERC677 *BurnMintERC677Session) GrantMintRole(minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantMintRole(&_BurnMintERC677.TransactOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) GrantMintRole(minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantMintRole(&_BurnMintERC677.TransactOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "increaseAllowance", spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Session) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.IncreaseAllowance(&_BurnMintERC677.TransactOpts, spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.IncreaseAllowance(&_BurnMintERC677.TransactOpts, spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) IncreaseApproval(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "increaseApproval", spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Session) IncreaseApproval(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.IncreaseApproval(&_BurnMintERC677.TransactOpts, spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) IncreaseApproval(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.IncreaseApproval(&_BurnMintERC677.TransactOpts, spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) Mint(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "mint", account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Mint(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Mint(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) RevokeBurnRole(opts *bind.TransactOpts, burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "revokeBurnRole", burner) +} + +func (_BurnMintERC677 *BurnMintERC677Session) RevokeBurnRole(burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.RevokeBurnRole(&_BurnMintERC677.TransactOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) RevokeBurnRole(burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.RevokeBurnRole(&_BurnMintERC677.TransactOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) RevokeMintRole(opts *bind.TransactOpts, minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "revokeMintRole", minter) +} + +func (_BurnMintERC677 *BurnMintERC677Session) RevokeMintRole(minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.RevokeMintRole(&_BurnMintERC677.TransactOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) RevokeMintRole(minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.RevokeMintRole(&_BurnMintERC677.TransactOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) Transfer(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "transfer", to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Transfer(&_BurnMintERC677.TransactOpts, to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Transfer(&_BurnMintERC677.TransactOpts, to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) TransferAndCall(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "transferAndCall", to, amount, data) +} + +func (_BurnMintERC677 *BurnMintERC677Session) TransferAndCall(to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferAndCall(&_BurnMintERC677.TransactOpts, to, amount, data) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) TransferAndCall(to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferAndCall(&_BurnMintERC677.TransactOpts, to, amount, data) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "transferFrom", from, to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferFrom(&_BurnMintERC677.TransactOpts, from, to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferFrom(&_BurnMintERC677.TransactOpts, from, to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "transferOwnership", to) +} + +func (_BurnMintERC677 *BurnMintERC677Session) TransferOwnership(to common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferOwnership(&_BurnMintERC677.TransactOpts, to) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) TransferOwnership(to common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferOwnership(&_BurnMintERC677.TransactOpts, to) +} + +type BurnMintERC677ApprovalIterator struct { + Event *BurnMintERC677Approval + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677ApprovalIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677ApprovalIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677ApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677Approval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*BurnMintERC677ApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &BurnMintERC677ApprovalIterator{contract: _BurnMintERC677.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677Approval) + if err := _BurnMintERC677.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseApproval(log types.Log) (*BurnMintERC677Approval, error) { + event := new(BurnMintERC677Approval) + if err := _BurnMintERC677.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677BurnAccessGrantedIterator struct { + Event *BurnMintERC677BurnAccessGranted + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677BurnAccessGrantedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677BurnAccessGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677BurnAccessGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677BurnAccessGrantedIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677BurnAccessGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677BurnAccessGranted struct { + Burner common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterBurnAccessGranted(opts *bind.FilterOpts, burner []common.Address) (*BurnMintERC677BurnAccessGrantedIterator, error) { + + var burnerRule []interface{} + for _, burnerItem := range burner { + burnerRule = append(burnerRule, burnerItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "BurnAccessGranted", burnerRule) + if err != nil { + return nil, err + } + return &BurnMintERC677BurnAccessGrantedIterator{contract: _BurnMintERC677.contract, event: "BurnAccessGranted", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchBurnAccessGranted(opts *bind.WatchOpts, sink chan<- *BurnMintERC677BurnAccessGranted, burner []common.Address) (event.Subscription, error) { + + var burnerRule []interface{} + for _, burnerItem := range burner { + burnerRule = append(burnerRule, burnerItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "BurnAccessGranted", burnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677BurnAccessGranted) + if err := _BurnMintERC677.contract.UnpackLog(event, "BurnAccessGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseBurnAccessGranted(log types.Log) (*BurnMintERC677BurnAccessGranted, error) { + event := new(BurnMintERC677BurnAccessGranted) + if err := _BurnMintERC677.contract.UnpackLog(event, "BurnAccessGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677BurnAccessRevokedIterator struct { + Event *BurnMintERC677BurnAccessRevoked + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677BurnAccessRevokedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677BurnAccessRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677BurnAccessRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677BurnAccessRevokedIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677BurnAccessRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677BurnAccessRevoked struct { + Burner common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterBurnAccessRevoked(opts *bind.FilterOpts, burner []common.Address) (*BurnMintERC677BurnAccessRevokedIterator, error) { + + var burnerRule []interface{} + for _, burnerItem := range burner { + burnerRule = append(burnerRule, burnerItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "BurnAccessRevoked", burnerRule) + if err != nil { + return nil, err + } + return &BurnMintERC677BurnAccessRevokedIterator{contract: _BurnMintERC677.contract, event: "BurnAccessRevoked", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchBurnAccessRevoked(opts *bind.WatchOpts, sink chan<- *BurnMintERC677BurnAccessRevoked, burner []common.Address) (event.Subscription, error) { + + var burnerRule []interface{} + for _, burnerItem := range burner { + burnerRule = append(burnerRule, burnerItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "BurnAccessRevoked", burnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677BurnAccessRevoked) + if err := _BurnMintERC677.contract.UnpackLog(event, "BurnAccessRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseBurnAccessRevoked(log types.Log) (*BurnMintERC677BurnAccessRevoked, error) { + event := new(BurnMintERC677BurnAccessRevoked) + if err := _BurnMintERC677.contract.UnpackLog(event, "BurnAccessRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677MintAccessGrantedIterator struct { + Event *BurnMintERC677MintAccessGranted + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677MintAccessGrantedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677MintAccessGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677MintAccessGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677MintAccessGrantedIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677MintAccessGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677MintAccessGranted struct { + Minter common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterMintAccessGranted(opts *bind.FilterOpts, minter []common.Address) (*BurnMintERC677MintAccessGrantedIterator, error) { + + var minterRule []interface{} + for _, minterItem := range minter { + minterRule = append(minterRule, minterItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "MintAccessGranted", minterRule) + if err != nil { + return nil, err + } + return &BurnMintERC677MintAccessGrantedIterator{contract: _BurnMintERC677.contract, event: "MintAccessGranted", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchMintAccessGranted(opts *bind.WatchOpts, sink chan<- *BurnMintERC677MintAccessGranted, minter []common.Address) (event.Subscription, error) { + + var minterRule []interface{} + for _, minterItem := range minter { + minterRule = append(minterRule, minterItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "MintAccessGranted", minterRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677MintAccessGranted) + if err := _BurnMintERC677.contract.UnpackLog(event, "MintAccessGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseMintAccessGranted(log types.Log) (*BurnMintERC677MintAccessGranted, error) { + event := new(BurnMintERC677MintAccessGranted) + if err := _BurnMintERC677.contract.UnpackLog(event, "MintAccessGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677MintAccessRevokedIterator struct { + Event *BurnMintERC677MintAccessRevoked + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677MintAccessRevokedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677MintAccessRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677MintAccessRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677MintAccessRevokedIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677MintAccessRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677MintAccessRevoked struct { + Minter common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterMintAccessRevoked(opts *bind.FilterOpts, minter []common.Address) (*BurnMintERC677MintAccessRevokedIterator, error) { + + var minterRule []interface{} + for _, minterItem := range minter { + minterRule = append(minterRule, minterItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "MintAccessRevoked", minterRule) + if err != nil { + return nil, err + } + return &BurnMintERC677MintAccessRevokedIterator{contract: _BurnMintERC677.contract, event: "MintAccessRevoked", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchMintAccessRevoked(opts *bind.WatchOpts, sink chan<- *BurnMintERC677MintAccessRevoked, minter []common.Address) (event.Subscription, error) { + + var minterRule []interface{} + for _, minterItem := range minter { + minterRule = append(minterRule, minterItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "MintAccessRevoked", minterRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677MintAccessRevoked) + if err := _BurnMintERC677.contract.UnpackLog(event, "MintAccessRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseMintAccessRevoked(log types.Log) (*BurnMintERC677MintAccessRevoked, error) { + event := new(BurnMintERC677MintAccessRevoked) + if err := _BurnMintERC677.contract.UnpackLog(event, "MintAccessRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677OwnershipTransferRequestedIterator struct { + Event *BurnMintERC677OwnershipTransferRequested + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677OwnershipTransferRequestedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677OwnershipTransferRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677OwnershipTransferRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677OwnershipTransferRequestedIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677OwnershipTransferRequestedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677OwnershipTransferRequested struct { + From common.Address + To common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677OwnershipTransferRequestedIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + if err != nil { + return nil, err + } + return &BurnMintERC677OwnershipTransferRequestedIterator{contract: _BurnMintERC677.contract, event: "OwnershipTransferRequested", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *BurnMintERC677OwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677OwnershipTransferRequested) + if err := _BurnMintERC677.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseOwnershipTransferRequested(log types.Log) (*BurnMintERC677OwnershipTransferRequested, error) { + event := new(BurnMintERC677OwnershipTransferRequested) + if err := _BurnMintERC677.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677OwnershipTransferredIterator struct { + Event *BurnMintERC677OwnershipTransferred + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677OwnershipTransferredIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677OwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677OwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677OwnershipTransferredIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677OwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677OwnershipTransferred struct { + From common.Address + To common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677OwnershipTransferredIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "OwnershipTransferred", fromRule, toRule) + if err != nil { + return nil, err + } + return &BurnMintERC677OwnershipTransferredIterator{contract: _BurnMintERC677.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BurnMintERC677OwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "OwnershipTransferred", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677OwnershipTransferred) + if err := _BurnMintERC677.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseOwnershipTransferred(log types.Log) (*BurnMintERC677OwnershipTransferred, error) { + event := new(BurnMintERC677OwnershipTransferred) + if err := _BurnMintERC677.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677TransferIterator struct { + Event *BurnMintERC677Transfer + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677TransferIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677TransferIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677TransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677Transfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677TransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &BurnMintERC677TransferIterator{contract: _BurnMintERC677.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Transfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677Transfer) + if err := _BurnMintERC677.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseTransfer(log types.Log) (*BurnMintERC677Transfer, error) { + event := new(BurnMintERC677Transfer) + if err := _BurnMintERC677.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677Transfer0Iterator struct { + Event *BurnMintERC677Transfer0 + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677Transfer0Iterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Transfer0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Transfer0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677Transfer0Iterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677Transfer0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677Transfer0 struct { + From common.Address + To common.Address + Value *big.Int + Data []byte + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterTransfer0(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677Transfer0Iterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "Transfer0", fromRule, toRule) + if err != nil { + return nil, err + } + return &BurnMintERC677Transfer0Iterator{contract: _BurnMintERC677.contract, event: "Transfer0", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchTransfer0(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Transfer0, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "Transfer0", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677Transfer0) + if err := _BurnMintERC677.contract.UnpackLog(event, "Transfer0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseTransfer0(log types.Log) (*BurnMintERC677Transfer0, error) { + event := new(BurnMintERC677Transfer0) + if err := _BurnMintERC677.contract.UnpackLog(event, "Transfer0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +func (BurnMintERC677Approval) Topic() common.Hash { + return common.HexToHash("0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925") +} + +func (BurnMintERC677BurnAccessGranted) Topic() common.Hash { + return common.HexToHash("0x92308bb7573b2a3d17ddb868b39d8ebec433f3194421abc22d084f89658c9bad") +} + +func (BurnMintERC677BurnAccessRevoked) Topic() common.Hash { + return common.HexToHash("0x0a675452746933cefe3d74182e78db7afe57ba60eaa4234b5d85e9aa41b0610c") +} + +func (BurnMintERC677MintAccessGranted) Topic() common.Hash { + return common.HexToHash("0xe46fef8bbff1389d9010703cf8ebb363fb3daf5bf56edc27080b67bc8d9251ea") +} + +func (BurnMintERC677MintAccessRevoked) Topic() common.Hash { + return common.HexToHash("0xed998b960f6340d045f620c119730f7aa7995e7425c2401d3a5b64ff998a59e9") +} + +func (BurnMintERC677OwnershipTransferRequested) Topic() common.Hash { + return common.HexToHash("0xed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278") +} + +func (BurnMintERC677OwnershipTransferred) Topic() common.Hash { + return common.HexToHash("0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0") +} + +func (BurnMintERC677Transfer) Topic() common.Hash { + return common.HexToHash("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef") +} + +func (BurnMintERC677Transfer0) Topic() common.Hash { + return common.HexToHash("0xe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16") +} + +func (_BurnMintERC677 *BurnMintERC677) Address() common.Address { + return _BurnMintERC677.address +} + +type BurnMintERC677Interface interface { + Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) + + BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) + + Decimals(opts *bind.CallOpts) (uint8, error) + + GetBurners(opts *bind.CallOpts) ([]common.Address, error) + + GetMinters(opts *bind.CallOpts) ([]common.Address, error) + + IsBurner(opts *bind.CallOpts, burner common.Address) (bool, error) + + IsMinter(opts *bind.CallOpts, minter common.Address) (bool, error) + + MaxSupply(opts *bind.CallOpts) (*big.Int, error) + + Name(opts *bind.CallOpts) (string, error) + + Owner(opts *bind.CallOpts) (common.Address, error) + + SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) + + Symbol(opts *bind.CallOpts) (string, error) + + TotalSupply(opts *bind.CallOpts) (*big.Int, error) + + AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) + + Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) + + Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) + + Burn0(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) + + BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) + + DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) + + DecreaseApproval(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) + + GrantBurnRole(opts *bind.TransactOpts, burner common.Address) (*types.Transaction, error) + + GrantMintAndBurnRoles(opts *bind.TransactOpts, burnAndMinter common.Address) (*types.Transaction, error) + + GrantMintRole(opts *bind.TransactOpts, minter common.Address) (*types.Transaction, error) + + IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) + + IncreaseApproval(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) + + Mint(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) + + RevokeBurnRole(opts *bind.TransactOpts, burner common.Address) (*types.Transaction, error) + + RevokeMintRole(opts *bind.TransactOpts, minter common.Address) (*types.Transaction, error) + + Transfer(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) + + TransferAndCall(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) + + TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) + + TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) + + FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*BurnMintERC677ApprovalIterator, error) + + WatchApproval(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) + + ParseApproval(log types.Log) (*BurnMintERC677Approval, error) + + FilterBurnAccessGranted(opts *bind.FilterOpts, burner []common.Address) (*BurnMintERC677BurnAccessGrantedIterator, error) + + WatchBurnAccessGranted(opts *bind.WatchOpts, sink chan<- *BurnMintERC677BurnAccessGranted, burner []common.Address) (event.Subscription, error) + + ParseBurnAccessGranted(log types.Log) (*BurnMintERC677BurnAccessGranted, error) + + FilterBurnAccessRevoked(opts *bind.FilterOpts, burner []common.Address) (*BurnMintERC677BurnAccessRevokedIterator, error) + + WatchBurnAccessRevoked(opts *bind.WatchOpts, sink chan<- *BurnMintERC677BurnAccessRevoked, burner []common.Address) (event.Subscription, error) + + ParseBurnAccessRevoked(log types.Log) (*BurnMintERC677BurnAccessRevoked, error) + + FilterMintAccessGranted(opts *bind.FilterOpts, minter []common.Address) (*BurnMintERC677MintAccessGrantedIterator, error) + + WatchMintAccessGranted(opts *bind.WatchOpts, sink chan<- *BurnMintERC677MintAccessGranted, minter []common.Address) (event.Subscription, error) + + ParseMintAccessGranted(log types.Log) (*BurnMintERC677MintAccessGranted, error) + + FilterMintAccessRevoked(opts *bind.FilterOpts, minter []common.Address) (*BurnMintERC677MintAccessRevokedIterator, error) + + WatchMintAccessRevoked(opts *bind.WatchOpts, sink chan<- *BurnMintERC677MintAccessRevoked, minter []common.Address) (event.Subscription, error) + + ParseMintAccessRevoked(log types.Log) (*BurnMintERC677MintAccessRevoked, error) + + FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677OwnershipTransferRequestedIterator, error) + + WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *BurnMintERC677OwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseOwnershipTransferRequested(log types.Log) (*BurnMintERC677OwnershipTransferRequested, error) + + FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677OwnershipTransferredIterator, error) + + WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BurnMintERC677OwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseOwnershipTransferred(log types.Log) (*BurnMintERC677OwnershipTransferred, error) + + FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677TransferIterator, error) + + WatchTransfer(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Transfer, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseTransfer(log types.Log) (*BurnMintERC677Transfer, error) + + FilterTransfer0(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677Transfer0Iterator, error) + + WatchTransfer0(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Transfer0, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseTransfer0(log types.Log) (*BurnMintERC677Transfer0, error) + + Address() common.Address +} diff --git a/seth/contracts/bind2/erc20.go b/seth/contracts/bind2/erc20.go new file mode 100644 index 000000000..902e1e5fa --- /dev/null +++ b/seth/contracts/bind2/erc20.go @@ -0,0 +1,686 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package erc20 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +var ERC20MetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x60806040523480156200001157600080fd5b5060405162000de638038062000de683398101604081905262000034916200011f565b600362000042838262000218565b50600462000051828262000218565b505050620002e4565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008257600080fd5b81516001600160401b03808211156200009f576200009f6200005a565b604051601f8301601f19908116603f01168101908282118183101715620000ca57620000ca6200005a565b81604052838152602092508683858801011115620000e757600080fd5b600091505b838210156200010b5785820183015181830184015290820190620000ec565b600093810190920192909252949350505050565b600080604083850312156200013357600080fd5b82516001600160401b03808211156200014b57600080fd5b620001598683870162000070565b935060208501519150808211156200017057600080fd5b506200017f8582860162000070565b9150509250929050565b600181811c908216806200019e57607f821691505b602082108103620001bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021357600081815260208120601f850160051c81016020861015620001ee5750805b601f850160051c820191505b818110156200020f57828155600101620001fa565b5050505b505050565b81516001600160401b038111156200023457620002346200005a565b6200024c8162000245845462000189565b84620001c5565b602080601f8311600181146200028457600084156200026b5750858301515b600019600386901b1c1916600185901b1785556200020f565b600085815260208120601f198616915b82811015620002b55788860151825594840194600190910190840162000294565b5085821015620002d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610af280620002f46000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610194578063a9059cbb146101a7578063dd62ed3e146101ba57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461018c57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d6610200565b6040516100e39190610908565b60405180910390f35b6100ff6100fa36600461099d565b610292565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f3660046109c7565b6102ac565b604051601281526020016100e3565b6100ff61015136600461099d565b6102d0565b610113610164366004610a03565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100d661031c565b6100ff6101a236600461099d565b61032b565b6100ff6101b536600461099d565b610401565b6101136101c8366004610a25565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60606003805461020f90610a58565b80601f016020809104026020016040519081016040528092919081815260200182805461023b90610a58565b80156102885780601f1061025d57610100808354040283529160200191610288565b820191906000526020600020905b81548152906001019060200180831161026b57829003601f168201915b5050505050905090565b6000336102a081858561040f565b60019150505b92915050565b6000336102ba8582856105c2565b6102c5858585610699565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906102a09082908690610317908790610aab565b61040f565b60606004805461020f90610a58565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156103f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102c5828686840361040f565b6000336102a0818585610699565b73ffffffffffffffffffffffffffffffffffffffff83166104b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff8216610554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106935781811015610686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103eb565b610693848484840361040f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff831661073c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff82166107df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610693565b600060208083528351808285015260005b8181101561093557858101830151858201604001528201610919565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461099857600080fd5b919050565b600080604083850312156109b057600080fd5b6109b983610974565b946020939093013593505050565b6000806000606084860312156109dc57600080fd5b6109e584610974565b92506109f360208501610974565b9150604084013590509250925092565b600060208284031215610a1557600080fd5b610a1e82610974565b9392505050565b60008060408385031215610a3857600080fd5b610a4183610974565b9150610a4f60208401610974565b90509250929050565b600181811c90821680610a6c57607f821691505b602082108103610aa5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b808201808211156102a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea164736f6c6343000813000a", +} + +var ERC20ABI = ERC20MetaData.ABI + +var ERC20Bin = ERC20MetaData.Bin + +func DeployERC20(auth *bind.TransactOpts, backend bind.ContractBackend, name_ string, symbol_ string) (common.Address, *types.Transaction, *ERC20, error) { + parsed, err := ERC20MetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC20Bin), backend, name_, symbol_) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ERC20{address: address, abi: *parsed, ERC20Caller: ERC20Caller{contract: contract}, ERC20Transactor: ERC20Transactor{contract: contract}, ERC20Filterer: ERC20Filterer{contract: contract}}, nil +} + +type ERC20 struct { + address common.Address + abi abi.ABI + ERC20Caller + ERC20Transactor + ERC20Filterer +} + +type ERC20Caller struct { + contract *bind.BoundContract +} + +type ERC20Transactor struct { + contract *bind.BoundContract +} + +type ERC20Filterer struct { + contract *bind.BoundContract +} + +type ERC20Session struct { + Contract *ERC20 + CallOpts bind.CallOpts + TransactOpts bind.TransactOpts +} + +type ERC20CallerSession struct { + Contract *ERC20Caller + CallOpts bind.CallOpts +} + +type ERC20TransactorSession struct { + Contract *ERC20Transactor + TransactOpts bind.TransactOpts +} + +type ERC20Raw struct { + Contract *ERC20 +} + +type ERC20CallerRaw struct { + Contract *ERC20Caller +} + +type ERC20TransactorRaw struct { + Contract *ERC20Transactor +} + +func NewERC20(address common.Address, backend bind.ContractBackend) (*ERC20, error) { + abi, err := abi.JSON(strings.NewReader(ERC20ABI)) + if err != nil { + return nil, err + } + contract, err := bindERC20(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ERC20{address: address, abi: abi, ERC20Caller: ERC20Caller{contract: contract}, ERC20Transactor: ERC20Transactor{contract: contract}, ERC20Filterer: ERC20Filterer{contract: contract}}, nil +} + +func NewERC20Caller(address common.Address, caller bind.ContractCaller) (*ERC20Caller, error) { + contract, err := bindERC20(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ERC20Caller{contract: contract}, nil +} + +func NewERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC20Transactor, error) { + contract, err := bindERC20(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ERC20Transactor{contract: contract}, nil +} + +func NewERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC20Filterer, error) { + contract, err := bindERC20(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ERC20Filterer{contract: contract}, nil +} + +func bindERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ERC20MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +func (_ERC20 *ERC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC20.Contract.ERC20Caller.contract.Call(opts, result, method, params...) +} + +func (_ERC20 *ERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20.Contract.ERC20Transactor.contract.Transfer(opts) +} + +func (_ERC20 *ERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20.Contract.ERC20Transactor.contract.Transact(opts, method, params...) +} + +func (_ERC20 *ERC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC20.Contract.contract.Call(opts, result, method, params...) +} + +func (_ERC20 *ERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20.Contract.contract.Transfer(opts) +} + +func (_ERC20 *ERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20.Contract.contract.Transact(opts, method, params...) +} + +func (_ERC20 *ERC20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _ERC20.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_ERC20 *ERC20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _ERC20.Contract.Allowance(&_ERC20.CallOpts, owner, spender) +} + +func (_ERC20 *ERC20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _ERC20.Contract.Allowance(&_ERC20.CallOpts, owner, spender) +} + +func (_ERC20 *ERC20Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _ERC20.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_ERC20 *ERC20Session) BalanceOf(account common.Address) (*big.Int, error) { + return _ERC20.Contract.BalanceOf(&_ERC20.CallOpts, account) +} + +func (_ERC20 *ERC20CallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _ERC20.Contract.BalanceOf(&_ERC20.CallOpts, account) +} + +func (_ERC20 *ERC20Caller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _ERC20.contract.Call(opts, &out, "decimals") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +func (_ERC20 *ERC20Session) Decimals() (uint8, error) { + return _ERC20.Contract.Decimals(&_ERC20.CallOpts) +} + +func (_ERC20 *ERC20CallerSession) Decimals() (uint8, error) { + return _ERC20.Contract.Decimals(&_ERC20.CallOpts) +} + +func (_ERC20 *ERC20Caller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _ERC20.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +func (_ERC20 *ERC20Session) Name() (string, error) { + return _ERC20.Contract.Name(&_ERC20.CallOpts) +} + +func (_ERC20 *ERC20CallerSession) Name() (string, error) { + return _ERC20.Contract.Name(&_ERC20.CallOpts) +} + +func (_ERC20 *ERC20Caller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _ERC20.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +func (_ERC20 *ERC20Session) Symbol() (string, error) { + return _ERC20.Contract.Symbol(&_ERC20.CallOpts) +} + +func (_ERC20 *ERC20CallerSession) Symbol() (string, error) { + return _ERC20.Contract.Symbol(&_ERC20.CallOpts) +} + +func (_ERC20 *ERC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ERC20.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_ERC20 *ERC20Session) TotalSupply() (*big.Int, error) { + return _ERC20.Contract.TotalSupply(&_ERC20.CallOpts) +} + +func (_ERC20 *ERC20CallerSession) TotalSupply() (*big.Int, error) { + return _ERC20.Contract.TotalSupply(&_ERC20.CallOpts) +} + +func (_ERC20 *ERC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20.contract.Transact(opts, "approve", spender, amount) +} + +func (_ERC20 *ERC20Session) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.Approve(&_ERC20.TransactOpts, spender, amount) +} + +func (_ERC20 *ERC20TransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.Approve(&_ERC20.TransactOpts, spender, amount) +} + +func (_ERC20 *ERC20Transactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _ERC20.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue) +} + +func (_ERC20 *ERC20Session) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.DecreaseAllowance(&_ERC20.TransactOpts, spender, subtractedValue) +} + +func (_ERC20 *ERC20TransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.DecreaseAllowance(&_ERC20.TransactOpts, spender, subtractedValue) +} + +func (_ERC20 *ERC20Transactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _ERC20.contract.Transact(opts, "increaseAllowance", spender, addedValue) +} + +func (_ERC20 *ERC20Session) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.IncreaseAllowance(&_ERC20.TransactOpts, spender, addedValue) +} + +func (_ERC20 *ERC20TransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.IncreaseAllowance(&_ERC20.TransactOpts, spender, addedValue) +} + +func (_ERC20 *ERC20Transactor) Transfer(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20.contract.Transact(opts, "transfer", to, amount) +} + +func (_ERC20 *ERC20Session) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.Transfer(&_ERC20.TransactOpts, to, amount) +} + +func (_ERC20 *ERC20TransactorSession) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.Transfer(&_ERC20.TransactOpts, to, amount) +} + +func (_ERC20 *ERC20Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20.contract.Transact(opts, "transferFrom", from, to, amount) +} + +func (_ERC20 *ERC20Session) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.TransferFrom(&_ERC20.TransactOpts, from, to, amount) +} + +func (_ERC20 *ERC20TransactorSession) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.TransferFrom(&_ERC20.TransactOpts, from, to, amount) +} + +type ERC20ApprovalIterator struct { + Event *ERC20Approval + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *ERC20ApprovalIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(ERC20Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *ERC20ApprovalIterator) Error() error { + return it.fail +} + +func (it *ERC20ApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type ERC20Approval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log +} + +func (_ERC20 *ERC20Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ERC20ApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _ERC20.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &ERC20ApprovalIterator{contract: _ERC20.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +func (_ERC20 *ERC20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC20Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _ERC20.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(ERC20Approval) + if err := _ERC20.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_ERC20 *ERC20Filterer) ParseApproval(log types.Log) (*ERC20Approval, error) { + event := new(ERC20Approval) + if err := _ERC20.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type ERC20TransferIterator struct { + Event *ERC20Transfer + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *ERC20TransferIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(ERC20Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *ERC20TransferIterator) Error() error { + return it.fail +} + +func (it *ERC20TransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type ERC20Transfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log +} + +func (_ERC20 *ERC20Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ERC20TransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &ERC20TransferIterator{contract: _ERC20.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +func (_ERC20 *ERC20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC20Transfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ERC20.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(ERC20Transfer) + if err := _ERC20.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_ERC20 *ERC20Filterer) ParseTransfer(log types.Log) (*ERC20Transfer, error) { + event := new(ERC20Transfer) + if err := _ERC20.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +func (ERC20Approval) Topic() common.Hash { + return common.HexToHash("0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925") +} + +func (ERC20Transfer) Topic() common.Hash { + return common.HexToHash("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef") +} + +func (_ERC20 *ERC20) Address() common.Address { + return _ERC20.address +} + +type ERC20Interface interface { + Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) + + BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) + + Decimals(opts *bind.CallOpts) (uint8, error) + + Name(opts *bind.CallOpts) (string, error) + + Symbol(opts *bind.CallOpts) (string, error) + + TotalSupply(opts *bind.CallOpts) (*big.Int, error) + + Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) + + DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) + + IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) + + Transfer(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) + + TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) + + FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ERC20ApprovalIterator, error) + + WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC20Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) + + ParseApproval(log types.Log) (*ERC20Approval, error) + + FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ERC20TransferIterator, error) + + WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC20Transfer, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseTransfer(log types.Log) (*ERC20Transfer, error) + + Address() common.Address +} diff --git a/seth/contracts/emptyMetaDataContractDir/NetworkDebugContract_Broken.go b/seth/contracts/emptyMetaDataContractDir/NetworkDebugContract_Broken.go new file mode 100644 index 000000000..623a48326 --- /dev/null +++ b/seth/contracts/emptyMetaDataContractDir/NetworkDebugContract_Broken.go @@ -0,0 +1,3286 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package network_debug_contract + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// NetworkDebugContractAccount is an auto generated low-level Go binding around an user-defined struct. +type NetworkDebugContractAccount struct { + Name string + Balance uint64 + DailyLimit *big.Int +} + +// NetworkDebugContractData is an auto generated low-level Go binding around an user-defined struct. +type NetworkDebugContractData struct { + Name string + Values []*big.Int +} + +// NetworkDebugContractNestedData is an auto generated low-level Go binding around an user-defined struct. +type NetworkDebugContractNestedData struct { + Data NetworkDebugContractData + DynamicBytes []byte +} + +// NetworkDebugContractMetaData contains all meta data concerning the NetworkDebugContract contract. +var NetworkDebugContractMetaData = &bind.MetaData{ + ABI: "", + Bin: "0x60806040523480156200001157600080fd5b5060405162004015380380620040158339818101604052810190620000379190620000f2565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101006004819055505062000124565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000ba826200008d565b9050919050565b620000cc81620000ad565b8114620000d857600080fd5b50565b600081519050620000ec81620000c1565b92915050565b6000602082840312156200010b576200010a62000088565b5b60006200011b84828501620000db565b91505092915050565b613ee180620001346000396000f3fe6080604052600436106102e85760003560e01c8063788c477211610190578063b1ae9d85116100dc578063e5c19b2d11610095578063ef8a92351161006f578063ef8a923514610bc8578063f3396bd914610bf3578063f499af2a14610c1c578063fbcb8d0714610c5957610328565b8063e5c19b2d14610b11578063e8116e2814610b4e578063ec5c3ede14610b8b57610328565b8063b1ae9d8514610a0d578063b600141f14610a3d578063c0d06d8914610a54578063c2124b2214610a7f578063d7a8020514610a96578063e1111f7914610ad457610328565b80639349d00b116101495780639e099652116101235780639e09965214610963578063a4c0ed36146109a2578063aa3fdcf4146109cb578063ad3de14c146109e257610328565b80639349d00b146108f857806395a81a4c1461090f57806399adad2e1461092657610328565b8063788c4772146107fb5780637f12881c146108125780637fdc8fe11461084f57806381b375a01461088c5780638db611be146108b55780638f856296146108e157610328565b806333311ef31161024f57806358379d71116102085780636284117d116101e25780636284117d1461075057806362c270e11461078d5780636d4ce63c146107a45780637014c81d146107cf57610328565b806358379d71146106bf5780635921483f146106fc5780635e9c80d61461073957610328565b806333311ef3146105625780633837a75e1461059f5780633bc5de30146105dc5780633e41f1351461060757806345f0c9e61461064457806348ad9fe81461068257610328565b806323515760116102a1578063235157601461043e578063256560d51461047b5780632a1afcd9146104925780632e49d78b146104bd57806330985bcc146104fa5780633170428e1461053757610328565b806304d8215b1461036357806306595f75146103a057806311b3c478146103b757806312d91233146103e05780631b9265b81461041d5780631e31d0a81461042757610328565b36610328577f59e04c3f0d44b7caf6e8ef854b61d9a51cf1960d7a88ff6356cc5e946b4b5832333460405161031e9291906120c3565b60405180910390a1005b7f1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b33346040516103599291906120ff565b60405180910390a1005b34801561036f57600080fd5b5061038a60048036038101906103859190612172565b610c96565b60405161039791906121cd565b60405180910390f35b3480156103ac57600080fd5b506103b5610cdc565b005b3480156103c357600080fd5b506103de60048036038101906103d99190612214565b610d1f565b005b3480156103ec57600080fd5b50610407600480360381019061040291906123ad565b610db2565b60405161041491906124b4565b60405180910390f35b610425610e71565b005b34801561043357600080fd5b5061043c610e73565b005b34801561044a57600080fd5b5061046560048036038101906104609190612172565b610eba565b60405161047291906124e5565b60405180910390f35b34801561048757600080fd5b50610490610eef565b005b34801561049e57600080fd5b506104a7610f00565b6040516104b491906124e5565b60405180910390f35b3480156104c957600080fd5b506104e460048036038101906104df9190612525565b610f06565b6040516104f191906125c9565b60405180910390f35b34801561050657600080fd5b50610521600480360381019061051c9190612172565b610f88565b60405161052e91906124e5565b60405180910390f35b34801561054357600080fd5b5061054c61106a565b60405161055991906125e4565b60405180910390f35b34801561056e57600080fd5b5061058960048036038101906105849190612635565b6111a9565b6040516105969190612671565b60405180910390f35b3480156105ab57600080fd5b506105c660048036038101906105c19190612172565b6111b3565b6040516105d391906124e5565b60405180910390f35b3480156105e857600080fd5b506105f16112be565b6040516105fe91906125e4565b60405180910390f35b34801561061357600080fd5b5061062e60048036038101906106299190612172565b6112c8565b60405161063b91906124e5565b60405180910390f35b34801561065057600080fd5b5061066b60048036038101906106669190612741565b6113c3565b60405161067992919061280b565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a49190612867565b6113d4565b6040516106b691906124e5565b60405180910390f35b3480156106cb57600080fd5b506106e660048036038101906106e19190612172565b6113ec565b6040516106f391906124e5565b60405180910390f35b34801561070857600080fd5b50610723600480360381019061071e9190612894565b6114e7565b60405161073091906124e5565b60405180910390f35b34801561074557600080fd5b5061074e611504565b005b34801561075c57600080fd5b5061077760048036038101906107729190612894565b611545565b60405161078491906124e5565b60405180910390f35b34801561079957600080fd5b506107a261155d565b005b3480156107b057600080fd5b506107b96115f1565b6040516107c691906124e5565b60405180910390f35b3480156107db57600080fd5b506107e46115fa565b6040516107f292919061280b565b60405180910390f35b34801561080757600080fd5b5061081061163f565b005b34801561081e57600080fd5b50610839600480360381019061083491906128e5565b611676565b6040516108469190612ac4565b60405180910390f35b34801561085b57600080fd5b5061087660048036038101906108719190612b05565b61168f565b6040516108839190612d12565b60405180910390f35b34801561089857600080fd5b506108b360048036038101906108ae9190612741565b611698565b005b3480156108c157600080fd5b506108ca61169c565b6040516108d892919061280b565b60405180910390f35b3480156108ed57600080fd5b506108f66116e1565b005b34801561090457600080fd5b5061090d611711565b005b34801561091b57600080fd5b5061092461171b565b005b34801561093257600080fd5b5061094d60048036038101906109489190612d56565b611754565b60405161095a9190612e55565b60405180910390f35b34801561096f57600080fd5b5061098a60048036038101906109859190612eb0565b6117ff565b60405161099993929190612f12565b60405180910390f35b3480156109ae57600080fd5b506109c960048036038101906109c49190612fa4565b611816565b005b3480156109d757600080fd5b506109e0611b02565b005b3480156109ee57600080fd5b506109f7611b4b565b604051610a0491906124e5565b60405180910390f35b610a276004803603810190610a229190612172565b611b92565b604051610a3491906124e5565b60405180910390f35b348015610a4957600080fd5b50610a52611cdc565b005b348015610a6057600080fd5b50610a69611d0e565b604051610a769190613077565b60405180910390f35b348015610a8b57600080fd5b50610a94611d34565b005b348015610aa257600080fd5b50610abd6004803603810190610ab89190612741565b611d86565b604051610acb92919061280b565b60405180910390f35b348015610ae057600080fd5b50610afb6004803603810190610af69190613155565b611d97565b604051610b08919061325c565b60405180910390f35b348015610b1d57600080fd5b50610b386004803603810190610b339190612894565b611da1565b604051610b4591906124e5565b60405180910390f35b348015610b5a57600080fd5b50610b756004803603810190610b709190612894565b611db2565b604051610b8291906124e5565b60405180910390f35b348015610b9757600080fd5b50610bb26004803603810190610bad9190612867565b611e00565b604051610bbf919061327e565b60405180910390f35b348015610bd457600080fd5b50610bdd611e0a565b604051610bea91906125c9565b60405180910390f35b348015610bff57600080fd5b50610c1a6004803603810190610c159190612894565b611e1d565b005b348015610c2857600080fd5b50610c436004803603810190610c3e9190612b05565b611e39565b604051610c509190612ac4565b60405180910390f35b348015610c6557600080fd5b50610c806004803603810190610c7b9190612894565b611f6e565b604051610c8d91906124e5565b60405180910390f35b60007fdfac7500004753b91139af55816e7eade36d96faec68b343f77ed66b89912a7b828413604051610cc991906121cd565b60405180910390a1818313905092915050565b6000610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d14906132e5565b60405180910390fd5b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166311abb00283836040518363ffffffff1660e01b8152600401610d7c929190613305565b600060405180830381600087803b158015610d9657600080fd5b505af1158015610daa573d6000803e3d6000fd5b505050505050565b60606000825167ffffffffffffffff811115610dd157610dd061226a565b5b604051908082528060200260200182016040528015610dff5781602001602082028036833780820191505090505b50905060005b8351811015610e67576001848281518110610e2357610e2261332e565b5b6020026020010151610e35919061338c565b828281518110610e4857610e4761332e565b5b6020026020010181815250508080610e5f906133c0565b915050610e05565b5080915050919050565b565b3373ffffffffffffffffffffffffffffffffffffffff1660017f33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b560405160405180910390a3565b600081600260008581526020019081526020016000206000828254610edf9190613408565b9250508190555081905092915050565b6000610efe57610efd61344c565b5b565b60005481565b600081600560006101000a81548160ff02191690836003811115610f2d57610f2c612552565b5b0217905550600560009054906101000a900460ff166003811115610f5457610f53612552565b5b7fbea054406fdf249b05d1aef1b5f848d62d902d94389fca702b2d8337677c359a60405160405180910390a2819050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663047c4425836040518263ffffffff1660e01b8152600401610fe591906124e5565b6020604051808303816000875af1158015611004573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110289190613490565b50827feace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b3560405160405180910390a281836110629190613408565b905092915050565b6000803090506000808273ffffffffffffffffffffffffffffffffffffffff16633bc5de3060e01b604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161110291906134f9565b600060405180830381855afa9150503d806000811461113d576040519150601f19603f3d011682016040523d82523d6000602084013e611142565b606091505b509150915081611187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117e9061355c565b60405180910390fd5b60008180602001905181019061119d9190613591565b90508094505050505090565b6000819050919050565b60006002826111c29190613408565b9150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fa8fca7a84846040518363ffffffff1660e01b81526004016112219291906135be565b6020604051808303816000875af1158015611240573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112649190613490565b503373ffffffffffffffffffffffffffffffffffffffff1660017f33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b560405160405180910390a381836112b69190613408565b905092915050565b6000600454905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633e41f13584846040518363ffffffff1660e01b81526004016113279291906135be565b6020604051808303816000875af1158015611346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136a9190613490565b503373ffffffffffffffffffffffffffffffffffffffff16827f33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b560405160405180910390a381836113bb9190613408565b905092915050565b600060608383915091509250929050565b60016020528060005260406000206000915090505481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633e41f13584846040518363ffffffff1660e01b815260040161144b9291906135be565b6020604051808303816000875af115801561146a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148e9190613490565b503373ffffffffffffffffffffffffffffffffffffffff16827f33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b560405160405180910390a381836114df9190613408565b905092915050565b600060026000838152602001908152602001600020549050919050565b600c60156040517f4a2eaf7e00000000000000000000000000000000000000000000000000000000815260040161153c92919061365d565b60405180910390fd5b60026020528060005260406000206000915090505481565b7febe3ff7e2071d351bf2e65b4fccd24e3ae99485f02468f1feecf7d64dc04418860405180606001604052806040518060400160405280600481526020017f4a6f686e000000000000000000000000000000000000000000000000000000008152508152602001600567ffffffffffffffff168152602001600a8152506040516115e791906136f9565b60405180910390a1565b60008054905090565b60006060617a696040518060400160405280600a81526020017f6f757470757456616c3100000000000000000000000000000000000000000000815250915091509091565b7f25b7adba1b046a19379db4bc06aa1f2e71604d7b599a0ee8783d58110f00e16a60405161166c90613767565b60405180910390a1565b61167e611fa5565b8161168890613942565b9050919050565b36819050919050565b5050565b60006060617a696040518060400160405280600a81526020017f6f757470757456616c3100000000000000000000000000000000000000000000815250915091509091565b60537feace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b3560405160405180910390a2565b611719611504565b565b7f33bc9bae48dbe1e057f264b3fc6a1dacdcceacb3ba28d937231c70e068a02f1c3360405161174a919061327e565b60405180910390a1565b61175c611fc5565b611764611fc5565b826000600381106117785761177761332e565b5b6020028101906117889190613964565b6117919061398c565b816000600281106117a5576117a461332e565b5b6020020181905250826001600381106117c1576117c061332e565b5b6020028101906117d19190613964565b6117da9061398c565b816001600281106117ee576117ed61332e565b5b602002018190525080915050919050565b600080600085858592509250925093509350939050565b7f962c5df4c8ad201a4f54a88f47715bb2cf291d019e350e2dff50ca6fc0f5d0ed8282905060405161184891906125e4565b60405180910390a16000828290500361189c57606360656040517f4a2eaf7e000000000000000000000000000000000000000000000000000000008152600401611893929190613a15565b60405180910390fd5b6000803073ffffffffffffffffffffffffffffffffffffffff1684846040516118c6929190613a63565b600060405180830381855af49150503d8060008114611901576040519150601f19603f3d011682016040523d82523d6000602084013e611906565b606091505b50915091508161195e576000815111156119235780518082602001fd5b6040517f2350eb5200000000000000000000000000000000000000000000000000000000815260040161195590613aee565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16633170428e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119cd9190613591565b50600084846000906004926119e493929190613b18565b906119ef9190613b97565b90506358379d7160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603611a78576040517f2350eb52000000000000000000000000000000000000000000000000000000008152600401611a6f90613c42565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16633837a75e600160026040518363ffffffff1660e01b8152600401611ab5929190613cd8565b6020604051808303816000875af1158015611ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af89190613490565b5050505050505050565b60033373ffffffffffffffffffffffffffffffffffffffff1660017f5660e8f93f0146f45abcd659e026b75995db50053cbbca4d7f365934ade68bf360405160405180910390a4565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000611b9e8383610c96565b15611c9b57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633e41f13584846040518363ffffffff1660e01b8152600401611c009291906135be565b6020604051808303816000875af1158015611c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c439190613490565b503373ffffffffffffffffffffffffffffffffffffffff16827f33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b560405160405180910390a38183611c949190613408565b9050611cd6565b6040517f2350eb52000000000000000000000000000000000000000000000000000000008152600401611ccd90613d73565b60405180910390fd5b92915050565b6040517fa0c2d2db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60033373ffffffffffffffffffffffffffffffffffffffff1660027f56c2ea44ba516098cee0c181dd9d8db262657368b6e911e83ae0ccfae806c73d604051611d7c90613ddf565b60405180910390a4565b600060608383915091509250929050565b6060819050919050565b600081600081905550819050919050565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550819050919050565b6000819050919050565b600560009054906101000a900460ff1681565b6000600260008381526020019081526020016000208190555050565b611e41611fa5565b6000828060000190611e539190613dff565b604051602001611e64929190613e92565b6040516020818303038152906040528051906020012090506000602067ffffffffffffffff811115611e9957611e9861226a565b5b6040519080825280601f01601f191660200182016040528015611ecb5781602001600182028036833780820191505090505b50905060005b6020811015611f4657828160208110611eed57611eec61332e565b5b1a60f81b828281518110611f0457611f0361332e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080611f3e906133c0565b915050611ed1565b50604051806040016040528085611f5c9061398c565b81526020018281525092505050919050565b6000817fb16dba9242e1aa07ccc47228094628f72c8cc9699ee45d5bc8d67b84d3038c6860405160405180910390a2819050919050565b6040518060400160405280611fb8611ff2565b8152602001606081525090565b60405180604001604052806002905b611fdc611ff2565b815260200190600190039081611fd45790505090565b604051806040016040528060608152602001606081525090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120378261200c565b9050919050565b6120478161202c565b82525050565b6000819050919050565b6120608161204d565b82525050565b600082825260208201905092915050565b7f5265636569766564204574686572000000000000000000000000000000000000600082015250565b60006120ad600e83612066565b91506120b882612077565b602082019050919050565b60006060820190506120d8600083018561203e565b6120e56020830184612057565b81810360408301526120f6816120a0565b90509392505050565b6000604082019050612114600083018561203e565b6121216020830184612057565b9392505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61214f8161213c565b811461215a57600080fd5b50565b60008135905061216c81612146565b92915050565b6000806040838503121561218957612188612132565b5b60006121978582860161215d565b92505060206121a88582860161215d565b9150509250929050565b60008115159050919050565b6121c7816121b2565b82525050565b60006020820190506121e260008301846121be565b92915050565b6121f18161204d565b81146121fc57600080fd5b50565b60008135905061220e816121e8565b92915050565b6000806040838503121561222b5761222a612132565b5b6000612239858286016121ff565b925050602061224a858286016121ff565b9150509250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6122a282612259565b810181811067ffffffffffffffff821117156122c1576122c061226a565b5b80604052505050565b60006122d4612128565b90506122e08282612299565b919050565b600067ffffffffffffffff821115612300576122ff61226a565b5b602082029050602081019050919050565b600080fd5b6000612329612324846122e5565b6122ca565b9050808382526020820190506020840283018581111561234c5761234b612311565b5b835b81811015612375578061236188826121ff565b84526020840193505060208101905061234e565b5050509392505050565b600082601f83011261239457612393612254565b5b81356123a4848260208601612316565b91505092915050565b6000602082840312156123c3576123c2612132565b5b600082013567ffffffffffffffff8111156123e1576123e0612137565b5b6123ed8482850161237f565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61242b8161204d565b82525050565b600061243d8383612422565b60208301905092915050565b6000602082019050919050565b6000612461826123f6565b61246b8185612401565b935061247683612412565b8060005b838110156124a757815161248e8882612431565b975061249983612449565b92505060018101905061247a565b5085935050505092915050565b600060208201905081810360008301526124ce8184612456565b905092915050565b6124df8161213c565b82525050565b60006020820190506124fa60008301846124d6565b92915050565b6004811061250d57600080fd5b50565b60008135905061251f81612500565b92915050565b60006020828403121561253b5761253a612132565b5b600061254984828501612510565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811061259257612591612552565b5b50565b60008190506125a382612581565b919050565b60006125b382612595565b9050919050565b6125c3816125a8565b82525050565b60006020820190506125de60008301846125ba565b92915050565b60006020820190506125f96000830184612057565b92915050565b6000819050919050565b612612816125ff565b811461261d57600080fd5b50565b60008135905061262f81612609565b92915050565b60006020828403121561264b5761264a612132565b5b600061265984828501612620565b91505092915050565b61266b816125ff565b82525050565b60006020820190506126866000830184612662565b92915050565b600080fd5b600067ffffffffffffffff8211156126ac576126ab61226a565b5b6126b582612259565b9050602081019050919050565b82818337600083830152505050565b60006126e46126df84612691565b6122ca565b905082815260208101848484011115612700576126ff61268c565b5b61270b8482856126c2565b509392505050565b600082601f83011261272857612727612254565b5b81356127388482602086016126d1565b91505092915050565b6000806040838503121561275857612757612132565b5b6000612766858286016121ff565b925050602083013567ffffffffffffffff81111561278757612786612137565b5b61279385828601612713565b9150509250929050565b600081519050919050565b60005b838110156127c65780820151818401526020810190506127ab565b60008484015250505050565b60006127dd8261279d565b6127e78185612066565b93506127f78185602086016127a8565b61280081612259565b840191505092915050565b60006040820190506128206000830185612057565b818103602083015261283281846127d2565b90509392505050565b6128448161202c565b811461284f57600080fd5b50565b6000813590506128618161283b565b92915050565b60006020828403121561287d5761287c612132565b5b600061288b84828501612852565b91505092915050565b6000602082840312156128aa576128a9612132565b5b60006128b88482850161215d565b91505092915050565b600080fd5b6000604082840312156128dc576128db6128c1565b5b81905092915050565b6000602082840312156128fb576128fa612132565b5b600082013567ffffffffffffffff81111561291957612918612137565b5b612925848285016128c6565b91505092915050565b600082825260208201905092915050565b600061294a8261279d565b612954818561292e565b93506129648185602086016127a8565b61296d81612259565b840191505092915050565b600082825260208201905092915050565b6000612994826123f6565b61299e8185612978565b93506129a983612412565b8060005b838110156129da5781516129c18882612431565b97506129cc83612449565b9250506001810190506129ad565b5085935050505092915050565b60006040830160008301518482036000860152612a04828261293f565b91505060208301518482036020860152612a1e8282612989565b9150508091505092915050565b600081519050919050565b600082825260208201905092915050565b6000612a5282612a2b565b612a5c8185612a36565b9350612a6c8185602086016127a8565b612a7581612259565b840191505092915050565b60006040830160008301518482036000860152612a9d82826129e7565b91505060208301518482036020860152612ab78282612a47565b9150508091505092915050565b60006020820190508181036000830152612ade8184612a80565b905092915050565b600060408284031215612afc57612afb6128c1565b5b81905092915050565b600060208284031215612b1b57612b1a612132565b5b600082013567ffffffffffffffff811115612b3957612b38612137565b5b612b4584828501612ae6565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112612b7a57612b79612b58565b5b83810192508235915060208301925067ffffffffffffffff821115612ba257612ba1612b4e565b5b600182023603831315612bb857612bb7612b53565b5b509250929050565b6000612bcc838561292e565b9350612bd98385846126c2565b612be283612259565b840190509392505050565b60008083356001602003843603038112612c0a57612c09612b58565b5b83810192508235915060208301925067ffffffffffffffff821115612c3257612c31612b4e565b5b602082023603831315612c4857612c47612b53565b5b509250929050565b600080fd5b82818337505050565b6000612c6a8385612978565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115612c9d57612c9c612c50565b5b602083029250612cae838584612c55565b82840190509392505050565b600060408301612ccd6000840184612b5d565b8583036000870152612ce0838284612bc0565b92505050612cf16020840184612bed565b8583036020870152612d04838284612c5e565b925050508091505092915050565b60006020820190508181036000830152612d2c8184612cba565b905092915050565b600081905082602060030282011115612d5057612d4f612311565b5b92915050565b600060208284031215612d6c57612d6b612132565b5b600082013567ffffffffffffffff811115612d8a57612d89612137565b5b612d9684828501612d34565b91505092915050565b600060029050919050565b600081905092915050565b6000819050919050565b6000612dcb83836129e7565b905092915050565b6000602082019050919050565b6000612deb82612d9f565b612df58185612daa565b935083602082028501612e0785612db5565b8060005b85811015612e435784840389528151612e248582612dbf565b9450612e2f83612dd3565b925060208a01995050600181019050612e0b565b50829750879550505050505092915050565b60006020820190508181036000830152612e6f8184612de0565b905092915050565b600081600f0b9050919050565b612e8d81612e77565b8114612e9857600080fd5b50565b600081359050612eaa81612e84565b92915050565b600080600060608486031215612ec957612ec8612132565b5b6000612ed78682870161215d565b9350506020612ee886828701612e9b565b9250506040612ef9868287016121ff565b9150509250925092565b612f0c81612e77565b82525050565b6000606082019050612f2760008301866124d6565b612f346020830185612f03565b612f416040830184612057565b949350505050565b600080fd5b60008083601f840112612f6457612f63612254565b5b8235905067ffffffffffffffff811115612f8157612f80612f49565b5b602083019150836001820283011115612f9d57612f9c612311565b5b9250929050565b60008060008060608587031215612fbe57612fbd612132565b5b6000612fcc87828801612852565b9450506020612fdd878288016121ff565b935050604085013567ffffffffffffffff811115612ffe57612ffd612137565b5b61300a87828801612f4e565b925092505092959194509250565b6000819050919050565b600061303d6130386130338461200c565b613018565b61200c565b9050919050565b600061304f82613022565b9050919050565b600061306182613044565b9050919050565b61307181613056565b82525050565b600060208201905061308c6000830184613068565b92915050565b600067ffffffffffffffff8211156130ad576130ac61226a565b5b602082029050602081019050919050565b60006130d16130cc84613092565b6122ca565b905080838252602082019050602084028301858111156130f4576130f3612311565b5b835b8181101561311d57806131098882612852565b8452602084019350506020810190506130f6565b5050509392505050565b600082601f83011261313c5761313b612254565b5b813561314c8482602086016130be565b91505092915050565b60006020828403121561316b5761316a612132565b5b600082013567ffffffffffffffff81111561318957613188612137565b5b61319584828501613127565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131d38161202c565b82525050565b60006131e583836131ca565b60208301905092915050565b6000602082019050919050565b60006132098261319e565b61321381856131a9565b935061321e836131ba565b8060005b8381101561324f57815161323688826131d9565b9750613241836131f1565b925050600181019050613222565b5085935050505092915050565b6000602082019050818103600083015261327681846131fe565b905092915050565b6000602082019050613293600083018461203e565b92915050565b7f616c7761797320726576657274206572726f7200000000000000000000000000600082015250565b60006132cf601383612066565b91506132da82613299565b602082019050919050565b600060208201905081810360008301526132fe816132c2565b9050919050565b600060408201905061331a6000830185612057565b6133276020830184612057565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006133978261204d565b91506133a28361204d565b92508282019050808211156133ba576133b961335d565b5b92915050565b60006133cb8261204d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133fd576133fc61335d565b5b600182019050919050565b60006134138261213c565b915061341e8361213c565b9250828201905082811215600083121683821260008412151617156134465761344561335d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60008151905061348a81612146565b92915050565b6000602082840312156134a6576134a5612132565b5b60006134b48482850161347b565b91505092915050565b600081905092915050565b60006134d382612a2b565b6134dd81856134bd565b93506134ed8185602086016127a8565b80840191505092915050565b600061350582846134c8565b915081905092915050565b7f5374617469632063616c6c206661696c65640000000000000000000000000000600082015250565b6000613546601283612066565b915061355182613510565b602082019050919050565b6000602082019050818103600083015261357581613539565b9050919050565b60008151905061358b816121e8565b92915050565b6000602082840312156135a7576135a6612132565b5b60006135b58482850161357c565b91505092915050565b60006040820190506135d360008301856124d6565b6135e060208301846124d6565b9392505050565b6000819050919050565b600061360c613607613602846135e7565b613018565b61204d565b9050919050565b61361c816135f1565b82525050565b6000819050919050565b600061364761364261363d84613622565b613018565b61204d565b9050919050565b6136578161362c565b82525050565b60006040820190506136726000830185613613565b61367f602083018461364e565b9392505050565b600067ffffffffffffffff82169050919050565b6136a381613686565b82525050565b600060608301600083015184820360008601526136c6828261293f565b91505060208301516136db602086018261369a565b5060408301516136ee6040860182612422565b508091505092915050565b6000602082019050818103600083015261371381846136a9565b905092915050565b7f6d79537472696e67000000000000000000000000000000000000000000000000600082015250565b6000613751600883612066565b915061375c8261371b565b602082019050919050565b6000602082019050818103600083015261378081613744565b9050919050565b600080fd5b600080fd5b6000604082840312156137a7576137a6613787565b5b6137b160406122ca565b9050600082013567ffffffffffffffff8111156137d1576137d061378c565b5b6137dd84828501612713565b600083015250602082013567ffffffffffffffff8111156138015761380061378c565b5b61380d8482850161237f565b60208301525092915050565b600067ffffffffffffffff8211156138345761383361226a565b5b61383d82612259565b9050602081019050919050565b600061385d61385884613819565b6122ca565b9050828152602081018484840111156138795761387861268c565b5b6138848482856126c2565b509392505050565b600082601f8301126138a1576138a0612254565b5b81356138b184826020860161384a565b91505092915050565b6000604082840312156138d0576138cf613787565b5b6138da60406122ca565b9050600082013567ffffffffffffffff8111156138fa576138f961378c565b5b61390684828501613791565b600083015250602082013567ffffffffffffffff81111561392a5761392961378c565b5b6139368482850161388c565b60208301525092915050565b600061394e36836138ba565b9050919050565b600080fd5b600080fd5b600080fd5b6000823560016040038336030381126139805761397f613955565b5b80830191505092915050565b60006139983683613791565b9050919050565b6000819050919050565b60006139c46139bf6139ba8461399f565b613018565b61204d565b9050919050565b6139d4816139a9565b82525050565b6000819050919050565b60006139ff6139fa6139f5846139da565b613018565b61204d565b9050919050565b613a0f816139e4565b82525050565b6000604082019050613a2a60008301856139cb565b613a376020830184613a06565b9392505050565b6000613a4a83856134bd565b9350613a578385846126c2565b82840190509392505050565b6000613a70828486613a3e565b91508190509392505050565b7f64656c656761746563616c6c206661696c65642077697468206e6f207265617360008201527f6f6e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ad8602283612066565b9150613ae382613a7c565b604082019050919050565b60006020820190508181036000830152613b0781613acb565b9050919050565b600080fd5b600080fd5b60008085851115613b2c57613b2b613b0e565b5b83861115613b3d57613b3c613b13565b5b6001850283019150848603905094509492505050565b600082905092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600082821b905092915050565b6000613ba38383613b53565b82613bae8135613b5e565b92506004821015613bee57613be97fffffffff0000000000000000000000000000000000000000000000000000000083600403600802613b8a565b831692505b505092915050565b7f6f68206f68206f682069742773206d6167696321000000000000000000000000600082015250565b6000613c2c601483612066565b9150613c3782613bf6565b602082019050919050565b60006020820190508181036000830152613c5b81613c1f565b9050919050565b6000819050919050565b6000613c87613c82613c7d84613c62565b613018565b61213c565b9050919050565b613c9781613c6c565b82525050565b6000819050919050565b6000613cc2613cbd613cb884613c9d565b613018565b61213c565b9050919050565b613cd281613ca7565b82525050565b6000604082019050613ced6000830185613c8e565b613cfa6020830184613cc9565b9392505050565b7f666972737420696e7420776173206e6f742067726561746572207468616e207360008201527f65636f6e6420696e740000000000000000000000000000000000000000000000602082015250565b6000613d5d602983612066565b9150613d6882613d01565b604082019050919050565b60006020820190508181036000830152613d8c81613d50565b9050919050565b7f736f6d6520696400000000000000000000000000000000000000000000000000600082015250565b6000613dc9600783612066565b9150613dd482613d93565b602082019050919050565b60006020820190508181036000830152613df881613dbc565b9050919050565b60008083356001602003843603038112613e1c57613e1b613955565b5b80840192508235915067ffffffffffffffff821115613e3e57613e3d61395a565b5b602083019250600182023603831315613e5a57613e5961395f565b5b509250929050565b600081905092915050565b6000613e798385613e62565b9350613e868385846126c2565b82840190509392505050565b6000613e9f828486613e6d565b9150819050939250505056fea264697066735822122095801437fe2af153ec90ad58a4678a194b7fb3b777ee30438995ef0f23596f7664736f6c63430008130033", +} + +// NetworkDebugContractABI is the input ABI used to generate the binding from. +// Deprecated: Use NetworkDebugContractMetaData.ABI instead. +var NetworkDebugContractABI = NetworkDebugContractMetaData.ABI + +// NetworkDebugContractBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use NetworkDebugContractMetaData.Bin instead. +var NetworkDebugContractBin = NetworkDebugContractMetaData.Bin + +// DeployNetworkDebugContract deploys a new Ethereum contract, binding an instance of NetworkDebugContract to it. +func DeployNetworkDebugContract(auth *bind.TransactOpts, backend bind.ContractBackend, subAddr common.Address) (common.Address, *types.Transaction, *NetworkDebugContract, error) { + parsed, err := NetworkDebugContractMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(NetworkDebugContractBin), backend, subAddr) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &NetworkDebugContract{NetworkDebugContractCaller: NetworkDebugContractCaller{contract: contract}, NetworkDebugContractTransactor: NetworkDebugContractTransactor{contract: contract}, NetworkDebugContractFilterer: NetworkDebugContractFilterer{contract: contract}}, nil +} + +// NetworkDebugContract is an auto generated Go binding around an Ethereum contract. +type NetworkDebugContract struct { + NetworkDebugContractCaller // Read-only binding to the contract + NetworkDebugContractTransactor // Write-only binding to the contract + NetworkDebugContractFilterer // Log filterer for contract events +} + +// NetworkDebugContractCaller is an auto generated read-only Go binding around an Ethereum contract. +type NetworkDebugContractCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// NetworkDebugContractTransactor is an auto generated write-only Go binding around an Ethereum contract. +type NetworkDebugContractTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// NetworkDebugContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type NetworkDebugContractFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// NetworkDebugContractSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type NetworkDebugContractSession struct { + Contract *NetworkDebugContract // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// NetworkDebugContractCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type NetworkDebugContractCallerSession struct { + Contract *NetworkDebugContractCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// NetworkDebugContractTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type NetworkDebugContractTransactorSession struct { + Contract *NetworkDebugContractTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// NetworkDebugContractRaw is an auto generated low-level Go binding around an Ethereum contract. +type NetworkDebugContractRaw struct { + Contract *NetworkDebugContract // Generic contract binding to access the raw methods on +} + +// NetworkDebugContractCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type NetworkDebugContractCallerRaw struct { + Contract *NetworkDebugContractCaller // Generic read-only contract binding to access the raw methods on +} + +// NetworkDebugContractTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type NetworkDebugContractTransactorRaw struct { + Contract *NetworkDebugContractTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewNetworkDebugContract creates a new instance of NetworkDebugContract, bound to a specific deployed contract. +func NewNetworkDebugContract(address common.Address, backend bind.ContractBackend) (*NetworkDebugContract, error) { + contract, err := bindNetworkDebugContract(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &NetworkDebugContract{NetworkDebugContractCaller: NetworkDebugContractCaller{contract: contract}, NetworkDebugContractTransactor: NetworkDebugContractTransactor{contract: contract}, NetworkDebugContractFilterer: NetworkDebugContractFilterer{contract: contract}}, nil +} + +// NewNetworkDebugContractCaller creates a new read-only instance of NetworkDebugContract, bound to a specific deployed contract. +func NewNetworkDebugContractCaller(address common.Address, caller bind.ContractCaller) (*NetworkDebugContractCaller, error) { + contract, err := bindNetworkDebugContract(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &NetworkDebugContractCaller{contract: contract}, nil +} + +// NewNetworkDebugContractTransactor creates a new write-only instance of NetworkDebugContract, bound to a specific deployed contract. +func NewNetworkDebugContractTransactor(address common.Address, transactor bind.ContractTransactor) (*NetworkDebugContractTransactor, error) { + contract, err := bindNetworkDebugContract(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &NetworkDebugContractTransactor{contract: contract}, nil +} + +// NewNetworkDebugContractFilterer creates a new log filterer instance of NetworkDebugContract, bound to a specific deployed contract. +func NewNetworkDebugContractFilterer(address common.Address, filterer bind.ContractFilterer) (*NetworkDebugContractFilterer, error) { + contract, err := bindNetworkDebugContract(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &NetworkDebugContractFilterer{contract: contract}, nil +} + +// bindNetworkDebugContract binds a generic wrapper to an already deployed contract. +func bindNetworkDebugContract(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := NetworkDebugContractMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_NetworkDebugContract *NetworkDebugContractRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _NetworkDebugContract.Contract.NetworkDebugContractCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_NetworkDebugContract *NetworkDebugContractRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.NetworkDebugContractTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_NetworkDebugContract *NetworkDebugContractRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.NetworkDebugContractTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_NetworkDebugContract *NetworkDebugContractCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _NetworkDebugContract.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_NetworkDebugContract *NetworkDebugContractTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_NetworkDebugContract *NetworkDebugContractTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.contract.Transact(opts, method, params...) +} + +// CounterMap is a free data retrieval call binding the contract method 0x6284117d. +// +// Solidity: function counterMap(int256 ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCaller) CounterMap(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "counterMap", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// CounterMap is a free data retrieval call binding the contract method 0x6284117d. +// +// Solidity: function counterMap(int256 ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) CounterMap(arg0 *big.Int) (*big.Int, error) { + return _NetworkDebugContract.Contract.CounterMap(&_NetworkDebugContract.CallOpts, arg0) +} + +// CounterMap is a free data retrieval call binding the contract method 0x6284117d. +// +// Solidity: function counterMap(int256 ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) CounterMap(arg0 *big.Int) (*big.Int, error) { + return _NetworkDebugContract.Contract.CounterMap(&_NetworkDebugContract.CallOpts, arg0) +} + +// CurrentStatus is a free data retrieval call binding the contract method 0xef8a9235. +// +// Solidity: function currentStatus() view returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractCaller) CurrentStatus(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "currentStatus") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// CurrentStatus is a free data retrieval call binding the contract method 0xef8a9235. +// +// Solidity: function currentStatus() view returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractSession) CurrentStatus() (uint8, error) { + return _NetworkDebugContract.Contract.CurrentStatus(&_NetworkDebugContract.CallOpts) +} + +// CurrentStatus is a free data retrieval call binding the contract method 0xef8a9235. +// +// Solidity: function currentStatus() view returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) CurrentStatus() (uint8, error) { + return _NetworkDebugContract.Contract.CurrentStatus(&_NetworkDebugContract.CallOpts) +} + +// Get is a free data retrieval call binding the contract method 0x6d4ce63c. +// +// Solidity: function get() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCaller) Get(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "get") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Get is a free data retrieval call binding the contract method 0x6d4ce63c. +// +// Solidity: function get() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractSession) Get() (*big.Int, error) { + return _NetworkDebugContract.Contract.Get(&_NetworkDebugContract.CallOpts) +} + +// Get is a free data retrieval call binding the contract method 0x6d4ce63c. +// +// Solidity: function get() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) Get() (*big.Int, error) { + return _NetworkDebugContract.Contract.Get(&_NetworkDebugContract.CallOpts) +} + +// GetCounter is a free data retrieval call binding the contract method 0x5921483f. +// +// Solidity: function getCounter(int256 idx) view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCaller) GetCounter(opts *bind.CallOpts, idx *big.Int) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "getCounter", idx) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetCounter is a free data retrieval call binding the contract method 0x5921483f. +// +// Solidity: function getCounter(int256 idx) view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractSession) GetCounter(idx *big.Int) (*big.Int, error) { + return _NetworkDebugContract.Contract.GetCounter(&_NetworkDebugContract.CallOpts, idx) +} + +// GetCounter is a free data retrieval call binding the contract method 0x5921483f. +// +// Solidity: function getCounter(int256 idx) view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) GetCounter(idx *big.Int) (*big.Int, error) { + return _NetworkDebugContract.Contract.GetCounter(&_NetworkDebugContract.CallOpts, idx) +} + +// GetData is a free data retrieval call binding the contract method 0x3bc5de30. +// +// Solidity: function getData() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractCaller) GetData(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "getData") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetData is a free data retrieval call binding the contract method 0x3bc5de30. +// +// Solidity: function getData() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractSession) GetData() (*big.Int, error) { + return _NetworkDebugContract.Contract.GetData(&_NetworkDebugContract.CallOpts) +} + +// GetData is a free data retrieval call binding the contract method 0x3bc5de30. +// +// Solidity: function getData() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) GetData() (*big.Int, error) { + return _NetworkDebugContract.Contract.GetData(&_NetworkDebugContract.CallOpts) +} + +// GetMap is a free data retrieval call binding the contract method 0xad3de14c. +// +// Solidity: function getMap() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCaller) GetMap(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "getMap") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetMap is a free data retrieval call binding the contract method 0xad3de14c. +// +// Solidity: function getMap() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractSession) GetMap() (*big.Int, error) { + return _NetworkDebugContract.Contract.GetMap(&_NetworkDebugContract.CallOpts) +} + +// GetMap is a free data retrieval call binding the contract method 0xad3de14c. +// +// Solidity: function getMap() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) GetMap() (*big.Int, error) { + return _NetworkDebugContract.Contract.GetMap(&_NetworkDebugContract.CallOpts) +} + +// PerformStaticCall is a free data retrieval call binding the contract method 0x3170428e. +// +// Solidity: function performStaticCall() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractCaller) PerformStaticCall(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "performStaticCall") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// PerformStaticCall is a free data retrieval call binding the contract method 0x3170428e. +// +// Solidity: function performStaticCall() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractSession) PerformStaticCall() (*big.Int, error) { + return _NetworkDebugContract.Contract.PerformStaticCall(&_NetworkDebugContract.CallOpts) +} + +// PerformStaticCall is a free data retrieval call binding the contract method 0x3170428e. +// +// Solidity: function performStaticCall() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) PerformStaticCall() (*big.Int, error) { + return _NetworkDebugContract.Contract.PerformStaticCall(&_NetworkDebugContract.CallOpts) +} + +// StoredData is a free data retrieval call binding the contract method 0x2a1afcd9. +// +// Solidity: function storedData() view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCaller) StoredData(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "storedData") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// StoredData is a free data retrieval call binding the contract method 0x2a1afcd9. +// +// Solidity: function storedData() view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) StoredData() (*big.Int, error) { + return _NetworkDebugContract.Contract.StoredData(&_NetworkDebugContract.CallOpts) +} + +// StoredData is a free data retrieval call binding the contract method 0x2a1afcd9. +// +// Solidity: function storedData() view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) StoredData() (*big.Int, error) { + return _NetworkDebugContract.Contract.StoredData(&_NetworkDebugContract.CallOpts) +} + +// StoredDataMap is a free data retrieval call binding the contract method 0x48ad9fe8. +// +// Solidity: function storedDataMap(address ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCaller) StoredDataMap(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "storedDataMap", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// StoredDataMap is a free data retrieval call binding the contract method 0x48ad9fe8. +// +// Solidity: function storedDataMap(address ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) StoredDataMap(arg0 common.Address) (*big.Int, error) { + return _NetworkDebugContract.Contract.StoredDataMap(&_NetworkDebugContract.CallOpts, arg0) +} + +// StoredDataMap is a free data retrieval call binding the contract method 0x48ad9fe8. +// +// Solidity: function storedDataMap(address ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) StoredDataMap(arg0 common.Address) (*big.Int, error) { + return _NetworkDebugContract.Contract.StoredDataMap(&_NetworkDebugContract.CallOpts, arg0) +} + +// SubContract is a free data retrieval call binding the contract method 0xc0d06d89. +// +// Solidity: function subContract() view returns(address) +func (_NetworkDebugContract *NetworkDebugContractCaller) SubContract(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "subContract") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// SubContract is a free data retrieval call binding the contract method 0xc0d06d89. +// +// Solidity: function subContract() view returns(address) +func (_NetworkDebugContract *NetworkDebugContractSession) SubContract() (common.Address, error) { + return _NetworkDebugContract.Contract.SubContract(&_NetworkDebugContract.CallOpts) +} + +// SubContract is a free data retrieval call binding the contract method 0xc0d06d89. +// +// Solidity: function subContract() view returns(address) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) SubContract() (common.Address, error) { + return _NetworkDebugContract.Contract.SubContract(&_NetworkDebugContract.CallOpts) +} + +// AddCounter is a paid mutator transaction binding the contract method 0x23515760. +// +// Solidity: function addCounter(int256 idx, int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactor) AddCounter(opts *bind.TransactOpts, idx *big.Int, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "addCounter", idx, x) +} + +// AddCounter is a paid mutator transaction binding the contract method 0x23515760. +// +// Solidity: function addCounter(int256 idx, int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractSession) AddCounter(idx *big.Int, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AddCounter(&_NetworkDebugContract.TransactOpts, idx, x) +} + +// AddCounter is a paid mutator transaction binding the contract method 0x23515760. +// +// Solidity: function addCounter(int256 idx, int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) AddCounter(idx *big.Int, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AddCounter(&_NetworkDebugContract.TransactOpts, idx, x) +} + +// AlwaysRevertsAssert is a paid mutator transaction binding the contract method 0x256560d5. +// +// Solidity: function alwaysRevertsAssert() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) AlwaysRevertsAssert(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "alwaysRevertsAssert") +} + +// AlwaysRevertsAssert is a paid mutator transaction binding the contract method 0x256560d5. +// +// Solidity: function alwaysRevertsAssert() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) AlwaysRevertsAssert() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsAssert(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsAssert is a paid mutator transaction binding the contract method 0x256560d5. +// +// Solidity: function alwaysRevertsAssert() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) AlwaysRevertsAssert() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsAssert(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsCustomError is a paid mutator transaction binding the contract method 0x5e9c80d6. +// +// Solidity: function alwaysRevertsCustomError() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) AlwaysRevertsCustomError(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "alwaysRevertsCustomError") +} + +// AlwaysRevertsCustomError is a paid mutator transaction binding the contract method 0x5e9c80d6. +// +// Solidity: function alwaysRevertsCustomError() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) AlwaysRevertsCustomError() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsCustomError(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsCustomError is a paid mutator transaction binding the contract method 0x5e9c80d6. +// +// Solidity: function alwaysRevertsCustomError() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) AlwaysRevertsCustomError() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsCustomError(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsCustomErrorNoValues is a paid mutator transaction binding the contract method 0xb600141f. +// +// Solidity: function alwaysRevertsCustomErrorNoValues() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) AlwaysRevertsCustomErrorNoValues(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "alwaysRevertsCustomErrorNoValues") +} + +// AlwaysRevertsCustomErrorNoValues is a paid mutator transaction binding the contract method 0xb600141f. +// +// Solidity: function alwaysRevertsCustomErrorNoValues() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) AlwaysRevertsCustomErrorNoValues() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsCustomErrorNoValues(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsCustomErrorNoValues is a paid mutator transaction binding the contract method 0xb600141f. +// +// Solidity: function alwaysRevertsCustomErrorNoValues() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) AlwaysRevertsCustomErrorNoValues() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsCustomErrorNoValues(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsRequire is a paid mutator transaction binding the contract method 0x06595f75. +// +// Solidity: function alwaysRevertsRequire() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) AlwaysRevertsRequire(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "alwaysRevertsRequire") +} + +// AlwaysRevertsRequire is a paid mutator transaction binding the contract method 0x06595f75. +// +// Solidity: function alwaysRevertsRequire() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) AlwaysRevertsRequire() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsRequire(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsRequire is a paid mutator transaction binding the contract method 0x06595f75. +// +// Solidity: function alwaysRevertsRequire() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) AlwaysRevertsRequire() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsRequire(&_NetworkDebugContract.TransactOpts) +} + +// CallRevertFunctionInSubContract is a paid mutator transaction binding the contract method 0x11b3c478. +// +// Solidity: function callRevertFunctionInSubContract(uint256 x, uint256 y) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) CallRevertFunctionInSubContract(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "callRevertFunctionInSubContract", x, y) +} + +// CallRevertFunctionInSubContract is a paid mutator transaction binding the contract method 0x11b3c478. +// +// Solidity: function callRevertFunctionInSubContract(uint256 x, uint256 y) returns() +func (_NetworkDebugContract *NetworkDebugContractSession) CallRevertFunctionInSubContract(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallRevertFunctionInSubContract(&_NetworkDebugContract.TransactOpts, x, y) +} + +// CallRevertFunctionInSubContract is a paid mutator transaction binding the contract method 0x11b3c478. +// +// Solidity: function callRevertFunctionInSubContract(uint256 x, uint256 y) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) CallRevertFunctionInSubContract(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallRevertFunctionInSubContract(&_NetworkDebugContract.TransactOpts, x, y) +} + +// CallRevertFunctionInTheContract is a paid mutator transaction binding the contract method 0x9349d00b. +// +// Solidity: function callRevertFunctionInTheContract() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) CallRevertFunctionInTheContract(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "callRevertFunctionInTheContract") +} + +// CallRevertFunctionInTheContract is a paid mutator transaction binding the contract method 0x9349d00b. +// +// Solidity: function callRevertFunctionInTheContract() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) CallRevertFunctionInTheContract() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallRevertFunctionInTheContract(&_NetworkDebugContract.TransactOpts) +} + +// CallRevertFunctionInTheContract is a paid mutator transaction binding the contract method 0x9349d00b. +// +// Solidity: function callRevertFunctionInTheContract() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) CallRevertFunctionInTheContract() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallRevertFunctionInTheContract(&_NetworkDebugContract.TransactOpts) +} + +// CallbackMethod is a paid mutator transaction binding the contract method 0xfbcb8d07. +// +// Solidity: function callbackMethod(int256 x) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) CallbackMethod(opts *bind.TransactOpts, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "callbackMethod", x) +} + +// CallbackMethod is a paid mutator transaction binding the contract method 0xfbcb8d07. +// +// Solidity: function callbackMethod(int256 x) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) CallbackMethod(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallbackMethod(&_NetworkDebugContract.TransactOpts, x) +} + +// CallbackMethod is a paid mutator transaction binding the contract method 0xfbcb8d07. +// +// Solidity: function callbackMethod(int256 x) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) CallbackMethod(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallbackMethod(&_NetworkDebugContract.TransactOpts, x) +} + +// EmitAddress is a paid mutator transaction binding the contract method 0xec5c3ede. +// +// Solidity: function emitAddress(address addr) returns(address) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitAddress(opts *bind.TransactOpts, addr common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitAddress", addr) +} + +// EmitAddress is a paid mutator transaction binding the contract method 0xec5c3ede. +// +// Solidity: function emitAddress(address addr) returns(address) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitAddress(addr common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitAddress(&_NetworkDebugContract.TransactOpts, addr) +} + +// EmitAddress is a paid mutator transaction binding the contract method 0xec5c3ede. +// +// Solidity: function emitAddress(address addr) returns(address) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitAddress(addr common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitAddress(&_NetworkDebugContract.TransactOpts, addr) +} + +// EmitBytes32 is a paid mutator transaction binding the contract method 0x33311ef3. +// +// Solidity: function emitBytes32(bytes32 input) returns(bytes32 output) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitBytes32(opts *bind.TransactOpts, input [32]byte) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitBytes32", input) +} + +// EmitBytes32 is a paid mutator transaction binding the contract method 0x33311ef3. +// +// Solidity: function emitBytes32(bytes32 input) returns(bytes32 output) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitBytes32(input [32]byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitBytes32(&_NetworkDebugContract.TransactOpts, input) +} + +// EmitBytes32 is a paid mutator transaction binding the contract method 0x33311ef3. +// +// Solidity: function emitBytes32(bytes32 input) returns(bytes32 output) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitBytes32(input [32]byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitBytes32(&_NetworkDebugContract.TransactOpts, input) +} + +// EmitFourParamMixedEvent is a paid mutator transaction binding the contract method 0xc2124b22. +// +// Solidity: function emitFourParamMixedEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitFourParamMixedEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitFourParamMixedEvent") +} + +// EmitFourParamMixedEvent is a paid mutator transaction binding the contract method 0xc2124b22. +// +// Solidity: function emitFourParamMixedEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitFourParamMixedEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitFourParamMixedEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitFourParamMixedEvent is a paid mutator transaction binding the contract method 0xc2124b22. +// +// Solidity: function emitFourParamMixedEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitFourParamMixedEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitFourParamMixedEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitInputs is a paid mutator transaction binding the contract method 0x81b375a0. +// +// Solidity: function emitInputs(uint256 inputVal1, string inputVal2) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitInputs(opts *bind.TransactOpts, inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitInputs", inputVal1, inputVal2) +} + +// EmitInputs is a paid mutator transaction binding the contract method 0x81b375a0. +// +// Solidity: function emitInputs(uint256 inputVal1, string inputVal2) returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitInputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitInputs is a paid mutator transaction binding the contract method 0x81b375a0. +// +// Solidity: function emitInputs(uint256 inputVal1, string inputVal2) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitInputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitInputsOutputs is a paid mutator transaction binding the contract method 0xd7a80205. +// +// Solidity: function emitInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitInputsOutputs(opts *bind.TransactOpts, inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitInputsOutputs", inputVal1, inputVal2) +} + +// EmitInputsOutputs is a paid mutator transaction binding the contract method 0xd7a80205. +// +// Solidity: function emitInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitInputsOutputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInputsOutputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitInputsOutputs is a paid mutator transaction binding the contract method 0xd7a80205. +// +// Solidity: function emitInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitInputsOutputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInputsOutputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitInts is a paid mutator transaction binding the contract method 0x9e099652. +// +// Solidity: function emitInts(int256 first, int128 second, uint256 third) returns(int256, int128 outputVal1, uint256 outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitInts(opts *bind.TransactOpts, first *big.Int, second *big.Int, third *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitInts", first, second, third) +} + +// EmitInts is a paid mutator transaction binding the contract method 0x9e099652. +// +// Solidity: function emitInts(int256 first, int128 second, uint256 third) returns(int256, int128 outputVal1, uint256 outputVal2) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitInts(first *big.Int, second *big.Int, third *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInts(&_NetworkDebugContract.TransactOpts, first, second, third) +} + +// EmitInts is a paid mutator transaction binding the contract method 0x9e099652. +// +// Solidity: function emitInts(int256 first, int128 second, uint256 third) returns(int256, int128 outputVal1, uint256 outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitInts(first *big.Int, second *big.Int, third *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInts(&_NetworkDebugContract.TransactOpts, first, second, third) +} + +// EmitNamedInputsOutputs is a paid mutator transaction binding the contract method 0x45f0c9e6. +// +// Solidity: function emitNamedInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitNamedInputsOutputs(opts *bind.TransactOpts, inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitNamedInputsOutputs", inputVal1, inputVal2) +} + +// EmitNamedInputsOutputs is a paid mutator transaction binding the contract method 0x45f0c9e6. +// +// Solidity: function emitNamedInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitNamedInputsOutputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNamedInputsOutputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitNamedInputsOutputs is a paid mutator transaction binding the contract method 0x45f0c9e6. +// +// Solidity: function emitNamedInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitNamedInputsOutputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNamedInputsOutputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitNamedOutputs is a paid mutator transaction binding the contract method 0x7014c81d. +// +// Solidity: function emitNamedOutputs() returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitNamedOutputs(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitNamedOutputs") +} + +// EmitNamedOutputs is a paid mutator transaction binding the contract method 0x7014c81d. +// +// Solidity: function emitNamedOutputs() returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitNamedOutputs() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNamedOutputs(&_NetworkDebugContract.TransactOpts) +} + +// EmitNamedOutputs is a paid mutator transaction binding the contract method 0x7014c81d. +// +// Solidity: function emitNamedOutputs() returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitNamedOutputs() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNamedOutputs(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexEvent is a paid mutator transaction binding the contract method 0x95a81a4c. +// +// Solidity: function emitNoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitNoIndexEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitNoIndexEvent") +} + +// EmitNoIndexEvent is a paid mutator transaction binding the contract method 0x95a81a4c. +// +// Solidity: function emitNoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitNoIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexEvent is a paid mutator transaction binding the contract method 0x95a81a4c. +// +// Solidity: function emitNoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitNoIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexEventString is a paid mutator transaction binding the contract method 0x788c4772. +// +// Solidity: function emitNoIndexEventString() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitNoIndexEventString(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitNoIndexEventString") +} + +// EmitNoIndexEventString is a paid mutator transaction binding the contract method 0x788c4772. +// +// Solidity: function emitNoIndexEventString() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitNoIndexEventString() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexEventString(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexEventString is a paid mutator transaction binding the contract method 0x788c4772. +// +// Solidity: function emitNoIndexEventString() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitNoIndexEventString() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexEventString(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexStructEvent is a paid mutator transaction binding the contract method 0x62c270e1. +// +// Solidity: function emitNoIndexStructEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitNoIndexStructEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitNoIndexStructEvent") +} + +// EmitNoIndexStructEvent is a paid mutator transaction binding the contract method 0x62c270e1. +// +// Solidity: function emitNoIndexStructEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitNoIndexStructEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexStructEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexStructEvent is a paid mutator transaction binding the contract method 0x62c270e1. +// +// Solidity: function emitNoIndexStructEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitNoIndexStructEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexStructEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitOneIndexEvent is a paid mutator transaction binding the contract method 0x8f856296. +// +// Solidity: function emitOneIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitOneIndexEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitOneIndexEvent") +} + +// EmitOneIndexEvent is a paid mutator transaction binding the contract method 0x8f856296. +// +// Solidity: function emitOneIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitOneIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitOneIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitOneIndexEvent is a paid mutator transaction binding the contract method 0x8f856296. +// +// Solidity: function emitOneIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitOneIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitOneIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitOutputs is a paid mutator transaction binding the contract method 0x8db611be. +// +// Solidity: function emitOutputs() returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitOutputs(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitOutputs") +} + +// EmitOutputs is a paid mutator transaction binding the contract method 0x8db611be. +// +// Solidity: function emitOutputs() returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitOutputs() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitOutputs(&_NetworkDebugContract.TransactOpts) +} + +// EmitOutputs is a paid mutator transaction binding the contract method 0x8db611be. +// +// Solidity: function emitOutputs() returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitOutputs() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitOutputs(&_NetworkDebugContract.TransactOpts) +} + +// EmitThreeIndexEvent is a paid mutator transaction binding the contract method 0xaa3fdcf4. +// +// Solidity: function emitThreeIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitThreeIndexEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitThreeIndexEvent") +} + +// EmitThreeIndexEvent is a paid mutator transaction binding the contract method 0xaa3fdcf4. +// +// Solidity: function emitThreeIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitThreeIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitThreeIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitThreeIndexEvent is a paid mutator transaction binding the contract method 0xaa3fdcf4. +// +// Solidity: function emitThreeIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitThreeIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitThreeIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitTwoIndexEvent is a paid mutator transaction binding the contract method 0x1e31d0a8. +// +// Solidity: function emitTwoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitTwoIndexEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitTwoIndexEvent") +} + +// EmitTwoIndexEvent is a paid mutator transaction binding the contract method 0x1e31d0a8. +// +// Solidity: function emitTwoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitTwoIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitTwoIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitTwoIndexEvent is a paid mutator transaction binding the contract method 0x1e31d0a8. +// +// Solidity: function emitTwoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitTwoIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitTwoIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// OnTokenTransfer is a paid mutator transaction binding the contract method 0xa4c0ed36. +// +// Solidity: function onTokenTransfer(address sender, uint256 amount, bytes data) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) OnTokenTransfer(opts *bind.TransactOpts, sender common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "onTokenTransfer", sender, amount, data) +} + +// OnTokenTransfer is a paid mutator transaction binding the contract method 0xa4c0ed36. +// +// Solidity: function onTokenTransfer(address sender, uint256 amount, bytes data) returns() +func (_NetworkDebugContract *NetworkDebugContractSession) OnTokenTransfer(sender common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.OnTokenTransfer(&_NetworkDebugContract.TransactOpts, sender, amount, data) +} + +// OnTokenTransfer is a paid mutator transaction binding the contract method 0xa4c0ed36. +// +// Solidity: function onTokenTransfer(address sender, uint256 amount, bytes data) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) OnTokenTransfer(sender common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.OnTokenTransfer(&_NetworkDebugContract.TransactOpts, sender, amount, data) +} + +// Pay is a paid mutator transaction binding the contract method 0x1b9265b8. +// +// Solidity: function pay() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) Pay(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "pay") +} + +// Pay is a paid mutator transaction binding the contract method 0x1b9265b8. +// +// Solidity: function pay() payable returns() +func (_NetworkDebugContract *NetworkDebugContractSession) Pay() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Pay(&_NetworkDebugContract.TransactOpts) +} + +// Pay is a paid mutator transaction binding the contract method 0x1b9265b8. +// +// Solidity: function pay() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Pay() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Pay(&_NetworkDebugContract.TransactOpts) +} + +// ProcessAddressArray is a paid mutator transaction binding the contract method 0xe1111f79. +// +// Solidity: function processAddressArray(address[] input) returns(address[]) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessAddressArray(opts *bind.TransactOpts, input []common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processAddressArray", input) +} + +// ProcessAddressArray is a paid mutator transaction binding the contract method 0xe1111f79. +// +// Solidity: function processAddressArray(address[] input) returns(address[]) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessAddressArray(input []common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessAddressArray(&_NetworkDebugContract.TransactOpts, input) +} + +// ProcessAddressArray is a paid mutator transaction binding the contract method 0xe1111f79. +// +// Solidity: function processAddressArray(address[] input) returns(address[]) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessAddressArray(input []common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessAddressArray(&_NetworkDebugContract.TransactOpts, input) +} + +// ProcessDynamicData is a paid mutator transaction binding the contract method 0x7fdc8fe1. +// +// Solidity: function processDynamicData((string,uint256[]) data) returns((string,uint256[])) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessDynamicData(opts *bind.TransactOpts, data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processDynamicData", data) +} + +// ProcessDynamicData is a paid mutator transaction binding the contract method 0x7fdc8fe1. +// +// Solidity: function processDynamicData((string,uint256[]) data) returns((string,uint256[])) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessDynamicData(data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessDynamicData(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessDynamicData is a paid mutator transaction binding the contract method 0x7fdc8fe1. +// +// Solidity: function processDynamicData((string,uint256[]) data) returns((string,uint256[])) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessDynamicData(data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessDynamicData(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessFixedDataArray is a paid mutator transaction binding the contract method 0x99adad2e. +// +// Solidity: function processFixedDataArray((string,uint256[])[3] data) returns((string,uint256[])[2]) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessFixedDataArray(opts *bind.TransactOpts, data [3]NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processFixedDataArray", data) +} + +// ProcessFixedDataArray is a paid mutator transaction binding the contract method 0x99adad2e. +// +// Solidity: function processFixedDataArray((string,uint256[])[3] data) returns((string,uint256[])[2]) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessFixedDataArray(data [3]NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessFixedDataArray(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessFixedDataArray is a paid mutator transaction binding the contract method 0x99adad2e. +// +// Solidity: function processFixedDataArray((string,uint256[])[3] data) returns((string,uint256[])[2]) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessFixedDataArray(data [3]NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessFixedDataArray(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessNestedData is a paid mutator transaction binding the contract method 0x7f12881c. +// +// Solidity: function processNestedData(((string,uint256[]),bytes) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessNestedData(opts *bind.TransactOpts, data NetworkDebugContractNestedData) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processNestedData", data) +} + +// ProcessNestedData is a paid mutator transaction binding the contract method 0x7f12881c. +// +// Solidity: function processNestedData(((string,uint256[]),bytes) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessNestedData(data NetworkDebugContractNestedData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessNestedData(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessNestedData is a paid mutator transaction binding the contract method 0x7f12881c. +// +// Solidity: function processNestedData(((string,uint256[]),bytes) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessNestedData(data NetworkDebugContractNestedData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessNestedData(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessNestedData0 is a paid mutator transaction binding the contract method 0xf499af2a. +// +// Solidity: function processNestedData((string,uint256[]) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessNestedData0(opts *bind.TransactOpts, data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processNestedData0", data) +} + +// ProcessNestedData0 is a paid mutator transaction binding the contract method 0xf499af2a. +// +// Solidity: function processNestedData((string,uint256[]) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessNestedData0(data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessNestedData0(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessNestedData0 is a paid mutator transaction binding the contract method 0xf499af2a. +// +// Solidity: function processNestedData((string,uint256[]) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessNestedData0(data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessNestedData0(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessUintArray is a paid mutator transaction binding the contract method 0x12d91233. +// +// Solidity: function processUintArray(uint256[] input) returns(uint256[]) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessUintArray(opts *bind.TransactOpts, input []*big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processUintArray", input) +} + +// ProcessUintArray is a paid mutator transaction binding the contract method 0x12d91233. +// +// Solidity: function processUintArray(uint256[] input) returns(uint256[]) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessUintArray(input []*big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessUintArray(&_NetworkDebugContract.TransactOpts, input) +} + +// ProcessUintArray is a paid mutator transaction binding the contract method 0x12d91233. +// +// Solidity: function processUintArray(uint256[] input) returns(uint256[]) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessUintArray(input []*big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessUintArray(&_NetworkDebugContract.TransactOpts, input) +} + +// ResetCounter is a paid mutator transaction binding the contract method 0xf3396bd9. +// +// Solidity: function resetCounter(int256 idx) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) ResetCounter(opts *bind.TransactOpts, idx *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "resetCounter", idx) +} + +// ResetCounter is a paid mutator transaction binding the contract method 0xf3396bd9. +// +// Solidity: function resetCounter(int256 idx) returns() +func (_NetworkDebugContract *NetworkDebugContractSession) ResetCounter(idx *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ResetCounter(&_NetworkDebugContract.TransactOpts, idx) +} + +// ResetCounter is a paid mutator transaction binding the contract method 0xf3396bd9. +// +// Solidity: function resetCounter(int256 idx) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ResetCounter(idx *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ResetCounter(&_NetworkDebugContract.TransactOpts, idx) +} + +// Set is a paid mutator transaction binding the contract method 0xe5c19b2d. +// +// Solidity: function set(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactor) Set(opts *bind.TransactOpts, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "set", x) +} + +// Set is a paid mutator transaction binding the contract method 0xe5c19b2d. +// +// Solidity: function set(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractSession) Set(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Set(&_NetworkDebugContract.TransactOpts, x) +} + +// Set is a paid mutator transaction binding the contract method 0xe5c19b2d. +// +// Solidity: function set(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Set(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Set(&_NetworkDebugContract.TransactOpts, x) +} + +// SetMap is a paid mutator transaction binding the contract method 0xe8116e28. +// +// Solidity: function setMap(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactor) SetMap(opts *bind.TransactOpts, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "setMap", x) +} + +// SetMap is a paid mutator transaction binding the contract method 0xe8116e28. +// +// Solidity: function setMap(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractSession) SetMap(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.SetMap(&_NetworkDebugContract.TransactOpts, x) +} + +// SetMap is a paid mutator transaction binding the contract method 0xe8116e28. +// +// Solidity: function setMap(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) SetMap(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.SetMap(&_NetworkDebugContract.TransactOpts, x) +} + +// SetStatus is a paid mutator transaction binding the contract method 0x2e49d78b. +// +// Solidity: function setStatus(uint8 status) returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractTransactor) SetStatus(opts *bind.TransactOpts, status uint8) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "setStatus", status) +} + +// SetStatus is a paid mutator transaction binding the contract method 0x2e49d78b. +// +// Solidity: function setStatus(uint8 status) returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractSession) SetStatus(status uint8) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.SetStatus(&_NetworkDebugContract.TransactOpts, status) +} + +// SetStatus is a paid mutator transaction binding the contract method 0x2e49d78b. +// +// Solidity: function setStatus(uint8 status) returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) SetStatus(status uint8) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.SetStatus(&_NetworkDebugContract.TransactOpts, status) +} + +// Trace is a paid mutator transaction binding the contract method 0x3e41f135. +// +// Solidity: function trace(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) Trace(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "trace", x, y) +} + +// Trace is a paid mutator transaction binding the contract method 0x3e41f135. +// +// Solidity: function trace(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) Trace(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Trace(&_NetworkDebugContract.TransactOpts, x, y) +} + +// Trace is a paid mutator transaction binding the contract method 0x3e41f135. +// +// Solidity: function trace(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Trace(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Trace(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceDifferent is a paid mutator transaction binding the contract method 0x30985bcc. +// +// Solidity: function traceDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) TraceDifferent(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "traceDifferent", x, y) +} + +// TraceDifferent is a paid mutator transaction binding the contract method 0x30985bcc. +// +// Solidity: function traceDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) TraceDifferent(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceDifferent(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceDifferent is a paid mutator transaction binding the contract method 0x30985bcc. +// +// Solidity: function traceDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) TraceDifferent(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceDifferent(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceSubWithCallback is a paid mutator transaction binding the contract method 0x3837a75e. +// +// Solidity: function traceSubWithCallback(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) TraceSubWithCallback(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "traceSubWithCallback", x, y) +} + +// TraceSubWithCallback is a paid mutator transaction binding the contract method 0x3837a75e. +// +// Solidity: function traceSubWithCallback(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) TraceSubWithCallback(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceSubWithCallback(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceSubWithCallback is a paid mutator transaction binding the contract method 0x3837a75e. +// +// Solidity: function traceSubWithCallback(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) TraceSubWithCallback(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceSubWithCallback(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceWithValidate is a paid mutator transaction binding the contract method 0xb1ae9d85. +// +// Solidity: function traceWithValidate(int256 x, int256 y) payable returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) TraceWithValidate(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "traceWithValidate", x, y) +} + +// TraceWithValidate is a paid mutator transaction binding the contract method 0xb1ae9d85. +// +// Solidity: function traceWithValidate(int256 x, int256 y) payable returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) TraceWithValidate(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceWithValidate(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceWithValidate is a paid mutator transaction binding the contract method 0xb1ae9d85. +// +// Solidity: function traceWithValidate(int256 x, int256 y) payable returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) TraceWithValidate(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceWithValidate(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceYetDifferent is a paid mutator transaction binding the contract method 0x58379d71. +// +// Solidity: function traceYetDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) TraceYetDifferent(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "traceYetDifferent", x, y) +} + +// TraceYetDifferent is a paid mutator transaction binding the contract method 0x58379d71. +// +// Solidity: function traceYetDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) TraceYetDifferent(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceYetDifferent(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceYetDifferent is a paid mutator transaction binding the contract method 0x58379d71. +// +// Solidity: function traceYetDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) TraceYetDifferent(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceYetDifferent(&_NetworkDebugContract.TransactOpts, x, y) +} + +// Validate is a paid mutator transaction binding the contract method 0x04d8215b. +// +// Solidity: function validate(int256 x, int256 y) returns(bool) +func (_NetworkDebugContract *NetworkDebugContractTransactor) Validate(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "validate", x, y) +} + +// Validate is a paid mutator transaction binding the contract method 0x04d8215b. +// +// Solidity: function validate(int256 x, int256 y) returns(bool) +func (_NetworkDebugContract *NetworkDebugContractSession) Validate(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Validate(&_NetworkDebugContract.TransactOpts, x, y) +} + +// Validate is a paid mutator transaction binding the contract method 0x04d8215b. +// +// Solidity: function validate(int256 x, int256 y) returns(bool) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Validate(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Validate(&_NetworkDebugContract.TransactOpts, x, y) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) { + return _NetworkDebugContract.contract.RawTransact(opts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_NetworkDebugContract *NetworkDebugContractSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Fallback(&_NetworkDebugContract.TransactOpts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Fallback(&_NetworkDebugContract.TransactOpts, calldata) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.RawTransact(opts, nil) // calldata is disallowed for receive function +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_NetworkDebugContract *NetworkDebugContractSession) Receive() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Receive(&_NetworkDebugContract.TransactOpts) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Receive() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Receive(&_NetworkDebugContract.TransactOpts) +} + +// NetworkDebugContractCallDataLengthIterator is returned from FilterCallDataLength and is used to iterate over the raw logs and unpacked data for CallDataLength events raised by the NetworkDebugContract contract. +type NetworkDebugContractCallDataLengthIterator struct { + Event *NetworkDebugContractCallDataLength // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractCallDataLengthIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCallDataLength) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCallDataLength) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractCallDataLengthIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractCallDataLengthIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractCallDataLength represents a CallDataLength event raised by the NetworkDebugContract contract. +type NetworkDebugContractCallDataLength struct { + Length *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCallDataLength is a free log retrieval operation binding the contract event 0x962c5df4c8ad201a4f54a88f47715bb2cf291d019e350e2dff50ca6fc0f5d0ed. +// +// Solidity: event CallDataLength(uint256 length) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterCallDataLength(opts *bind.FilterOpts) (*NetworkDebugContractCallDataLengthIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "CallDataLength") + if err != nil { + return nil, err + } + return &NetworkDebugContractCallDataLengthIterator{contract: _NetworkDebugContract.contract, event: "CallDataLength", logs: logs, sub: sub}, nil +} + +// WatchCallDataLength is a free log subscription operation binding the contract event 0x962c5df4c8ad201a4f54a88f47715bb2cf291d019e350e2dff50ca6fc0f5d0ed. +// +// Solidity: event CallDataLength(uint256 length) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchCallDataLength(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractCallDataLength) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "CallDataLength") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractCallDataLength) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CallDataLength", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCallDataLength is a log parse operation binding the contract event 0x962c5df4c8ad201a4f54a88f47715bb2cf291d019e350e2dff50ca6fc0f5d0ed. +// +// Solidity: event CallDataLength(uint256 length) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseCallDataLength(log types.Log) (*NetworkDebugContractCallDataLength, error) { + event := new(NetworkDebugContractCallDataLength) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CallDataLength", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractCallbackEventIterator is returned from FilterCallbackEvent and is used to iterate over the raw logs and unpacked data for CallbackEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractCallbackEventIterator struct { + Event *NetworkDebugContractCallbackEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractCallbackEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCallbackEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCallbackEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractCallbackEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractCallbackEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractCallbackEvent represents a CallbackEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractCallbackEvent struct { + A *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCallbackEvent is a free log retrieval operation binding the contract event 0xb16dba9242e1aa07ccc47228094628f72c8cc9699ee45d5bc8d67b84d3038c68. +// +// Solidity: event CallbackEvent(int256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterCallbackEvent(opts *bind.FilterOpts, a []*big.Int) (*NetworkDebugContractCallbackEventIterator, error) { + + var aRule []interface{} + for _, aItem := range a { + aRule = append(aRule, aItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "CallbackEvent", aRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractCallbackEventIterator{contract: _NetworkDebugContract.contract, event: "CallbackEvent", logs: logs, sub: sub}, nil +} + +// WatchCallbackEvent is a free log subscription operation binding the contract event 0xb16dba9242e1aa07ccc47228094628f72c8cc9699ee45d5bc8d67b84d3038c68. +// +// Solidity: event CallbackEvent(int256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchCallbackEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractCallbackEvent, a []*big.Int) (event.Subscription, error) { + + var aRule []interface{} + for _, aItem := range a { + aRule = append(aRule, aItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "CallbackEvent", aRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractCallbackEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CallbackEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCallbackEvent is a log parse operation binding the contract event 0xb16dba9242e1aa07ccc47228094628f72c8cc9699ee45d5bc8d67b84d3038c68. +// +// Solidity: event CallbackEvent(int256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseCallbackEvent(log types.Log) (*NetworkDebugContractCallbackEvent, error) { + event := new(NetworkDebugContractCallbackEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CallbackEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractCurrentStatusIterator is returned from FilterCurrentStatus and is used to iterate over the raw logs and unpacked data for CurrentStatus events raised by the NetworkDebugContract contract. +type NetworkDebugContractCurrentStatusIterator struct { + Event *NetworkDebugContractCurrentStatus // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractCurrentStatusIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCurrentStatus) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCurrentStatus) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractCurrentStatusIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractCurrentStatusIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractCurrentStatus represents a CurrentStatus event raised by the NetworkDebugContract contract. +type NetworkDebugContractCurrentStatus struct { + Status uint8 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCurrentStatus is a free log retrieval operation binding the contract event 0xbea054406fdf249b05d1aef1b5f848d62d902d94389fca702b2d8337677c359a. +// +// Solidity: event CurrentStatus(uint8 indexed status) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterCurrentStatus(opts *bind.FilterOpts, status []uint8) (*NetworkDebugContractCurrentStatusIterator, error) { + + var statusRule []interface{} + for _, statusItem := range status { + statusRule = append(statusRule, statusItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "CurrentStatus", statusRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractCurrentStatusIterator{contract: _NetworkDebugContract.contract, event: "CurrentStatus", logs: logs, sub: sub}, nil +} + +// WatchCurrentStatus is a free log subscription operation binding the contract event 0xbea054406fdf249b05d1aef1b5f848d62d902d94389fca702b2d8337677c359a. +// +// Solidity: event CurrentStatus(uint8 indexed status) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchCurrentStatus(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractCurrentStatus, status []uint8) (event.Subscription, error) { + + var statusRule []interface{} + for _, statusItem := range status { + statusRule = append(statusRule, statusItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "CurrentStatus", statusRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractCurrentStatus) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CurrentStatus", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCurrentStatus is a log parse operation binding the contract event 0xbea054406fdf249b05d1aef1b5f848d62d902d94389fca702b2d8337677c359a. +// +// Solidity: event CurrentStatus(uint8 indexed status) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseCurrentStatus(log types.Log) (*NetworkDebugContractCurrentStatus, error) { + event := new(NetworkDebugContractCurrentStatus) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CurrentStatus", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractEtherReceivedIterator is returned from FilterEtherReceived and is used to iterate over the raw logs and unpacked data for EtherReceived events raised by the NetworkDebugContract contract. +type NetworkDebugContractEtherReceivedIterator struct { + Event *NetworkDebugContractEtherReceived // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractEtherReceivedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractEtherReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractEtherReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractEtherReceivedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractEtherReceivedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractEtherReceived represents a EtherReceived event raised by the NetworkDebugContract contract. +type NetworkDebugContractEtherReceived struct { + Sender common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterEtherReceived is a free log retrieval operation binding the contract event 0x1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b. +// +// Solidity: event EtherReceived(address sender, uint256 amount) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterEtherReceived(opts *bind.FilterOpts) (*NetworkDebugContractEtherReceivedIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "EtherReceived") + if err != nil { + return nil, err + } + return &NetworkDebugContractEtherReceivedIterator{contract: _NetworkDebugContract.contract, event: "EtherReceived", logs: logs, sub: sub}, nil +} + +// WatchEtherReceived is a free log subscription operation binding the contract event 0x1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b. +// +// Solidity: event EtherReceived(address sender, uint256 amount) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchEtherReceived(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractEtherReceived) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "EtherReceived") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractEtherReceived) + if err := _NetworkDebugContract.contract.UnpackLog(event, "EtherReceived", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseEtherReceived is a log parse operation binding the contract event 0x1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b. +// +// Solidity: event EtherReceived(address sender, uint256 amount) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseEtherReceived(log types.Log) (*NetworkDebugContractEtherReceived, error) { + event := new(NetworkDebugContractEtherReceived) + if err := _NetworkDebugContract.contract.UnpackLog(event, "EtherReceived", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractIsValidEventIterator is returned from FilterIsValidEvent and is used to iterate over the raw logs and unpacked data for IsValidEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractIsValidEventIterator struct { + Event *NetworkDebugContractIsValidEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractIsValidEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractIsValidEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractIsValidEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractIsValidEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractIsValidEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractIsValidEvent represents a IsValidEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractIsValidEvent struct { + Success bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterIsValidEvent is a free log retrieval operation binding the contract event 0xdfac7500004753b91139af55816e7eade36d96faec68b343f77ed66b89912a7b. +// +// Solidity: event IsValidEvent(bool success) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterIsValidEvent(opts *bind.FilterOpts) (*NetworkDebugContractIsValidEventIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "IsValidEvent") + if err != nil { + return nil, err + } + return &NetworkDebugContractIsValidEventIterator{contract: _NetworkDebugContract.contract, event: "IsValidEvent", logs: logs, sub: sub}, nil +} + +// WatchIsValidEvent is a free log subscription operation binding the contract event 0xdfac7500004753b91139af55816e7eade36d96faec68b343f77ed66b89912a7b. +// +// Solidity: event IsValidEvent(bool success) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchIsValidEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractIsValidEvent) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "IsValidEvent") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractIsValidEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "IsValidEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseIsValidEvent is a log parse operation binding the contract event 0xdfac7500004753b91139af55816e7eade36d96faec68b343f77ed66b89912a7b. +// +// Solidity: event IsValidEvent(bool success) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseIsValidEvent(log types.Log) (*NetworkDebugContractIsValidEvent, error) { + event := new(NetworkDebugContractIsValidEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "IsValidEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractNoIndexEventIterator is returned from FilterNoIndexEvent and is used to iterate over the raw logs and unpacked data for NoIndexEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexEventIterator struct { + Event *NetworkDebugContractNoIndexEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractNoIndexEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractNoIndexEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractNoIndexEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractNoIndexEvent represents a NoIndexEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexEvent struct { + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterNoIndexEvent is a free log retrieval operation binding the contract event 0x33bc9bae48dbe1e057f264b3fc6a1dacdcceacb3ba28d937231c70e068a02f1c. +// +// Solidity: event NoIndexEvent(address sender) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterNoIndexEvent(opts *bind.FilterOpts) (*NetworkDebugContractNoIndexEventIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "NoIndexEvent") + if err != nil { + return nil, err + } + return &NetworkDebugContractNoIndexEventIterator{contract: _NetworkDebugContract.contract, event: "NoIndexEvent", logs: logs, sub: sub}, nil +} + +// WatchNoIndexEvent is a free log subscription operation binding the contract event 0x33bc9bae48dbe1e057f264b3fc6a1dacdcceacb3ba28d937231c70e068a02f1c. +// +// Solidity: event NoIndexEvent(address sender) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchNoIndexEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractNoIndexEvent) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "NoIndexEvent") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractNoIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseNoIndexEvent is a log parse operation binding the contract event 0x33bc9bae48dbe1e057f264b3fc6a1dacdcceacb3ba28d937231c70e068a02f1c. +// +// Solidity: event NoIndexEvent(address sender) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseNoIndexEvent(log types.Log) (*NetworkDebugContractNoIndexEvent, error) { + event := new(NetworkDebugContractNoIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractNoIndexEventStringIterator is returned from FilterNoIndexEventString and is used to iterate over the raw logs and unpacked data for NoIndexEventString events raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexEventStringIterator struct { + Event *NetworkDebugContractNoIndexEventString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractNoIndexEventStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexEventString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexEventString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractNoIndexEventStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractNoIndexEventStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractNoIndexEventString represents a NoIndexEventString event raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexEventString struct { + Str string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterNoIndexEventString is a free log retrieval operation binding the contract event 0x25b7adba1b046a19379db4bc06aa1f2e71604d7b599a0ee8783d58110f00e16a. +// +// Solidity: event NoIndexEventString(string str) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterNoIndexEventString(opts *bind.FilterOpts) (*NetworkDebugContractNoIndexEventStringIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "NoIndexEventString") + if err != nil { + return nil, err + } + return &NetworkDebugContractNoIndexEventStringIterator{contract: _NetworkDebugContract.contract, event: "NoIndexEventString", logs: logs, sub: sub}, nil +} + +// WatchNoIndexEventString is a free log subscription operation binding the contract event 0x25b7adba1b046a19379db4bc06aa1f2e71604d7b599a0ee8783d58110f00e16a. +// +// Solidity: event NoIndexEventString(string str) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchNoIndexEventString(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractNoIndexEventString) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "NoIndexEventString") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractNoIndexEventString) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexEventString", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseNoIndexEventString is a log parse operation binding the contract event 0x25b7adba1b046a19379db4bc06aa1f2e71604d7b599a0ee8783d58110f00e16a. +// +// Solidity: event NoIndexEventString(string str) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseNoIndexEventString(log types.Log) (*NetworkDebugContractNoIndexEventString, error) { + event := new(NetworkDebugContractNoIndexEventString) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexEventString", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractNoIndexStructEventIterator is returned from FilterNoIndexStructEvent and is used to iterate over the raw logs and unpacked data for NoIndexStructEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexStructEventIterator struct { + Event *NetworkDebugContractNoIndexStructEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractNoIndexStructEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexStructEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexStructEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractNoIndexStructEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractNoIndexStructEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractNoIndexStructEvent represents a NoIndexStructEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexStructEvent struct { + A NetworkDebugContractAccount + Raw types.Log // Blockchain specific contextual infos +} + +// FilterNoIndexStructEvent is a free log retrieval operation binding the contract event 0xebe3ff7e2071d351bf2e65b4fccd24e3ae99485f02468f1feecf7d64dc044188. +// +// Solidity: event NoIndexStructEvent((string,uint64,uint256) a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterNoIndexStructEvent(opts *bind.FilterOpts) (*NetworkDebugContractNoIndexStructEventIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "NoIndexStructEvent") + if err != nil { + return nil, err + } + return &NetworkDebugContractNoIndexStructEventIterator{contract: _NetworkDebugContract.contract, event: "NoIndexStructEvent", logs: logs, sub: sub}, nil +} + +// WatchNoIndexStructEvent is a free log subscription operation binding the contract event 0xebe3ff7e2071d351bf2e65b4fccd24e3ae99485f02468f1feecf7d64dc044188. +// +// Solidity: event NoIndexStructEvent((string,uint64,uint256) a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchNoIndexStructEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractNoIndexStructEvent) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "NoIndexStructEvent") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractNoIndexStructEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexStructEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseNoIndexStructEvent is a log parse operation binding the contract event 0xebe3ff7e2071d351bf2e65b4fccd24e3ae99485f02468f1feecf7d64dc044188. +// +// Solidity: event NoIndexStructEvent((string,uint64,uint256) a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseNoIndexStructEvent(log types.Log) (*NetworkDebugContractNoIndexStructEvent, error) { + event := new(NetworkDebugContractNoIndexStructEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexStructEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractOneIndexEventIterator is returned from FilterOneIndexEvent and is used to iterate over the raw logs and unpacked data for OneIndexEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractOneIndexEventIterator struct { + Event *NetworkDebugContractOneIndexEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractOneIndexEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractOneIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractOneIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractOneIndexEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractOneIndexEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractOneIndexEvent represents a OneIndexEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractOneIndexEvent struct { + A *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOneIndexEvent is a free log retrieval operation binding the contract event 0xeace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b35. +// +// Solidity: event OneIndexEvent(uint256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterOneIndexEvent(opts *bind.FilterOpts, a []*big.Int) (*NetworkDebugContractOneIndexEventIterator, error) { + + var aRule []interface{} + for _, aItem := range a { + aRule = append(aRule, aItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "OneIndexEvent", aRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractOneIndexEventIterator{contract: _NetworkDebugContract.contract, event: "OneIndexEvent", logs: logs, sub: sub}, nil +} + +// WatchOneIndexEvent is a free log subscription operation binding the contract event 0xeace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b35. +// +// Solidity: event OneIndexEvent(uint256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchOneIndexEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractOneIndexEvent, a []*big.Int) (event.Subscription, error) { + + var aRule []interface{} + for _, aItem := range a { + aRule = append(aRule, aItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "OneIndexEvent", aRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractOneIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "OneIndexEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOneIndexEvent is a log parse operation binding the contract event 0xeace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b35. +// +// Solidity: event OneIndexEvent(uint256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseOneIndexEvent(log types.Log) (*NetworkDebugContractOneIndexEvent, error) { + event := new(NetworkDebugContractOneIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "OneIndexEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractReceivedIterator is returned from FilterReceived and is used to iterate over the raw logs and unpacked data for Received events raised by the NetworkDebugContract contract. +type NetworkDebugContractReceivedIterator struct { + Event *NetworkDebugContractReceived // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractReceivedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractReceivedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractReceivedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractReceived represents a Received event raised by the NetworkDebugContract contract. +type NetworkDebugContractReceived struct { + Caller common.Address + Amount *big.Int + Message string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceived is a free log retrieval operation binding the contract event 0x59e04c3f0d44b7caf6e8ef854b61d9a51cf1960d7a88ff6356cc5e946b4b5832. +// +// Solidity: event Received(address caller, uint256 amount, string message) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterReceived(opts *bind.FilterOpts) (*NetworkDebugContractReceivedIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "Received") + if err != nil { + return nil, err + } + return &NetworkDebugContractReceivedIterator{contract: _NetworkDebugContract.contract, event: "Received", logs: logs, sub: sub}, nil +} + +// WatchReceived is a free log subscription operation binding the contract event 0x59e04c3f0d44b7caf6e8ef854b61d9a51cf1960d7a88ff6356cc5e946b4b5832. +// +// Solidity: event Received(address caller, uint256 amount, string message) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchReceived(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractReceived) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "Received") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractReceived) + if err := _NetworkDebugContract.contract.UnpackLog(event, "Received", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceived is a log parse operation binding the contract event 0x59e04c3f0d44b7caf6e8ef854b61d9a51cf1960d7a88ff6356cc5e946b4b5832. +// +// Solidity: event Received(address caller, uint256 amount, string message) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseReceived(log types.Log) (*NetworkDebugContractReceived, error) { + event := new(NetworkDebugContractReceived) + if err := _NetworkDebugContract.contract.UnpackLog(event, "Received", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator is returned from FilterThreeIndexAndOneNonIndexedEvent and is used to iterate over the raw logs and unpacked data for ThreeIndexAndOneNonIndexedEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator struct { + Event *NetworkDebugContractThreeIndexAndOneNonIndexedEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractThreeIndexAndOneNonIndexedEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractThreeIndexAndOneNonIndexedEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractThreeIndexAndOneNonIndexedEvent represents a ThreeIndexAndOneNonIndexedEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractThreeIndexAndOneNonIndexedEvent struct { + RoundId *big.Int + StartedBy common.Address + StartedAt *big.Int + DataId string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterThreeIndexAndOneNonIndexedEvent is a free log retrieval operation binding the contract event 0x56c2ea44ba516098cee0c181dd9d8db262657368b6e911e83ae0ccfae806c73d. +// +// Solidity: event ThreeIndexAndOneNonIndexedEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt, string dataId) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterThreeIndexAndOneNonIndexedEvent(opts *bind.FilterOpts, roundId []*big.Int, startedBy []common.Address, startedAt []*big.Int) (*NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + var startedAtRule []interface{} + for _, startedAtItem := range startedAt { + startedAtRule = append(startedAtRule, startedAtItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "ThreeIndexAndOneNonIndexedEvent", roundIdRule, startedByRule, startedAtRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator{contract: _NetworkDebugContract.contract, event: "ThreeIndexAndOneNonIndexedEvent", logs: logs, sub: sub}, nil +} + +// WatchThreeIndexAndOneNonIndexedEvent is a free log subscription operation binding the contract event 0x56c2ea44ba516098cee0c181dd9d8db262657368b6e911e83ae0ccfae806c73d. +// +// Solidity: event ThreeIndexAndOneNonIndexedEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt, string dataId) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchThreeIndexAndOneNonIndexedEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractThreeIndexAndOneNonIndexedEvent, roundId []*big.Int, startedBy []common.Address, startedAt []*big.Int) (event.Subscription, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + var startedAtRule []interface{} + for _, startedAtItem := range startedAt { + startedAtRule = append(startedAtRule, startedAtItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "ThreeIndexAndOneNonIndexedEvent", roundIdRule, startedByRule, startedAtRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractThreeIndexAndOneNonIndexedEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "ThreeIndexAndOneNonIndexedEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseThreeIndexAndOneNonIndexedEvent is a log parse operation binding the contract event 0x56c2ea44ba516098cee0c181dd9d8db262657368b6e911e83ae0ccfae806c73d. +// +// Solidity: event ThreeIndexAndOneNonIndexedEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt, string dataId) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseThreeIndexAndOneNonIndexedEvent(log types.Log) (*NetworkDebugContractThreeIndexAndOneNonIndexedEvent, error) { + event := new(NetworkDebugContractThreeIndexAndOneNonIndexedEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "ThreeIndexAndOneNonIndexedEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractThreeIndexEventIterator is returned from FilterThreeIndexEvent and is used to iterate over the raw logs and unpacked data for ThreeIndexEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractThreeIndexEventIterator struct { + Event *NetworkDebugContractThreeIndexEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractThreeIndexEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractThreeIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractThreeIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractThreeIndexEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractThreeIndexEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractThreeIndexEvent represents a ThreeIndexEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractThreeIndexEvent struct { + RoundId *big.Int + StartedBy common.Address + StartedAt *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterThreeIndexEvent is a free log retrieval operation binding the contract event 0x5660e8f93f0146f45abcd659e026b75995db50053cbbca4d7f365934ade68bf3. +// +// Solidity: event ThreeIndexEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterThreeIndexEvent(opts *bind.FilterOpts, roundId []*big.Int, startedBy []common.Address, startedAt []*big.Int) (*NetworkDebugContractThreeIndexEventIterator, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + var startedAtRule []interface{} + for _, startedAtItem := range startedAt { + startedAtRule = append(startedAtRule, startedAtItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "ThreeIndexEvent", roundIdRule, startedByRule, startedAtRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractThreeIndexEventIterator{contract: _NetworkDebugContract.contract, event: "ThreeIndexEvent", logs: logs, sub: sub}, nil +} + +// WatchThreeIndexEvent is a free log subscription operation binding the contract event 0x5660e8f93f0146f45abcd659e026b75995db50053cbbca4d7f365934ade68bf3. +// +// Solidity: event ThreeIndexEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchThreeIndexEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractThreeIndexEvent, roundId []*big.Int, startedBy []common.Address, startedAt []*big.Int) (event.Subscription, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + var startedAtRule []interface{} + for _, startedAtItem := range startedAt { + startedAtRule = append(startedAtRule, startedAtItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "ThreeIndexEvent", roundIdRule, startedByRule, startedAtRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractThreeIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "ThreeIndexEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseThreeIndexEvent is a log parse operation binding the contract event 0x5660e8f93f0146f45abcd659e026b75995db50053cbbca4d7f365934ade68bf3. +// +// Solidity: event ThreeIndexEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseThreeIndexEvent(log types.Log) (*NetworkDebugContractThreeIndexEvent, error) { + event := new(NetworkDebugContractThreeIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "ThreeIndexEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractTwoIndexEventIterator is returned from FilterTwoIndexEvent and is used to iterate over the raw logs and unpacked data for TwoIndexEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractTwoIndexEventIterator struct { + Event *NetworkDebugContractTwoIndexEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractTwoIndexEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractTwoIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractTwoIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractTwoIndexEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractTwoIndexEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractTwoIndexEvent represents a TwoIndexEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractTwoIndexEvent struct { + RoundId *big.Int + StartedBy common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTwoIndexEvent is a free log retrieval operation binding the contract event 0x33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b5. +// +// Solidity: event TwoIndexEvent(uint256 indexed roundId, address indexed startedBy) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterTwoIndexEvent(opts *bind.FilterOpts, roundId []*big.Int, startedBy []common.Address) (*NetworkDebugContractTwoIndexEventIterator, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "TwoIndexEvent", roundIdRule, startedByRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractTwoIndexEventIterator{contract: _NetworkDebugContract.contract, event: "TwoIndexEvent", logs: logs, sub: sub}, nil +} + +// WatchTwoIndexEvent is a free log subscription operation binding the contract event 0x33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b5. +// +// Solidity: event TwoIndexEvent(uint256 indexed roundId, address indexed startedBy) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchTwoIndexEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractTwoIndexEvent, roundId []*big.Int, startedBy []common.Address) (event.Subscription, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "TwoIndexEvent", roundIdRule, startedByRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractTwoIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "TwoIndexEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTwoIndexEvent is a log parse operation binding the contract event 0x33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b5. +// +// Solidity: event TwoIndexEvent(uint256 indexed roundId, address indexed startedBy) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseTwoIndexEvent(log types.Log) (*NetworkDebugContractTwoIndexEvent, error) { + event := new(NetworkDebugContractTwoIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "TwoIndexEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/seth/contracts/emptyMetaDataContractDir/erc677/burn_mint_erc677.go b/seth/contracts/emptyMetaDataContractDir/erc677/burn_mint_erc677.go new file mode 100644 index 000000000..c1e496222 --- /dev/null +++ b/seth/contracts/emptyMetaDataContractDir/erc677/burn_mint_erc677.go @@ -0,0 +1,2038 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package erc677 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +var BurnMintERC677MetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"maxSupply_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"supplyAfterMint\",\"type\":\"uint256\"}],\"name\":\"MaxSupplyExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderNotBurner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderNotMinter\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"BurnAccessGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"BurnAccessRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"MintAccessGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"MintAccessRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBurners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinters\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"grantBurnRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"burnAndMinter\",\"type\":\"address\"}],\"name\":\"grantMintAndBurnRoles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"grantMintRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"isBurner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"revokeBurnRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"revokeMintRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x60c06040523480156200001157600080fd5b50604051620022dd380380620022dd833981016040819052620000349162000277565b338060008686818160036200004a838262000391565b50600462000059828262000391565b5050506001600160a01b0384169150620000bc90505760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600580546001600160a01b0319166001600160a01b0384811691909117909155811615620000ef57620000ef8162000106565b50505060ff90911660805260a052506200045d9050565b336001600160a01b03821603620001605760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401620000b3565b600680546001600160a01b0319166001600160a01b03838116918217909255600554604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001da57600080fd5b81516001600160401b0380821115620001f757620001f7620001b2565b604051601f8301601f19908116603f01168101908282118183101715620002225762000222620001b2565b816040528381526020925086838588010111156200023f57600080fd5b600091505b8382101562000263578582018301518183018401529082019062000244565b600093810190920192909252949350505050565b600080600080608085870312156200028e57600080fd5b84516001600160401b0380821115620002a657600080fd5b620002b488838901620001c8565b95506020870151915080821115620002cb57600080fd5b50620002da87828801620001c8565b935050604085015160ff81168114620002f257600080fd5b6060959095015193969295505050565b600181811c908216806200031757607f821691505b6020821081036200033857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200038c57600081815260208120601f850160051c81016020861015620003675750805b601f850160051c820191505b81811015620003885782815560010162000373565b5050505b505050565b81516001600160401b03811115620003ad57620003ad620001b2565b620003c581620003be845462000302565b846200033e565b602080601f831160018114620003fd5760008415620003e45750858301515b600019600386901b1c1916600185901b17855562000388565b600085815260208120601f198616915b828110156200042e578886015182559484019460019091019084016200040d565b50858210156200044d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a051611e4c6200049160003960008181610447015281816108c301526108ed015260006102710152611e4c6000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806379cc67901161010f578063c2e3273d116100a2578063d73dd62311610071578063d73dd6231461046b578063dd62ed3e1461047e578063f2fde38b146104c4578063f81094f3146104d757600080fd5b8063c2e3273d1461040c578063c630948d1461041f578063c64d0ebc14610432578063d5abeb011461044557600080fd5b80639dc29fac116100de5780639dc29fac146103c0578063a457c2d7146103d3578063a9059cbb146103e6578063aa271e1a146103f957600080fd5b806379cc67901461037557806386fe8b43146103885780638da5cb5b1461039057806395d89b41146103b857600080fd5b806340c10f19116101875780636618846311610156578063661884631461030f5780636b32810b1461032257806370a082311461033757806379ba50971461036d57600080fd5b806340c10f19146102c157806342966c68146102d65780634334614a146102e95780634f5632f8146102fc57600080fd5b806323b872dd116101c357806323b872dd14610257578063313ce5671461026a578063395093511461029b5780634000aea0146102ae57600080fd5b806301ffc9a7146101f557806306fdde031461021d578063095ea7b31461023257806318160ddd14610245575b600080fd5b6102086102033660046119b9565b6104ea565b60405190151581526020015b60405180910390f35b61022561061b565b6040516102149190611a5f565b610208610240366004611a9b565b6106ad565b6002545b604051908152602001610214565b610208610265366004611ac5565b6106c5565b60405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610214565b6102086102a9366004611a9b565b6106e9565b6102086102bc366004611b30565b610735565b6102d46102cf366004611a9b565b610858565b005b6102d46102e4366004611c19565b61097f565b6102086102f7366004611c32565b6109cc565b6102d461030a366004611c32565b6109d9565b61020861031d366004611a9b565b610a35565b61032a610a48565b6040516102149190611c4d565b610249610345366004611c32565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6102d4610a59565b6102d4610383366004611a9b565b610b5a565b61032a610ba9565b60055460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610214565b610225610bb5565b6102d46103ce366004611a9b565b610bc4565b6102086103e1366004611a9b565b610bce565b6102086103f4366004611a9b565b610c9f565b610208610407366004611c32565b610cad565b6102d461041a366004611c32565b610cba565b6102d461042d366004611c32565b610d16565b6102d4610440366004611c32565b610d24565b7f0000000000000000000000000000000000000000000000000000000000000000610249565b6102d4610479366004611a9b565b610d80565b61024961048c366004611ca7565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6102d46104d2366004611c32565b610d8a565b6102d46104e5366004611c32565b610d9b565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f36372b0700000000000000000000000000000000000000000000000000000000148061057d57507fffffffff0000000000000000000000000000000000000000000000000000000082167f4000aea000000000000000000000000000000000000000000000000000000000145b806105c957507fffffffff0000000000000000000000000000000000000000000000000000000082167fe6599b4d00000000000000000000000000000000000000000000000000000000145b8061061557507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60606003805461062a90611cda565b80601f016020809104026020016040519081016040528092919081815260200182805461065690611cda565b80156106a35780601f10610678576101008083540402835291602001916106a3565b820191906000526020600020905b81548152906001019060200180831161068657829003601f168201915b5050505050905090565b6000336106bb818585610df7565b5060019392505050565b6000336106d3858285610e2b565b6106de858585610efc565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906106bb9082908690610730908790611d5c565b610df7565b60006107418484610c9f565b508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1685856040516107a1929190611d6f565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff84163b156106bb576040517fa4c0ed3600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063a4c0ed369061081c90339087908790600401611d90565b600060405180830381600087803b15801561083657600080fd5b505af115801561084a573d6000803e3d6000fd5b505050505060019392505050565b61086133610cad565b61089e576040517fe2c8c9d50000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b813073ffffffffffffffffffffffffffffffffffffffff8216036108c157600080fd5b7f00000000000000000000000000000000000000000000000000000000000000001580159061092257507f00000000000000000000000000000000000000000000000000000000000000008261091660025490565b6109209190611d5c565b115b15610970578161093160025490565b61093b9190611d5c565b6040517fcbbf111300000000000000000000000000000000000000000000000000000000815260040161089591815260200190565b61097a8383610f2a565b505050565b610988336109cc565b6109c0576040517fc820b10b000000000000000000000000000000000000000000000000000000008152336004820152602401610895565b6109c98161101d565b50565b6000610615600983611027565b6109e1611056565b6109ec6009826110d9565b156109c95760405173ffffffffffffffffffffffffffffffffffffffff8216907f0a675452746933cefe3d74182e78db7afe57ba60eaa4234b5d85e9aa41b0610c90600090a250565b6000610a418383610bce565b9392505050565b6060610a5460076110fb565b905090565b60065473ffffffffffffffffffffffffffffffffffffffff163314610ada576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610895565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000008082163390811790935560068054909116905560405173ffffffffffffffffffffffffffffffffffffffff909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b610b63336109cc565b610b9b576040517fc820b10b000000000000000000000000000000000000000000000000000000008152336004820152602401610895565b610ba58282611108565b5050565b6060610a5460096110fb565b60606004805461062a90611cda565b610ba58282610b5a565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610c92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610895565b6106de8286868403610df7565b6000336106bb818585610efc565b6000610615600783611027565b610cc2611056565b610ccd60078261111d565b156109c95760405173ffffffffffffffffffffffffffffffffffffffff8216907fe46fef8bbff1389d9010703cf8ebb363fb3daf5bf56edc27080b67bc8d9251ea90600090a250565b610d1f81610cba565b6109c9815b610d2c611056565b610d3760098261111d565b156109c95760405173ffffffffffffffffffffffffffffffffffffffff8216907f92308bb7573b2a3d17ddb868b39d8ebec433f3194421abc22d084f89658c9bad90600090a250565b61097a82826106e9565b610d92611056565b6109c98161113f565b610da3611056565b610dae6007826110d9565b156109c95760405173ffffffffffffffffffffffffffffffffffffffff8216907fed998b960f6340d045f620c119730f7aa7995e7425c2401d3a5b64ff998a59e990600090a250565b813073ffffffffffffffffffffffffffffffffffffffff821603610e1a57600080fd5b610e25848484611235565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e255781811015610eef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610895565b610e258484848403610df7565b813073ffffffffffffffffffffffffffffffffffffffff821603610f1f57600080fd5b610e258484846113e8565b73ffffffffffffffffffffffffffffffffffffffff8216610fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610895565b8060026000828254610fb99190611d5c565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6109c93382611657565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001830160205260408120541515610a41565b60055473ffffffffffffffffffffffffffffffffffffffff1633146110d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610895565b565b6000610a418373ffffffffffffffffffffffffffffffffffffffff841661181b565b60606000610a418361190e565b611113823383610e2b565b610ba58282611657565b6000610a418373ffffffffffffffffffffffffffffffffffffffff841661196a565b3373ffffffffffffffffffffffffffffffffffffffff8216036111be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610895565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116918217909255600554604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b73ffffffffffffffffffffffffffffffffffffffff83166112d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff821661137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff831661148b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff821661152e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156115e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610e25565b73ffffffffffffffffffffffffffffffffffffffff82166116fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054818110156117b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6000818152600183016020526040812054801561190457600061183f600183611dce565b855490915060009061185390600190611dce565b90508181146118b857600086600001828154811061187357611873611de1565b906000526020600020015490508087600001848154811061189657611896611de1565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806118c9576118c9611e10565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610615565b6000915050610615565b60608160000180548060200260200160405190810160405280929190818152602001828054801561195e57602002820191906000526020600020905b81548152602001906001019080831161194a575b50505050509050919050565b60008181526001830160205260408120546119b157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610615565b506000610615565b6000602082840312156119cb57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610a4157600080fd5b6000815180845260005b81811015611a2157602081850181015186830182015201611a05565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610a4160208301846119fb565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a9657600080fd5b919050565b60008060408385031215611aae57600080fd5b611ab783611a72565b946020939093013593505050565b600080600060608486031215611ada57600080fd5b611ae384611a72565b9250611af160208501611a72565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600060608486031215611b4557600080fd5b611b4e84611a72565b925060208401359150604084013567ffffffffffffffff80821115611b7257600080fd5b818601915086601f830112611b8657600080fd5b813581811115611b9857611b98611b01565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611bde57611bde611b01565b81604052828152896020848701011115611bf757600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600060208284031215611c2b57600080fd5b5035919050565b600060208284031215611c4457600080fd5b610a4182611a72565b6020808252825182820181905260009190848201906040850190845b81811015611c9b57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101611c69565b50909695505050505050565b60008060408385031215611cba57600080fd5b611cc383611a72565b9150611cd160208401611a72565b90509250929050565b600181811c90821680611cee57607f821691505b602082108103611d27577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561061557610615611d2d565b828152604060208201526000611d8860408301846119fb565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000611dc560608301846119fb565b95945050505050565b8181038181111561061557610615611d2d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000813000a", +} + +var BurnMintERC677ABI = BurnMintERC677MetaData.ABI + +var BurnMintERC677Bin = BurnMintERC677MetaData.Bin + +func DeployBurnMintERC677(auth *bind.TransactOpts, backend bind.ContractBackend, name string, symbol string, decimals_ uint8, maxSupply_ *big.Int) (common.Address, *types.Transaction, *BurnMintERC677, error) { + parsed, err := BurnMintERC677MetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(BurnMintERC677Bin), backend, name, symbol, decimals_, maxSupply_) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &BurnMintERC677{address: address, abi: *parsed, BurnMintERC677Caller: BurnMintERC677Caller{contract: contract}, BurnMintERC677Transactor: BurnMintERC677Transactor{contract: contract}, BurnMintERC677Filterer: BurnMintERC677Filterer{contract: contract}}, nil +} + +type BurnMintERC677 struct { + address common.Address + abi abi.ABI + BurnMintERC677Caller + BurnMintERC677Transactor + BurnMintERC677Filterer +} + +type BurnMintERC677Caller struct { + contract *bind.BoundContract +} + +type BurnMintERC677Transactor struct { + contract *bind.BoundContract +} + +type BurnMintERC677Filterer struct { + contract *bind.BoundContract +} + +type BurnMintERC677Session struct { + Contract *BurnMintERC677 + CallOpts bind.CallOpts + TransactOpts bind.TransactOpts +} + +type BurnMintERC677CallerSession struct { + Contract *BurnMintERC677Caller + CallOpts bind.CallOpts +} + +type BurnMintERC677TransactorSession struct { + Contract *BurnMintERC677Transactor + TransactOpts bind.TransactOpts +} + +type BurnMintERC677Raw struct { + Contract *BurnMintERC677 +} + +type BurnMintERC677CallerRaw struct { + Contract *BurnMintERC677Caller +} + +type BurnMintERC677TransactorRaw struct { + Contract *BurnMintERC677Transactor +} + +func NewBurnMintERC677(address common.Address, backend bind.ContractBackend) (*BurnMintERC677, error) { + abi, err := abi.JSON(strings.NewReader(BurnMintERC677ABI)) + if err != nil { + return nil, err + } + contract, err := bindBurnMintERC677(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &BurnMintERC677{address: address, abi: abi, BurnMintERC677Caller: BurnMintERC677Caller{contract: contract}, BurnMintERC677Transactor: BurnMintERC677Transactor{contract: contract}, BurnMintERC677Filterer: BurnMintERC677Filterer{contract: contract}}, nil +} + +func NewBurnMintERC677Caller(address common.Address, caller bind.ContractCaller) (*BurnMintERC677Caller, error) { + contract, err := bindBurnMintERC677(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &BurnMintERC677Caller{contract: contract}, nil +} + +func NewBurnMintERC677Transactor(address common.Address, transactor bind.ContractTransactor) (*BurnMintERC677Transactor, error) { + contract, err := bindBurnMintERC677(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &BurnMintERC677Transactor{contract: contract}, nil +} + +func NewBurnMintERC677Filterer(address common.Address, filterer bind.ContractFilterer) (*BurnMintERC677Filterer, error) { + contract, err := bindBurnMintERC677(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &BurnMintERC677Filterer{contract: contract}, nil +} + +func bindBurnMintERC677(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := BurnMintERC677MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +func (_BurnMintERC677 *BurnMintERC677Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _BurnMintERC677.Contract.BurnMintERC677Caller.contract.Call(opts, result, method, params...) +} + +func (_BurnMintERC677 *BurnMintERC677Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BurnMintERC677.Contract.BurnMintERC677Transactor.contract.Transfer(opts) +} + +func (_BurnMintERC677 *BurnMintERC677Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _BurnMintERC677.Contract.BurnMintERC677Transactor.contract.Transact(opts, method, params...) +} + +func (_BurnMintERC677 *BurnMintERC677CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _BurnMintERC677.Contract.contract.Call(opts, result, method, params...) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BurnMintERC677.Contract.contract.Transfer(opts) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _BurnMintERC677.Contract.contract.Transact(opts, method, params...) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _BurnMintERC677.Contract.Allowance(&_BurnMintERC677.CallOpts, owner, spender) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _BurnMintERC677.Contract.Allowance(&_BurnMintERC677.CallOpts, owner, spender) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) BalanceOf(account common.Address) (*big.Int, error) { + return _BurnMintERC677.Contract.BalanceOf(&_BurnMintERC677.CallOpts, account) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _BurnMintERC677.Contract.BalanceOf(&_BurnMintERC677.CallOpts, account) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "decimals") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) Decimals() (uint8, error) { + return _BurnMintERC677.Contract.Decimals(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) Decimals() (uint8, error) { + return _BurnMintERC677.Contract.Decimals(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) GetBurners(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "getBurners") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) GetBurners() ([]common.Address, error) { + return _BurnMintERC677.Contract.GetBurners(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) GetBurners() ([]common.Address, error) { + return _BurnMintERC677.Contract.GetBurners(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) GetMinters(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "getMinters") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) GetMinters() ([]common.Address, error) { + return _BurnMintERC677.Contract.GetMinters(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) GetMinters() ([]common.Address, error) { + return _BurnMintERC677.Contract.GetMinters(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) IsBurner(opts *bind.CallOpts, burner common.Address) (bool, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "isBurner", burner) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) IsBurner(burner common.Address) (bool, error) { + return _BurnMintERC677.Contract.IsBurner(&_BurnMintERC677.CallOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) IsBurner(burner common.Address) (bool, error) { + return _BurnMintERC677.Contract.IsBurner(&_BurnMintERC677.CallOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) IsMinter(opts *bind.CallOpts, minter common.Address) (bool, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "isMinter", minter) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) IsMinter(minter common.Address) (bool, error) { + return _BurnMintERC677.Contract.IsMinter(&_BurnMintERC677.CallOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) IsMinter(minter common.Address) (bool, error) { + return _BurnMintERC677.Contract.IsMinter(&_BurnMintERC677.CallOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) MaxSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "maxSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) MaxSupply() (*big.Int, error) { + return _BurnMintERC677.Contract.MaxSupply(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) MaxSupply() (*big.Int, error) { + return _BurnMintERC677.Contract.MaxSupply(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) Name() (string, error) { + return _BurnMintERC677.Contract.Name(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) Name() (string, error) { + return _BurnMintERC677.Contract.Name(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) Owner() (common.Address, error) { + return _BurnMintERC677.Contract.Owner(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) Owner() (common.Address, error) { + return _BurnMintERC677.Contract.Owner(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "supportsInterface", interfaceId) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _BurnMintERC677.Contract.SupportsInterface(&_BurnMintERC677.CallOpts, interfaceId) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _BurnMintERC677.Contract.SupportsInterface(&_BurnMintERC677.CallOpts, interfaceId) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) Symbol() (string, error) { + return _BurnMintERC677.Contract.Symbol(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) Symbol() (string, error) { + return _BurnMintERC677.Contract.Symbol(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) TotalSupply() (*big.Int, error) { + return _BurnMintERC677.Contract.TotalSupply(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) TotalSupply() (*big.Int, error) { + return _BurnMintERC677.Contract.TotalSupply(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "acceptOwnership") +} + +func (_BurnMintERC677 *BurnMintERC677Session) AcceptOwnership() (*types.Transaction, error) { + return _BurnMintERC677.Contract.AcceptOwnership(&_BurnMintERC677.TransactOpts) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _BurnMintERC677.Contract.AcceptOwnership(&_BurnMintERC677.TransactOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "approve", spender, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Approve(&_BurnMintERC677.TransactOpts, spender, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Approve(&_BurnMintERC677.TransactOpts, spender, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "burn", amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) Burn(amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Burn(&_BurnMintERC677.TransactOpts, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) Burn(amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Burn(&_BurnMintERC677.TransactOpts, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) Burn0(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "burn0", account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) Burn0(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Burn0(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) Burn0(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Burn0(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "burnFrom", account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.BurnFrom(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.BurnFrom(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Session) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.DecreaseAllowance(&_BurnMintERC677.TransactOpts, spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.DecreaseAllowance(&_BurnMintERC677.TransactOpts, spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) DecreaseApproval(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "decreaseApproval", spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Session) DecreaseApproval(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.DecreaseApproval(&_BurnMintERC677.TransactOpts, spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) DecreaseApproval(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.DecreaseApproval(&_BurnMintERC677.TransactOpts, spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) GrantBurnRole(opts *bind.TransactOpts, burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "grantBurnRole", burner) +} + +func (_BurnMintERC677 *BurnMintERC677Session) GrantBurnRole(burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantBurnRole(&_BurnMintERC677.TransactOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) GrantBurnRole(burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantBurnRole(&_BurnMintERC677.TransactOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) GrantMintAndBurnRoles(opts *bind.TransactOpts, burnAndMinter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "grantMintAndBurnRoles", burnAndMinter) +} + +func (_BurnMintERC677 *BurnMintERC677Session) GrantMintAndBurnRoles(burnAndMinter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantMintAndBurnRoles(&_BurnMintERC677.TransactOpts, burnAndMinter) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) GrantMintAndBurnRoles(burnAndMinter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantMintAndBurnRoles(&_BurnMintERC677.TransactOpts, burnAndMinter) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) GrantMintRole(opts *bind.TransactOpts, minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "grantMintRole", minter) +} + +func (_BurnMintERC677 *BurnMintERC677Session) GrantMintRole(minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantMintRole(&_BurnMintERC677.TransactOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) GrantMintRole(minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantMintRole(&_BurnMintERC677.TransactOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "increaseAllowance", spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Session) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.IncreaseAllowance(&_BurnMintERC677.TransactOpts, spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.IncreaseAllowance(&_BurnMintERC677.TransactOpts, spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) IncreaseApproval(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "increaseApproval", spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Session) IncreaseApproval(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.IncreaseApproval(&_BurnMintERC677.TransactOpts, spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) IncreaseApproval(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.IncreaseApproval(&_BurnMintERC677.TransactOpts, spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) Mint(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "mint", account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Mint(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Mint(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) RevokeBurnRole(opts *bind.TransactOpts, burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "revokeBurnRole", burner) +} + +func (_BurnMintERC677 *BurnMintERC677Session) RevokeBurnRole(burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.RevokeBurnRole(&_BurnMintERC677.TransactOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) RevokeBurnRole(burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.RevokeBurnRole(&_BurnMintERC677.TransactOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) RevokeMintRole(opts *bind.TransactOpts, minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "revokeMintRole", minter) +} + +func (_BurnMintERC677 *BurnMintERC677Session) RevokeMintRole(minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.RevokeMintRole(&_BurnMintERC677.TransactOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) RevokeMintRole(minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.RevokeMintRole(&_BurnMintERC677.TransactOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) Transfer(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "transfer", to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Transfer(&_BurnMintERC677.TransactOpts, to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Transfer(&_BurnMintERC677.TransactOpts, to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) TransferAndCall(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "transferAndCall", to, amount, data) +} + +func (_BurnMintERC677 *BurnMintERC677Session) TransferAndCall(to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferAndCall(&_BurnMintERC677.TransactOpts, to, amount, data) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) TransferAndCall(to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferAndCall(&_BurnMintERC677.TransactOpts, to, amount, data) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "transferFrom", from, to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferFrom(&_BurnMintERC677.TransactOpts, from, to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferFrom(&_BurnMintERC677.TransactOpts, from, to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "transferOwnership", to) +} + +func (_BurnMintERC677 *BurnMintERC677Session) TransferOwnership(to common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferOwnership(&_BurnMintERC677.TransactOpts, to) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) TransferOwnership(to common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferOwnership(&_BurnMintERC677.TransactOpts, to) +} + +type BurnMintERC677ApprovalIterator struct { + Event *BurnMintERC677Approval + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677ApprovalIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677ApprovalIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677ApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677Approval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*BurnMintERC677ApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &BurnMintERC677ApprovalIterator{contract: _BurnMintERC677.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677Approval) + if err := _BurnMintERC677.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseApproval(log types.Log) (*BurnMintERC677Approval, error) { + event := new(BurnMintERC677Approval) + if err := _BurnMintERC677.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677BurnAccessGrantedIterator struct { + Event *BurnMintERC677BurnAccessGranted + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677BurnAccessGrantedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677BurnAccessGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677BurnAccessGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677BurnAccessGrantedIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677BurnAccessGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677BurnAccessGranted struct { + Burner common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterBurnAccessGranted(opts *bind.FilterOpts, burner []common.Address) (*BurnMintERC677BurnAccessGrantedIterator, error) { + + var burnerRule []interface{} + for _, burnerItem := range burner { + burnerRule = append(burnerRule, burnerItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "BurnAccessGranted", burnerRule) + if err != nil { + return nil, err + } + return &BurnMintERC677BurnAccessGrantedIterator{contract: _BurnMintERC677.contract, event: "BurnAccessGranted", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchBurnAccessGranted(opts *bind.WatchOpts, sink chan<- *BurnMintERC677BurnAccessGranted, burner []common.Address) (event.Subscription, error) { + + var burnerRule []interface{} + for _, burnerItem := range burner { + burnerRule = append(burnerRule, burnerItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "BurnAccessGranted", burnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677BurnAccessGranted) + if err := _BurnMintERC677.contract.UnpackLog(event, "BurnAccessGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseBurnAccessGranted(log types.Log) (*BurnMintERC677BurnAccessGranted, error) { + event := new(BurnMintERC677BurnAccessGranted) + if err := _BurnMintERC677.contract.UnpackLog(event, "BurnAccessGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677BurnAccessRevokedIterator struct { + Event *BurnMintERC677BurnAccessRevoked + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677BurnAccessRevokedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677BurnAccessRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677BurnAccessRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677BurnAccessRevokedIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677BurnAccessRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677BurnAccessRevoked struct { + Burner common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterBurnAccessRevoked(opts *bind.FilterOpts, burner []common.Address) (*BurnMintERC677BurnAccessRevokedIterator, error) { + + var burnerRule []interface{} + for _, burnerItem := range burner { + burnerRule = append(burnerRule, burnerItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "BurnAccessRevoked", burnerRule) + if err != nil { + return nil, err + } + return &BurnMintERC677BurnAccessRevokedIterator{contract: _BurnMintERC677.contract, event: "BurnAccessRevoked", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchBurnAccessRevoked(opts *bind.WatchOpts, sink chan<- *BurnMintERC677BurnAccessRevoked, burner []common.Address) (event.Subscription, error) { + + var burnerRule []interface{} + for _, burnerItem := range burner { + burnerRule = append(burnerRule, burnerItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "BurnAccessRevoked", burnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677BurnAccessRevoked) + if err := _BurnMintERC677.contract.UnpackLog(event, "BurnAccessRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseBurnAccessRevoked(log types.Log) (*BurnMintERC677BurnAccessRevoked, error) { + event := new(BurnMintERC677BurnAccessRevoked) + if err := _BurnMintERC677.contract.UnpackLog(event, "BurnAccessRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677MintAccessGrantedIterator struct { + Event *BurnMintERC677MintAccessGranted + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677MintAccessGrantedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677MintAccessGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677MintAccessGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677MintAccessGrantedIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677MintAccessGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677MintAccessGranted struct { + Minter common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterMintAccessGranted(opts *bind.FilterOpts, minter []common.Address) (*BurnMintERC677MintAccessGrantedIterator, error) { + + var minterRule []interface{} + for _, minterItem := range minter { + minterRule = append(minterRule, minterItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "MintAccessGranted", minterRule) + if err != nil { + return nil, err + } + return &BurnMintERC677MintAccessGrantedIterator{contract: _BurnMintERC677.contract, event: "MintAccessGranted", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchMintAccessGranted(opts *bind.WatchOpts, sink chan<- *BurnMintERC677MintAccessGranted, minter []common.Address) (event.Subscription, error) { + + var minterRule []interface{} + for _, minterItem := range minter { + minterRule = append(minterRule, minterItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "MintAccessGranted", minterRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677MintAccessGranted) + if err := _BurnMintERC677.contract.UnpackLog(event, "MintAccessGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseMintAccessGranted(log types.Log) (*BurnMintERC677MintAccessGranted, error) { + event := new(BurnMintERC677MintAccessGranted) + if err := _BurnMintERC677.contract.UnpackLog(event, "MintAccessGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677MintAccessRevokedIterator struct { + Event *BurnMintERC677MintAccessRevoked + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677MintAccessRevokedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677MintAccessRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677MintAccessRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677MintAccessRevokedIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677MintAccessRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677MintAccessRevoked struct { + Minter common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterMintAccessRevoked(opts *bind.FilterOpts, minter []common.Address) (*BurnMintERC677MintAccessRevokedIterator, error) { + + var minterRule []interface{} + for _, minterItem := range minter { + minterRule = append(minterRule, minterItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "MintAccessRevoked", minterRule) + if err != nil { + return nil, err + } + return &BurnMintERC677MintAccessRevokedIterator{contract: _BurnMintERC677.contract, event: "MintAccessRevoked", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchMintAccessRevoked(opts *bind.WatchOpts, sink chan<- *BurnMintERC677MintAccessRevoked, minter []common.Address) (event.Subscription, error) { + + var minterRule []interface{} + for _, minterItem := range minter { + minterRule = append(minterRule, minterItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "MintAccessRevoked", minterRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677MintAccessRevoked) + if err := _BurnMintERC677.contract.UnpackLog(event, "MintAccessRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseMintAccessRevoked(log types.Log) (*BurnMintERC677MintAccessRevoked, error) { + event := new(BurnMintERC677MintAccessRevoked) + if err := _BurnMintERC677.contract.UnpackLog(event, "MintAccessRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677OwnershipTransferRequestedIterator struct { + Event *BurnMintERC677OwnershipTransferRequested + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677OwnershipTransferRequestedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677OwnershipTransferRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677OwnershipTransferRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677OwnershipTransferRequestedIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677OwnershipTransferRequestedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677OwnershipTransferRequested struct { + From common.Address + To common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677OwnershipTransferRequestedIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + if err != nil { + return nil, err + } + return &BurnMintERC677OwnershipTransferRequestedIterator{contract: _BurnMintERC677.contract, event: "OwnershipTransferRequested", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *BurnMintERC677OwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677OwnershipTransferRequested) + if err := _BurnMintERC677.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseOwnershipTransferRequested(log types.Log) (*BurnMintERC677OwnershipTransferRequested, error) { + event := new(BurnMintERC677OwnershipTransferRequested) + if err := _BurnMintERC677.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677OwnershipTransferredIterator struct { + Event *BurnMintERC677OwnershipTransferred + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677OwnershipTransferredIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677OwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677OwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677OwnershipTransferredIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677OwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677OwnershipTransferred struct { + From common.Address + To common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677OwnershipTransferredIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "OwnershipTransferred", fromRule, toRule) + if err != nil { + return nil, err + } + return &BurnMintERC677OwnershipTransferredIterator{contract: _BurnMintERC677.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BurnMintERC677OwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "OwnershipTransferred", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677OwnershipTransferred) + if err := _BurnMintERC677.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseOwnershipTransferred(log types.Log) (*BurnMintERC677OwnershipTransferred, error) { + event := new(BurnMintERC677OwnershipTransferred) + if err := _BurnMintERC677.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677TransferIterator struct { + Event *BurnMintERC677Transfer + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677TransferIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677TransferIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677TransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677Transfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677TransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &BurnMintERC677TransferIterator{contract: _BurnMintERC677.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Transfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677Transfer) + if err := _BurnMintERC677.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseTransfer(log types.Log) (*BurnMintERC677Transfer, error) { + event := new(BurnMintERC677Transfer) + if err := _BurnMintERC677.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677Transfer0Iterator struct { + Event *BurnMintERC677Transfer0 + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677Transfer0Iterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Transfer0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Transfer0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677Transfer0Iterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677Transfer0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677Transfer0 struct { + From common.Address + To common.Address + Value *big.Int + Data []byte + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterTransfer0(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677Transfer0Iterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "Transfer0", fromRule, toRule) + if err != nil { + return nil, err + } + return &BurnMintERC677Transfer0Iterator{contract: _BurnMintERC677.contract, event: "Transfer0", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchTransfer0(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Transfer0, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "Transfer0", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677Transfer0) + if err := _BurnMintERC677.contract.UnpackLog(event, "Transfer0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseTransfer0(log types.Log) (*BurnMintERC677Transfer0, error) { + event := new(BurnMintERC677Transfer0) + if err := _BurnMintERC677.contract.UnpackLog(event, "Transfer0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +func (BurnMintERC677Approval) Topic() common.Hash { + return common.HexToHash("0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925") +} + +func (BurnMintERC677BurnAccessGranted) Topic() common.Hash { + return common.HexToHash("0x92308bb7573b2a3d17ddb868b39d8ebec433f3194421abc22d084f89658c9bad") +} + +func (BurnMintERC677BurnAccessRevoked) Topic() common.Hash { + return common.HexToHash("0x0a675452746933cefe3d74182e78db7afe57ba60eaa4234b5d85e9aa41b0610c") +} + +func (BurnMintERC677MintAccessGranted) Topic() common.Hash { + return common.HexToHash("0xe46fef8bbff1389d9010703cf8ebb363fb3daf5bf56edc27080b67bc8d9251ea") +} + +func (BurnMintERC677MintAccessRevoked) Topic() common.Hash { + return common.HexToHash("0xed998b960f6340d045f620c119730f7aa7995e7425c2401d3a5b64ff998a59e9") +} + +func (BurnMintERC677OwnershipTransferRequested) Topic() common.Hash { + return common.HexToHash("0xed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278") +} + +func (BurnMintERC677OwnershipTransferred) Topic() common.Hash { + return common.HexToHash("0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0") +} + +func (BurnMintERC677Transfer) Topic() common.Hash { + return common.HexToHash("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef") +} + +func (BurnMintERC677Transfer0) Topic() common.Hash { + return common.HexToHash("0xe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16") +} + +func (_BurnMintERC677 *BurnMintERC677) Address() common.Address { + return _BurnMintERC677.address +} + +type BurnMintERC677Interface interface { + Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) + + BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) + + Decimals(opts *bind.CallOpts) (uint8, error) + + GetBurners(opts *bind.CallOpts) ([]common.Address, error) + + GetMinters(opts *bind.CallOpts) ([]common.Address, error) + + IsBurner(opts *bind.CallOpts, burner common.Address) (bool, error) + + IsMinter(opts *bind.CallOpts, minter common.Address) (bool, error) + + MaxSupply(opts *bind.CallOpts) (*big.Int, error) + + Name(opts *bind.CallOpts) (string, error) + + Owner(opts *bind.CallOpts) (common.Address, error) + + SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) + + Symbol(opts *bind.CallOpts) (string, error) + + TotalSupply(opts *bind.CallOpts) (*big.Int, error) + + AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) + + Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) + + Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) + + Burn0(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) + + BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) + + DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) + + DecreaseApproval(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) + + GrantBurnRole(opts *bind.TransactOpts, burner common.Address) (*types.Transaction, error) + + GrantMintAndBurnRoles(opts *bind.TransactOpts, burnAndMinter common.Address) (*types.Transaction, error) + + GrantMintRole(opts *bind.TransactOpts, minter common.Address) (*types.Transaction, error) + + IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) + + IncreaseApproval(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) + + Mint(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) + + RevokeBurnRole(opts *bind.TransactOpts, burner common.Address) (*types.Transaction, error) + + RevokeMintRole(opts *bind.TransactOpts, minter common.Address) (*types.Transaction, error) + + Transfer(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) + + TransferAndCall(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) + + TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) + + TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) + + FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*BurnMintERC677ApprovalIterator, error) + + WatchApproval(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) + + ParseApproval(log types.Log) (*BurnMintERC677Approval, error) + + FilterBurnAccessGranted(opts *bind.FilterOpts, burner []common.Address) (*BurnMintERC677BurnAccessGrantedIterator, error) + + WatchBurnAccessGranted(opts *bind.WatchOpts, sink chan<- *BurnMintERC677BurnAccessGranted, burner []common.Address) (event.Subscription, error) + + ParseBurnAccessGranted(log types.Log) (*BurnMintERC677BurnAccessGranted, error) + + FilterBurnAccessRevoked(opts *bind.FilterOpts, burner []common.Address) (*BurnMintERC677BurnAccessRevokedIterator, error) + + WatchBurnAccessRevoked(opts *bind.WatchOpts, sink chan<- *BurnMintERC677BurnAccessRevoked, burner []common.Address) (event.Subscription, error) + + ParseBurnAccessRevoked(log types.Log) (*BurnMintERC677BurnAccessRevoked, error) + + FilterMintAccessGranted(opts *bind.FilterOpts, minter []common.Address) (*BurnMintERC677MintAccessGrantedIterator, error) + + WatchMintAccessGranted(opts *bind.WatchOpts, sink chan<- *BurnMintERC677MintAccessGranted, minter []common.Address) (event.Subscription, error) + + ParseMintAccessGranted(log types.Log) (*BurnMintERC677MintAccessGranted, error) + + FilterMintAccessRevoked(opts *bind.FilterOpts, minter []common.Address) (*BurnMintERC677MintAccessRevokedIterator, error) + + WatchMintAccessRevoked(opts *bind.WatchOpts, sink chan<- *BurnMintERC677MintAccessRevoked, minter []common.Address) (event.Subscription, error) + + ParseMintAccessRevoked(log types.Log) (*BurnMintERC677MintAccessRevoked, error) + + FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677OwnershipTransferRequestedIterator, error) + + WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *BurnMintERC677OwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseOwnershipTransferRequested(log types.Log) (*BurnMintERC677OwnershipTransferRequested, error) + + FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677OwnershipTransferredIterator, error) + + WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BurnMintERC677OwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseOwnershipTransferred(log types.Log) (*BurnMintERC677OwnershipTransferred, error) + + FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677TransferIterator, error) + + WatchTransfer(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Transfer, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseTransfer(log types.Log) (*BurnMintERC677Transfer, error) + + FilterTransfer0(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677Transfer0Iterator, error) + + WatchTransfer0(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Transfer0, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseTransfer0(log types.Log) (*BurnMintERC677Transfer0, error) + + Address() common.Address +} diff --git a/seth/contracts/gethWrapperAndGoFile/NetworkDebugSubContract.go b/seth/contracts/gethWrapperAndGoFile/NetworkDebugSubContract.go new file mode 100644 index 000000000..8babcc2ea --- /dev/null +++ b/seth/contracts/gethWrapperAndGoFile/NetworkDebugSubContract.go @@ -0,0 +1,1168 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package network_debug_sub_contract + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// NetworkDebugSubContractAccount is an auto generated low-level Go binding around an user-defined struct. +type NetworkDebugSubContractAccount struct { + Name string + Balance uint64 + DailyLimit *big.Int +} + +// NetworkDebugSubContractMetaData contains all meta data concerning the NetworkDebugSubContract contract. +var NetworkDebugSubContractMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"CustomErr\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"NoIndexEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"NoIndexEventString\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"dailyLimit\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structNetworkDebugSubContract.Account\",\"name\":\"a\",\"type\":\"tuple\"}],\"name\":\"NoIndexStructEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"}],\"name\":\"OneIndexEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"startedBy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"}],\"name\":\"ThreeIndexEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"startedBy\",\"type\":\"address\"}],\"name\":\"TwoIndexEvent\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"alwaysRevertsCustomError\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pay\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"y\",\"type\":\"int256\"}],\"name\":\"trace\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"}],\"name\":\"traceOneInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"r\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"y\",\"type\":\"int256\"}],\"name\":\"traceWithCallback\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x608060405234801561001057600080fd5b506105f4806100206000396000f3fe60806040526004361061004a5760003560e01c8063047c44251461004f57806311abb0021461008c5780631b9265b8146100b55780633e41f135146100bf578063fa8fca7a146100fc575b600080fd5b34801561005b57600080fd5b5061007660048036038101906100719190610368565b610139565b60405161008391906103a4565b60405180910390f35b34801561009857600080fd5b506100b360048036038101906100ae91906103f5565b610186565b005b6100bd6101c5565b005b3480156100cb57600080fd5b506100e660048036038101906100e19190610435565b6101c7565b6040516100f391906103a4565b60405180910390f35b34801561010857600080fd5b50610123600480360381019061011e9190610435565b610230565b60405161013091906103a4565b60405180910390f35b60007f33bc9bae48dbe1e057f264b3fc6a1dacdcceacb3ba28d937231c70e068a02f1c3360405161016a91906104b6565b60405180910390a160038261017f9190610500565b9050919050565b81816040517f4a2eaf7e0000000000000000000000000000000000000000000000000000000081526004016101bc929190610553565b60405180910390fd5b565b60006002826101d69190610500565b91503373ffffffffffffffffffffffffffffffffffffffff16827f33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b560405160405180910390a381836102289190610500565b905092915050565b60003373ffffffffffffffffffffffffffffffffffffffff16827f33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b560405160405180910390a360003373ffffffffffffffffffffffffffffffffffffffff1663fbcb8d07846040518263ffffffff1660e01b81526004016102b191906103a4565b6020604051808303816000875af11580156102d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f49190610591565b9050807feace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b3560405160405180910390a28091505092915050565b600080fd5b6000819050919050565b61034581610332565b811461035057600080fd5b50565b6000813590506103628161033c565b92915050565b60006020828403121561037e5761037d61032d565b5b600061038c84828501610353565b91505092915050565b61039e81610332565b82525050565b60006020820190506103b96000830184610395565b92915050565b6000819050919050565b6103d2816103bf565b81146103dd57600080fd5b50565b6000813590506103ef816103c9565b92915050565b6000806040838503121561040c5761040b61032d565b5b600061041a858286016103e0565b925050602061042b858286016103e0565b9150509250929050565b6000806040838503121561044c5761044b61032d565b5b600061045a85828601610353565b925050602061046b85828601610353565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006104a082610475565b9050919050565b6104b081610495565b82525050565b60006020820190506104cb60008301846104a7565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061050b82610332565b915061051683610332565b92508282019050828112156000831216838212600084121516171561053e5761053d6104d1565b5b92915050565b61054d816103bf565b82525050565b60006040820190506105686000830185610544565b6105756020830184610544565b9392505050565b60008151905061058b8161033c565b92915050565b6000602082840312156105a7576105a661032d565b5b60006105b58482850161057c565b9150509291505056fea2646970667358221220baf1ca0ebe5c3f70cf36de50eba34b796fa2141e3773a505c3199b335b0023c564736f6c63430008130033", +} + +// NetworkDebugSubContractABI is the input ABI used to generate the binding from. +// Deprecated: Use NetworkDebugSubContractMetaData.ABI instead. +var NetworkDebugSubContractABI = NetworkDebugSubContractMetaData.ABI + +// NetworkDebugSubContractBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use NetworkDebugSubContractMetaData.Bin instead. +var NetworkDebugSubContractBin = NetworkDebugSubContractMetaData.Bin + +// DeployNetworkDebugSubContract deploys a new Ethereum contract, binding an instance of NetworkDebugSubContract to it. +func DeployNetworkDebugSubContract(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *NetworkDebugSubContract, error) { + parsed, err := NetworkDebugSubContractMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(NetworkDebugSubContractBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &NetworkDebugSubContract{NetworkDebugSubContractCaller: NetworkDebugSubContractCaller{contract: contract}, NetworkDebugSubContractTransactor: NetworkDebugSubContractTransactor{contract: contract}, NetworkDebugSubContractFilterer: NetworkDebugSubContractFilterer{contract: contract}}, nil +} + +// NetworkDebugSubContract is an auto generated Go binding around an Ethereum contract. +type NetworkDebugSubContract struct { + NetworkDebugSubContractCaller // Read-only binding to the contract + NetworkDebugSubContractTransactor // Write-only binding to the contract + NetworkDebugSubContractFilterer // Log filterer for contract events +} + +// NetworkDebugSubContractCaller is an auto generated read-only Go binding around an Ethereum contract. +type NetworkDebugSubContractCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// NetworkDebugSubContractTransactor is an auto generated write-only Go binding around an Ethereum contract. +type NetworkDebugSubContractTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// NetworkDebugSubContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type NetworkDebugSubContractFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// NetworkDebugSubContractSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type NetworkDebugSubContractSession struct { + Contract *NetworkDebugSubContract // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// NetworkDebugSubContractCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type NetworkDebugSubContractCallerSession struct { + Contract *NetworkDebugSubContractCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// NetworkDebugSubContractTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type NetworkDebugSubContractTransactorSession struct { + Contract *NetworkDebugSubContractTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// NetworkDebugSubContractRaw is an auto generated low-level Go binding around an Ethereum contract. +type NetworkDebugSubContractRaw struct { + Contract *NetworkDebugSubContract // Generic contract binding to access the raw methods on +} + +// NetworkDebugSubContractCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type NetworkDebugSubContractCallerRaw struct { + Contract *NetworkDebugSubContractCaller // Generic read-only contract binding to access the raw methods on +} + +// NetworkDebugSubContractTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type NetworkDebugSubContractTransactorRaw struct { + Contract *NetworkDebugSubContractTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewNetworkDebugSubContract creates a new instance of NetworkDebugSubContract, bound to a specific deployed contract. +func NewNetworkDebugSubContract(address common.Address, backend bind.ContractBackend) (*NetworkDebugSubContract, error) { + contract, err := bindNetworkDebugSubContract(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &NetworkDebugSubContract{NetworkDebugSubContractCaller: NetworkDebugSubContractCaller{contract: contract}, NetworkDebugSubContractTransactor: NetworkDebugSubContractTransactor{contract: contract}, NetworkDebugSubContractFilterer: NetworkDebugSubContractFilterer{contract: contract}}, nil +} + +// NewNetworkDebugSubContractCaller creates a new read-only instance of NetworkDebugSubContract, bound to a specific deployed contract. +func NewNetworkDebugSubContractCaller(address common.Address, caller bind.ContractCaller) (*NetworkDebugSubContractCaller, error) { + contract, err := bindNetworkDebugSubContract(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &NetworkDebugSubContractCaller{contract: contract}, nil +} + +// NewNetworkDebugSubContractTransactor creates a new write-only instance of NetworkDebugSubContract, bound to a specific deployed contract. +func NewNetworkDebugSubContractTransactor(address common.Address, transactor bind.ContractTransactor) (*NetworkDebugSubContractTransactor, error) { + contract, err := bindNetworkDebugSubContract(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &NetworkDebugSubContractTransactor{contract: contract}, nil +} + +// NewNetworkDebugSubContractFilterer creates a new log filterer instance of NetworkDebugSubContract, bound to a specific deployed contract. +func NewNetworkDebugSubContractFilterer(address common.Address, filterer bind.ContractFilterer) (*NetworkDebugSubContractFilterer, error) { + contract, err := bindNetworkDebugSubContract(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &NetworkDebugSubContractFilterer{contract: contract}, nil +} + +// bindNetworkDebugSubContract binds a generic wrapper to an already deployed contract. +func bindNetworkDebugSubContract(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := NetworkDebugSubContractMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_NetworkDebugSubContract *NetworkDebugSubContractRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _NetworkDebugSubContract.Contract.NetworkDebugSubContractCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_NetworkDebugSubContract *NetworkDebugSubContractRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugSubContract.Contract.NetworkDebugSubContractTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_NetworkDebugSubContract *NetworkDebugSubContractRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _NetworkDebugSubContract.Contract.NetworkDebugSubContractTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_NetworkDebugSubContract *NetworkDebugSubContractCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _NetworkDebugSubContract.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_NetworkDebugSubContract *NetworkDebugSubContractTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugSubContract.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_NetworkDebugSubContract *NetworkDebugSubContractTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _NetworkDebugSubContract.Contract.contract.Transact(opts, method, params...) +} + +// AlwaysRevertsCustomError is a paid mutator transaction binding the contract method 0x11abb002. +// +// Solidity: function alwaysRevertsCustomError(uint256 x, uint256 y) returns() +func (_NetworkDebugSubContract *NetworkDebugSubContractTransactor) AlwaysRevertsCustomError(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugSubContract.contract.Transact(opts, "alwaysRevertsCustomError", x, y) +} + +// AlwaysRevertsCustomError is a paid mutator transaction binding the contract method 0x11abb002. +// +// Solidity: function alwaysRevertsCustomError(uint256 x, uint256 y) returns() +func (_NetworkDebugSubContract *NetworkDebugSubContractSession) AlwaysRevertsCustomError(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugSubContract.Contract.AlwaysRevertsCustomError(&_NetworkDebugSubContract.TransactOpts, x, y) +} + +// AlwaysRevertsCustomError is a paid mutator transaction binding the contract method 0x11abb002. +// +// Solidity: function alwaysRevertsCustomError(uint256 x, uint256 y) returns() +func (_NetworkDebugSubContract *NetworkDebugSubContractTransactorSession) AlwaysRevertsCustomError(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugSubContract.Contract.AlwaysRevertsCustomError(&_NetworkDebugSubContract.TransactOpts, x, y) +} + +// Pay is a paid mutator transaction binding the contract method 0x1b9265b8. +// +// Solidity: function pay() payable returns() +func (_NetworkDebugSubContract *NetworkDebugSubContractTransactor) Pay(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugSubContract.contract.Transact(opts, "pay") +} + +// Pay is a paid mutator transaction binding the contract method 0x1b9265b8. +// +// Solidity: function pay() payable returns() +func (_NetworkDebugSubContract *NetworkDebugSubContractSession) Pay() (*types.Transaction, error) { + return _NetworkDebugSubContract.Contract.Pay(&_NetworkDebugSubContract.TransactOpts) +} + +// Pay is a paid mutator transaction binding the contract method 0x1b9265b8. +// +// Solidity: function pay() payable returns() +func (_NetworkDebugSubContract *NetworkDebugSubContractTransactorSession) Pay() (*types.Transaction, error) { + return _NetworkDebugSubContract.Contract.Pay(&_NetworkDebugSubContract.TransactOpts) +} + +// Trace is a paid mutator transaction binding the contract method 0x3e41f135. +// +// Solidity: function trace(int256 x, int256 y) returns(int256) +func (_NetworkDebugSubContract *NetworkDebugSubContractTransactor) Trace(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugSubContract.contract.Transact(opts, "trace", x, y) +} + +// Trace is a paid mutator transaction binding the contract method 0x3e41f135. +// +// Solidity: function trace(int256 x, int256 y) returns(int256) +func (_NetworkDebugSubContract *NetworkDebugSubContractSession) Trace(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugSubContract.Contract.Trace(&_NetworkDebugSubContract.TransactOpts, x, y) +} + +// Trace is a paid mutator transaction binding the contract method 0x3e41f135. +// +// Solidity: function trace(int256 x, int256 y) returns(int256) +func (_NetworkDebugSubContract *NetworkDebugSubContractTransactorSession) Trace(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugSubContract.Contract.Trace(&_NetworkDebugSubContract.TransactOpts, x, y) +} + +// TraceOneInt is a paid mutator transaction binding the contract method 0x047c4425. +// +// Solidity: function traceOneInt(int256 x) returns(int256 r) +func (_NetworkDebugSubContract *NetworkDebugSubContractTransactor) TraceOneInt(opts *bind.TransactOpts, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugSubContract.contract.Transact(opts, "traceOneInt", x) +} + +// TraceOneInt is a paid mutator transaction binding the contract method 0x047c4425. +// +// Solidity: function traceOneInt(int256 x) returns(int256 r) +func (_NetworkDebugSubContract *NetworkDebugSubContractSession) TraceOneInt(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugSubContract.Contract.TraceOneInt(&_NetworkDebugSubContract.TransactOpts, x) +} + +// TraceOneInt is a paid mutator transaction binding the contract method 0x047c4425. +// +// Solidity: function traceOneInt(int256 x) returns(int256 r) +func (_NetworkDebugSubContract *NetworkDebugSubContractTransactorSession) TraceOneInt(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugSubContract.Contract.TraceOneInt(&_NetworkDebugSubContract.TransactOpts, x) +} + +// TraceWithCallback is a paid mutator transaction binding the contract method 0xfa8fca7a. +// +// Solidity: function traceWithCallback(int256 x, int256 y) returns(int256) +func (_NetworkDebugSubContract *NetworkDebugSubContractTransactor) TraceWithCallback(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugSubContract.contract.Transact(opts, "traceWithCallback", x, y) +} + +// TraceWithCallback is a paid mutator transaction binding the contract method 0xfa8fca7a. +// +// Solidity: function traceWithCallback(int256 x, int256 y) returns(int256) +func (_NetworkDebugSubContract *NetworkDebugSubContractSession) TraceWithCallback(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugSubContract.Contract.TraceWithCallback(&_NetworkDebugSubContract.TransactOpts, x, y) +} + +// TraceWithCallback is a paid mutator transaction binding the contract method 0xfa8fca7a. +// +// Solidity: function traceWithCallback(int256 x, int256 y) returns(int256) +func (_NetworkDebugSubContract *NetworkDebugSubContractTransactorSession) TraceWithCallback(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugSubContract.Contract.TraceWithCallback(&_NetworkDebugSubContract.TransactOpts, x, y) +} + +// NetworkDebugSubContractNoIndexEventIterator is returned from FilterNoIndexEvent and is used to iterate over the raw logs and unpacked data for NoIndexEvent events raised by the NetworkDebugSubContract contract. +type NetworkDebugSubContractNoIndexEventIterator struct { + Event *NetworkDebugSubContractNoIndexEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugSubContractNoIndexEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugSubContractNoIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugSubContractNoIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugSubContractNoIndexEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugSubContractNoIndexEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugSubContractNoIndexEvent represents a NoIndexEvent event raised by the NetworkDebugSubContract contract. +type NetworkDebugSubContractNoIndexEvent struct { + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterNoIndexEvent is a free log retrieval operation binding the contract event 0x33bc9bae48dbe1e057f264b3fc6a1dacdcceacb3ba28d937231c70e068a02f1c. +// +// Solidity: event NoIndexEvent(address sender) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) FilterNoIndexEvent(opts *bind.FilterOpts) (*NetworkDebugSubContractNoIndexEventIterator, error) { + + logs, sub, err := _NetworkDebugSubContract.contract.FilterLogs(opts, "NoIndexEvent") + if err != nil { + return nil, err + } + return &NetworkDebugSubContractNoIndexEventIterator{contract: _NetworkDebugSubContract.contract, event: "NoIndexEvent", logs: logs, sub: sub}, nil +} + +// WatchNoIndexEvent is a free log subscription operation binding the contract event 0x33bc9bae48dbe1e057f264b3fc6a1dacdcceacb3ba28d937231c70e068a02f1c. +// +// Solidity: event NoIndexEvent(address sender) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) WatchNoIndexEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugSubContractNoIndexEvent) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugSubContract.contract.WatchLogs(opts, "NoIndexEvent") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugSubContractNoIndexEvent) + if err := _NetworkDebugSubContract.contract.UnpackLog(event, "NoIndexEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseNoIndexEvent is a log parse operation binding the contract event 0x33bc9bae48dbe1e057f264b3fc6a1dacdcceacb3ba28d937231c70e068a02f1c. +// +// Solidity: event NoIndexEvent(address sender) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) ParseNoIndexEvent(log types.Log) (*NetworkDebugSubContractNoIndexEvent, error) { + event := new(NetworkDebugSubContractNoIndexEvent) + if err := _NetworkDebugSubContract.contract.UnpackLog(event, "NoIndexEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugSubContractNoIndexEventStringIterator is returned from FilterNoIndexEventString and is used to iterate over the raw logs and unpacked data for NoIndexEventString events raised by the NetworkDebugSubContract contract. +type NetworkDebugSubContractNoIndexEventStringIterator struct { + Event *NetworkDebugSubContractNoIndexEventString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugSubContractNoIndexEventStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugSubContractNoIndexEventString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugSubContractNoIndexEventString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugSubContractNoIndexEventStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugSubContractNoIndexEventStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugSubContractNoIndexEventString represents a NoIndexEventString event raised by the NetworkDebugSubContract contract. +type NetworkDebugSubContractNoIndexEventString struct { + Str string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterNoIndexEventString is a free log retrieval operation binding the contract event 0x25b7adba1b046a19379db4bc06aa1f2e71604d7b599a0ee8783d58110f00e16a. +// +// Solidity: event NoIndexEventString(string str) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) FilterNoIndexEventString(opts *bind.FilterOpts) (*NetworkDebugSubContractNoIndexEventStringIterator, error) { + + logs, sub, err := _NetworkDebugSubContract.contract.FilterLogs(opts, "NoIndexEventString") + if err != nil { + return nil, err + } + return &NetworkDebugSubContractNoIndexEventStringIterator{contract: _NetworkDebugSubContract.contract, event: "NoIndexEventString", logs: logs, sub: sub}, nil +} + +// WatchNoIndexEventString is a free log subscription operation binding the contract event 0x25b7adba1b046a19379db4bc06aa1f2e71604d7b599a0ee8783d58110f00e16a. +// +// Solidity: event NoIndexEventString(string str) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) WatchNoIndexEventString(opts *bind.WatchOpts, sink chan<- *NetworkDebugSubContractNoIndexEventString) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugSubContract.contract.WatchLogs(opts, "NoIndexEventString") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugSubContractNoIndexEventString) + if err := _NetworkDebugSubContract.contract.UnpackLog(event, "NoIndexEventString", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseNoIndexEventString is a log parse operation binding the contract event 0x25b7adba1b046a19379db4bc06aa1f2e71604d7b599a0ee8783d58110f00e16a. +// +// Solidity: event NoIndexEventString(string str) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) ParseNoIndexEventString(log types.Log) (*NetworkDebugSubContractNoIndexEventString, error) { + event := new(NetworkDebugSubContractNoIndexEventString) + if err := _NetworkDebugSubContract.contract.UnpackLog(event, "NoIndexEventString", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugSubContractNoIndexStructEventIterator is returned from FilterNoIndexStructEvent and is used to iterate over the raw logs and unpacked data for NoIndexStructEvent events raised by the NetworkDebugSubContract contract. +type NetworkDebugSubContractNoIndexStructEventIterator struct { + Event *NetworkDebugSubContractNoIndexStructEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugSubContractNoIndexStructEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugSubContractNoIndexStructEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugSubContractNoIndexStructEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugSubContractNoIndexStructEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugSubContractNoIndexStructEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugSubContractNoIndexStructEvent represents a NoIndexStructEvent event raised by the NetworkDebugSubContract contract. +type NetworkDebugSubContractNoIndexStructEvent struct { + A NetworkDebugSubContractAccount + Raw types.Log // Blockchain specific contextual infos +} + +// FilterNoIndexStructEvent is a free log retrieval operation binding the contract event 0xebe3ff7e2071d351bf2e65b4fccd24e3ae99485f02468f1feecf7d64dc044188. +// +// Solidity: event NoIndexStructEvent((string,uint64,uint256) a) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) FilterNoIndexStructEvent(opts *bind.FilterOpts) (*NetworkDebugSubContractNoIndexStructEventIterator, error) { + + logs, sub, err := _NetworkDebugSubContract.contract.FilterLogs(opts, "NoIndexStructEvent") + if err != nil { + return nil, err + } + return &NetworkDebugSubContractNoIndexStructEventIterator{contract: _NetworkDebugSubContract.contract, event: "NoIndexStructEvent", logs: logs, sub: sub}, nil +} + +// WatchNoIndexStructEvent is a free log subscription operation binding the contract event 0xebe3ff7e2071d351bf2e65b4fccd24e3ae99485f02468f1feecf7d64dc044188. +// +// Solidity: event NoIndexStructEvent((string,uint64,uint256) a) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) WatchNoIndexStructEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugSubContractNoIndexStructEvent) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugSubContract.contract.WatchLogs(opts, "NoIndexStructEvent") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugSubContractNoIndexStructEvent) + if err := _NetworkDebugSubContract.contract.UnpackLog(event, "NoIndexStructEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseNoIndexStructEvent is a log parse operation binding the contract event 0xebe3ff7e2071d351bf2e65b4fccd24e3ae99485f02468f1feecf7d64dc044188. +// +// Solidity: event NoIndexStructEvent((string,uint64,uint256) a) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) ParseNoIndexStructEvent(log types.Log) (*NetworkDebugSubContractNoIndexStructEvent, error) { + event := new(NetworkDebugSubContractNoIndexStructEvent) + if err := _NetworkDebugSubContract.contract.UnpackLog(event, "NoIndexStructEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugSubContractOneIndexEventIterator is returned from FilterOneIndexEvent and is used to iterate over the raw logs and unpacked data for OneIndexEvent events raised by the NetworkDebugSubContract contract. +type NetworkDebugSubContractOneIndexEventIterator struct { + Event *NetworkDebugSubContractOneIndexEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugSubContractOneIndexEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugSubContractOneIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugSubContractOneIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugSubContractOneIndexEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugSubContractOneIndexEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugSubContractOneIndexEvent represents a OneIndexEvent event raised by the NetworkDebugSubContract contract. +type NetworkDebugSubContractOneIndexEvent struct { + A *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOneIndexEvent is a free log retrieval operation binding the contract event 0xeace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b35. +// +// Solidity: event OneIndexEvent(uint256 indexed a) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) FilterOneIndexEvent(opts *bind.FilterOpts, a []*big.Int) (*NetworkDebugSubContractOneIndexEventIterator, error) { + + var aRule []interface{} + for _, aItem := range a { + aRule = append(aRule, aItem) + } + + logs, sub, err := _NetworkDebugSubContract.contract.FilterLogs(opts, "OneIndexEvent", aRule) + if err != nil { + return nil, err + } + return &NetworkDebugSubContractOneIndexEventIterator{contract: _NetworkDebugSubContract.contract, event: "OneIndexEvent", logs: logs, sub: sub}, nil +} + +// WatchOneIndexEvent is a free log subscription operation binding the contract event 0xeace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b35. +// +// Solidity: event OneIndexEvent(uint256 indexed a) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) WatchOneIndexEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugSubContractOneIndexEvent, a []*big.Int) (event.Subscription, error) { + + var aRule []interface{} + for _, aItem := range a { + aRule = append(aRule, aItem) + } + + logs, sub, err := _NetworkDebugSubContract.contract.WatchLogs(opts, "OneIndexEvent", aRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugSubContractOneIndexEvent) + if err := _NetworkDebugSubContract.contract.UnpackLog(event, "OneIndexEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOneIndexEvent is a log parse operation binding the contract event 0xeace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b35. +// +// Solidity: event OneIndexEvent(uint256 indexed a) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) ParseOneIndexEvent(log types.Log) (*NetworkDebugSubContractOneIndexEvent, error) { + event := new(NetworkDebugSubContractOneIndexEvent) + if err := _NetworkDebugSubContract.contract.UnpackLog(event, "OneIndexEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugSubContractThreeIndexEventIterator is returned from FilterThreeIndexEvent and is used to iterate over the raw logs and unpacked data for ThreeIndexEvent events raised by the NetworkDebugSubContract contract. +type NetworkDebugSubContractThreeIndexEventIterator struct { + Event *NetworkDebugSubContractThreeIndexEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugSubContractThreeIndexEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugSubContractThreeIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugSubContractThreeIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugSubContractThreeIndexEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugSubContractThreeIndexEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugSubContractThreeIndexEvent represents a ThreeIndexEvent event raised by the NetworkDebugSubContract contract. +type NetworkDebugSubContractThreeIndexEvent struct { + RoundId *big.Int + StartedBy common.Address + StartedAt *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterThreeIndexEvent is a free log retrieval operation binding the contract event 0x5660e8f93f0146f45abcd659e026b75995db50053cbbca4d7f365934ade68bf3. +// +// Solidity: event ThreeIndexEvent(uint256 indexed roundId, address indexed startedBy, uint256 startedAt) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) FilterThreeIndexEvent(opts *bind.FilterOpts, roundId []*big.Int, startedBy []common.Address) (*NetworkDebugSubContractThreeIndexEventIterator, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + + logs, sub, err := _NetworkDebugSubContract.contract.FilterLogs(opts, "ThreeIndexEvent", roundIdRule, startedByRule) + if err != nil { + return nil, err + } + return &NetworkDebugSubContractThreeIndexEventIterator{contract: _NetworkDebugSubContract.contract, event: "ThreeIndexEvent", logs: logs, sub: sub}, nil +} + +// WatchThreeIndexEvent is a free log subscription operation binding the contract event 0x5660e8f93f0146f45abcd659e026b75995db50053cbbca4d7f365934ade68bf3. +// +// Solidity: event ThreeIndexEvent(uint256 indexed roundId, address indexed startedBy, uint256 startedAt) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) WatchThreeIndexEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugSubContractThreeIndexEvent, roundId []*big.Int, startedBy []common.Address) (event.Subscription, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + + logs, sub, err := _NetworkDebugSubContract.contract.WatchLogs(opts, "ThreeIndexEvent", roundIdRule, startedByRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugSubContractThreeIndexEvent) + if err := _NetworkDebugSubContract.contract.UnpackLog(event, "ThreeIndexEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseThreeIndexEvent is a log parse operation binding the contract event 0x5660e8f93f0146f45abcd659e026b75995db50053cbbca4d7f365934ade68bf3. +// +// Solidity: event ThreeIndexEvent(uint256 indexed roundId, address indexed startedBy, uint256 startedAt) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) ParseThreeIndexEvent(log types.Log) (*NetworkDebugSubContractThreeIndexEvent, error) { + event := new(NetworkDebugSubContractThreeIndexEvent) + if err := _NetworkDebugSubContract.contract.UnpackLog(event, "ThreeIndexEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugSubContractTwoIndexEventIterator is returned from FilterTwoIndexEvent and is used to iterate over the raw logs and unpacked data for TwoIndexEvent events raised by the NetworkDebugSubContract contract. +type NetworkDebugSubContractTwoIndexEventIterator struct { + Event *NetworkDebugSubContractTwoIndexEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugSubContractTwoIndexEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugSubContractTwoIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugSubContractTwoIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugSubContractTwoIndexEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugSubContractTwoIndexEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugSubContractTwoIndexEvent represents a TwoIndexEvent event raised by the NetworkDebugSubContract contract. +type NetworkDebugSubContractTwoIndexEvent struct { + RoundId *big.Int + StartedBy common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTwoIndexEvent is a free log retrieval operation binding the contract event 0x33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b5. +// +// Solidity: event TwoIndexEvent(uint256 indexed roundId, address indexed startedBy) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) FilterTwoIndexEvent(opts *bind.FilterOpts, roundId []*big.Int, startedBy []common.Address) (*NetworkDebugSubContractTwoIndexEventIterator, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + + logs, sub, err := _NetworkDebugSubContract.contract.FilterLogs(opts, "TwoIndexEvent", roundIdRule, startedByRule) + if err != nil { + return nil, err + } + return &NetworkDebugSubContractTwoIndexEventIterator{contract: _NetworkDebugSubContract.contract, event: "TwoIndexEvent", logs: logs, sub: sub}, nil +} + +// WatchTwoIndexEvent is a free log subscription operation binding the contract event 0x33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b5. +// +// Solidity: event TwoIndexEvent(uint256 indexed roundId, address indexed startedBy) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) WatchTwoIndexEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugSubContractTwoIndexEvent, roundId []*big.Int, startedBy []common.Address) (event.Subscription, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + + logs, sub, err := _NetworkDebugSubContract.contract.WatchLogs(opts, "TwoIndexEvent", roundIdRule, startedByRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugSubContractTwoIndexEvent) + if err := _NetworkDebugSubContract.contract.UnpackLog(event, "TwoIndexEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTwoIndexEvent is a log parse operation binding the contract event 0x33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b5. +// +// Solidity: event TwoIndexEvent(uint256 indexed roundId, address indexed startedBy) +func (_NetworkDebugSubContract *NetworkDebugSubContractFilterer) ParseTwoIndexEvent(log types.Log) (*NetworkDebugSubContractTwoIndexEvent, error) { + event := new(NetworkDebugSubContractTwoIndexEvent) + if err := _NetworkDebugSubContract.contract.UnpackLog(event, "TwoIndexEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/seth/contracts/gethWrapperAndGoFile/main.go b/seth/contracts/gethWrapperAndGoFile/main.go new file mode 100644 index 000000000..52419c3f2 --- /dev/null +++ b/seth/contracts/gethWrapperAndGoFile/main.go @@ -0,0 +1,21 @@ +package network_debug_sub_contract + +import "math/big" + +const constant = "package main" + +var variable = "package main" + +type SomeType struct { + Int *big.Int + Map map[string]string +} + +type Interface interface { + DoSomething() +} + +func main() { + _ = constant + _ = variable +} diff --git a/seth/contracts/invalidContractDir/NetworkDebugContract_Broken.go b/seth/contracts/invalidContractDir/NetworkDebugContract_Broken.go new file mode 100644 index 000000000..e8a4d1dc9 --- /dev/null +++ b/seth/contracts/invalidContractDir/NetworkDebugContract_Broken.go @@ -0,0 +1,3286 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package network_debug_contract + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// NetworkDebugContractAccount is an auto generated low-level Go binding around an user-defined struct. +type NetworkDebugContractAccount struct { + Name string + Balance uint64 + DailyLimit *big.Int +} + +// NetworkDebugContractData is an auto generated low-level Go binding around an user-defined struct. +type NetworkDebugContractData struct { + Name string + Values []*big.Int +} + +// NetworkDebugContractNestedData is an auto generated low-level Go binding around an user-defined struct. +type NetworkDebugContractNestedData struct { + Data NetworkDebugContractData + DynamicBytes []byte +} + +// NetworkDebugContractMetaData contains all meta data concerning the NetworkDebugContract contract. +var NetworkDebugContractMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":ility\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"CustomErr\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CustomErrNoValues\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"CustomErrWithMessage\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"CallDataLength\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"int256\",\"name\":\"a\",\"type\":\"int256\"}],\"name\":\"CallbackEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enumNetworkDebugContract.Status\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"CurrentStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EtherReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"IsValidEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"NoIndexEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"NoIndexEventString\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"dailyLimit\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structNetworkDebugContract.Account\",\"name\":\"a\",\"type\":\"tuple\"}],\"name\":\"NoIndexStructEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"}],\"name\":\"OneIndexEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"Received\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"startedBy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"dataId\",\"type\":\"string\"}],\"name\":\"ThreeIndexAndOneNonIndexedEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"startedBy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"}],\"name\":\"ThreeIndexEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"startedBy\",\"type\":\"address\"}],\"name\":\"TwoIndexEvent\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"idx\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"}],\"name\":\"addCounter\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"alwaysRevertsAssert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"alwaysRevertsCustomError\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"alwaysRevertsCustomErrorNoValues\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"alwaysRevertsRequire\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"callRevertFunctionInSubContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"callRevertFunctionInTheContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"}],\"name\":\"callbackMethod\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"counterMap\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentStatus\",\"outputs\":[{\"internalType\":\"enumNetworkDebugContract.Status\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"emitAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"input\",\"type\":\"bytes32\"}],\"name\":\"emitBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"output\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"emitFourParamMixedEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"inputVal1\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"inputVal2\",\"type\":\"string\"}],\"name\":\"emitInputs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"inputVal1\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"inputVal2\",\"type\":\"string\"}],\"name\":\"emitInputsOutputs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"first\",\"type\":\"int256\"},{\"internalType\":\"int128\",\"name\":\"second\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"third\",\"type\":\"uint256\"}],\"name\":\"emitInts\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"int128\",\"name\":\"outputVal1\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"outputVal2\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"inputVal1\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"inputVal2\",\"type\":\"string\"}],\"name\":\"emitNamedInputsOutputs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"outputVal1\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"outputVal2\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"emitNamedOutputs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"outputVal1\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"outputVal2\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"emitNoIndexEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"emitNoIndexEventString\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"emitNoIndexStructEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"emitOneIndexEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"emitOutputs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"emitThreeIndexEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"emitTwoIndexEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"get\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"data\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"idx\",\"type\":\"int256\"}],\"name\":\"getCounter\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"data\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMap\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"data\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onTokenTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pay\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"performStaticCall\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"input\",\"type\":\"address[]\"}],\"name\":\"processAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"internalType\":\"structNetworkDebugContract.Data\",\"name\":\"data\",\"type\":\"tuple\"}],\"name\":\"processDynamicData\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"internalType\":\"structNetworkDebugContract.Data\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"internalType\":\"structNetworkDebugContract.Data[3]\",\"name\":\"data\",\"type\":\"tuple[3]\"}],\"name\":\"processFixedDataArray\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"internalType\":\"structNetworkDebugContract.Data[2]\",\"name\":\"\",\"type\":\"tuple[2]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"internalType\":\"structNetworkDebugContract.Data\",\"name\":\"data\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"dynamicBytes\",\"type\":\"bytes\"}],\"internalType\":\"structNetworkDebugContract.NestedData\",\"name\":\"data\",\"type\":\"tuple\"}],\"name\":\"processNestedData\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"internalType\":\"structNetworkDebugContract.Data\",\"name\":\"data\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"dynamicBytes\",\"type\":\"bytes\"}],\"internalType\":\"structNetworkDebugContract.NestedData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"internalType\":\"structNetworkDebugContract.Data\",\"name\":\"data\",\"type\":\"tuple\"}],\"name\":\"processNestedData\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"internalType\":\"structNetworkDebugContract.Data\",\"name\":\"data\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"dynamicBytes\",\"type\":\"bytes\"}],\"internalType\":\"structNetworkDebugContract.NestedData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"input\",\"type\":\"uint256[]\"}],\"name\":\"processUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"idx\",\"type\":\"int256\"}],\"name\":\"resetCounter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"}],\"name\":\"set\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"}],\"name\":\"setMap\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enumNetworkDebugContract.Status\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"setStatus\",\"outputs\":[{\"internalType\":\"enumNetworkDebugContract.Status\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storedData\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"storedDataMap\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subContract\",\"outputs\":[{\"internalType\":\"contractNetworkDebugSubContract\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"y\",\"type\":\"int256\"}],\"name\":\"trace\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"y\",\"type\":\"int256\"}],\"name\":\"traceDifferent\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"y\",\"type\":\"int256\"}],\"name\":\"traceSubWithCallback\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"y\",\"type\":\"int256\"}],\"name\":\"traceWithValidate\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"y\",\"type\":\"int256\"}],\"name\":\"traceYetDifferent\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"y\",\"type\":\"int256\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x60806040523480156200001157600080fd5b5060405162004015380380620040158339818101604052810190620000379190620000f2565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101006004819055505062000124565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000ba826200008d565b9050919050565b620000cc81620000ad565b8114620000d857600080fd5b50565b600081519050620000ec81620000c1565b92915050565b6000602082840312156200010b576200010a62000088565b5b60006200011b84828501620000db565b91505092915050565b613ee180620001346000396000f3fe6080604052600436106102e85760003560e01c8063788c477211610190578063b1ae9d85116100dc578063e5c19b2d11610095578063ef8a92351161006f578063ef8a923514610bc8578063f3396bd914610bf3578063f499af2a14610c1c578063fbcb8d0714610c5957610328565b8063e5c19b2d14610b11578063e8116e2814610b4e578063ec5c3ede14610b8b57610328565b8063b1ae9d8514610a0d578063b600141f14610a3d578063c0d06d8914610a54578063c2124b2214610a7f578063d7a8020514610a96578063e1111f7914610ad457610328565b80639349d00b116101495780639e099652116101235780639e09965214610963578063a4c0ed36146109a2578063aa3fdcf4146109cb578063ad3de14c146109e257610328565b80639349d00b146108f857806395a81a4c1461090f57806399adad2e1461092657610328565b8063788c4772146107fb5780637f12881c146108125780637fdc8fe11461084f57806381b375a01461088c5780638db611be146108b55780638f856296146108e157610328565b806333311ef31161024f57806358379d71116102085780636284117d116101e25780636284117d1461075057806362c270e11461078d5780636d4ce63c146107a45780637014c81d146107cf57610328565b806358379d71146106bf5780635921483f146106fc5780635e9c80d61461073957610328565b806333311ef3146105625780633837a75e1461059f5780633bc5de30146105dc5780633e41f1351461060757806345f0c9e61461064457806348ad9fe81461068257610328565b806323515760116102a1578063235157601461043e578063256560d51461047b5780632a1afcd9146104925780632e49d78b146104bd57806330985bcc146104fa5780633170428e1461053757610328565b806304d8215b1461036357806306595f75146103a057806311b3c478146103b757806312d91233146103e05780631b9265b81461041d5780631e31d0a81461042757610328565b36610328577f59e04c3f0d44b7caf6e8ef854b61d9a51cf1960d7a88ff6356cc5e946b4b5832333460405161031e9291906120c3565b60405180910390a1005b7f1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b33346040516103599291906120ff565b60405180910390a1005b34801561036f57600080fd5b5061038a60048036038101906103859190612172565b610c96565b60405161039791906121cd565b60405180910390f35b3480156103ac57600080fd5b506103b5610cdc565b005b3480156103c357600080fd5b506103de60048036038101906103d99190612214565b610d1f565b005b3480156103ec57600080fd5b50610407600480360381019061040291906123ad565b610db2565b60405161041491906124b4565b60405180910390f35b610425610e71565b005b34801561043357600080fd5b5061043c610e73565b005b34801561044a57600080fd5b5061046560048036038101906104609190612172565b610eba565b60405161047291906124e5565b60405180910390f35b34801561048757600080fd5b50610490610eef565b005b34801561049e57600080fd5b506104a7610f00565b6040516104b491906124e5565b60405180910390f35b3480156104c957600080fd5b506104e460048036038101906104df9190612525565b610f06565b6040516104f191906125c9565b60405180910390f35b34801561050657600080fd5b50610521600480360381019061051c9190612172565b610f88565b60405161052e91906124e5565b60405180910390f35b34801561054357600080fd5b5061054c61106a565b60405161055991906125e4565b60405180910390f35b34801561056e57600080fd5b5061058960048036038101906105849190612635565b6111a9565b6040516105969190612671565b60405180910390f35b3480156105ab57600080fd5b506105c660048036038101906105c19190612172565b6111b3565b6040516105d391906124e5565b60405180910390f35b3480156105e857600080fd5b506105f16112be565b6040516105fe91906125e4565b60405180910390f35b34801561061357600080fd5b5061062e60048036038101906106299190612172565b6112c8565b60405161063b91906124e5565b60405180910390f35b34801561065057600080fd5b5061066b60048036038101906106669190612741565b6113c3565b60405161067992919061280b565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a49190612867565b6113d4565b6040516106b691906124e5565b60405180910390f35b3480156106cb57600080fd5b506106e660048036038101906106e19190612172565b6113ec565b6040516106f391906124e5565b60405180910390f35b34801561070857600080fd5b50610723600480360381019061071e9190612894565b6114e7565b60405161073091906124e5565b60405180910390f35b34801561074557600080fd5b5061074e611504565b005b34801561075c57600080fd5b5061077760048036038101906107729190612894565b611545565b60405161078491906124e5565b60405180910390f35b34801561079957600080fd5b506107a261155d565b005b3480156107b057600080fd5b506107b96115f1565b6040516107c691906124e5565b60405180910390f35b3480156107db57600080fd5b506107e46115fa565b6040516107f292919061280b565b60405180910390f35b34801561080757600080fd5b5061081061163f565b005b34801561081e57600080fd5b50610839600480360381019061083491906128e5565b611676565b6040516108469190612ac4565b60405180910390f35b34801561085b57600080fd5b5061087660048036038101906108719190612b05565b61168f565b6040516108839190612d12565b60405180910390f35b34801561089857600080fd5b506108b360048036038101906108ae9190612741565b611698565b005b3480156108c157600080fd5b506108ca61169c565b6040516108d892919061280b565b60405180910390f35b3480156108ed57600080fd5b506108f66116e1565b005b34801561090457600080fd5b5061090d611711565b005b34801561091b57600080fd5b5061092461171b565b005b34801561093257600080fd5b5061094d60048036038101906109489190612d56565b611754565b60405161095a9190612e55565b60405180910390f35b34801561096f57600080fd5b5061098a60048036038101906109859190612eb0565b6117ff565b60405161099993929190612f12565b60405180910390f35b3480156109ae57600080fd5b506109c960048036038101906109c49190612fa4565b611816565b005b3480156109d757600080fd5b506109e0611b02565b005b3480156109ee57600080fd5b506109f7611b4b565b604051610a0491906124e5565b60405180910390f35b610a276004803603810190610a229190612172565b611b92565b604051610a3491906124e5565b60405180910390f35b348015610a4957600080fd5b50610a52611cdc565b005b348015610a6057600080fd5b50610a69611d0e565b604051610a769190613077565b60405180910390f35b348015610a8b57600080fd5b50610a94611d34565b005b348015610aa257600080fd5b50610abd6004803603810190610ab89190612741565b611d86565b604051610acb92919061280b565b60405180910390f35b348015610ae057600080fd5b50610afb6004803603810190610af69190613155565b611d97565b604051610b08919061325c565b60405180910390f35b348015610b1d57600080fd5b50610b386004803603810190610b339190612894565b611da1565b604051610b4591906124e5565b60405180910390f35b348015610b5a57600080fd5b50610b756004803603810190610b709190612894565b611db2565b604051610b8291906124e5565b60405180910390f35b348015610b9757600080fd5b50610bb26004803603810190610bad9190612867565b611e00565b604051610bbf919061327e565b60405180910390f35b348015610bd457600080fd5b50610bdd611e0a565b604051610bea91906125c9565b60405180910390f35b348015610bff57600080fd5b50610c1a6004803603810190610c159190612894565b611e1d565b005b348015610c2857600080fd5b50610c436004803603810190610c3e9190612b05565b611e39565b604051610c509190612ac4565b60405180910390f35b348015610c6557600080fd5b50610c806004803603810190610c7b9190612894565b611f6e565b604051610c8d91906124e5565b60405180910390f35b60007fdfac7500004753b91139af55816e7eade36d96faec68b343f77ed66b89912a7b828413604051610cc991906121cd565b60405180910390a1818313905092915050565b6000610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d14906132e5565b60405180910390fd5b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166311abb00283836040518363ffffffff1660e01b8152600401610d7c929190613305565b600060405180830381600087803b158015610d9657600080fd5b505af1158015610daa573d6000803e3d6000fd5b505050505050565b60606000825167ffffffffffffffff811115610dd157610dd061226a565b5b604051908082528060200260200182016040528015610dff5781602001602082028036833780820191505090505b50905060005b8351811015610e67576001848281518110610e2357610e2261332e565b5b6020026020010151610e35919061338c565b828281518110610e4857610e4761332e565b5b6020026020010181815250508080610e5f906133c0565b915050610e05565b5080915050919050565b565b3373ffffffffffffffffffffffffffffffffffffffff1660017f33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b560405160405180910390a3565b600081600260008581526020019081526020016000206000828254610edf9190613408565b9250508190555081905092915050565b6000610efe57610efd61344c565b5b565b60005481565b600081600560006101000a81548160ff02191690836003811115610f2d57610f2c612552565b5b0217905550600560009054906101000a900460ff166003811115610f5457610f53612552565b5b7fbea054406fdf249b05d1aef1b5f848d62d902d94389fca702b2d8337677c359a60405160405180910390a2819050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663047c4425836040518263ffffffff1660e01b8152600401610fe591906124e5565b6020604051808303816000875af1158015611004573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110289190613490565b50827feace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b3560405160405180910390a281836110629190613408565b905092915050565b6000803090506000808273ffffffffffffffffffffffffffffffffffffffff16633bc5de3060e01b604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161110291906134f9565b600060405180830381855afa9150503d806000811461113d576040519150601f19603f3d011682016040523d82523d6000602084013e611142565b606091505b509150915081611187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117e9061355c565b60405180910390fd5b60008180602001905181019061119d9190613591565b90508094505050505090565b6000819050919050565b60006002826111c29190613408565b9150600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fa8fca7a84846040518363ffffffff1660e01b81526004016112219291906135be565b6020604051808303816000875af1158015611240573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112649190613490565b503373ffffffffffffffffffffffffffffffffffffffff1660017f33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b560405160405180910390a381836112b69190613408565b905092915050565b6000600454905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633e41f13584846040518363ffffffff1660e01b81526004016113279291906135be565b6020604051808303816000875af1158015611346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136a9190613490565b503373ffffffffffffffffffffffffffffffffffffffff16827f33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b560405160405180910390a381836113bb9190613408565b905092915050565b600060608383915091509250929050565b60016020528060005260406000206000915090505481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633e41f13584846040518363ffffffff1660e01b815260040161144b9291906135be565b6020604051808303816000875af115801561146a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148e9190613490565b503373ffffffffffffffffffffffffffffffffffffffff16827f33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b560405160405180910390a381836114df9190613408565b905092915050565b600060026000838152602001908152602001600020549050919050565b600c60156040517f4a2eaf7e00000000000000000000000000000000000000000000000000000000815260040161153c92919061365d565b60405180910390fd5b60026020528060005260406000206000915090505481565b7febe3ff7e2071d351bf2e65b4fccd24e3ae99485f02468f1feecf7d64dc04418860405180606001604052806040518060400160405280600481526020017f4a6f686e000000000000000000000000000000000000000000000000000000008152508152602001600567ffffffffffffffff168152602001600a8152506040516115e791906136f9565b60405180910390a1565b60008054905090565b60006060617a696040518060400160405280600a81526020017f6f757470757456616c3100000000000000000000000000000000000000000000815250915091509091565b7f25b7adba1b046a19379db4bc06aa1f2e71604d7b599a0ee8783d58110f00e16a60405161166c90613767565b60405180910390a1565b61167e611fa5565b8161168890613942565b9050919050565b36819050919050565b5050565b60006060617a696040518060400160405280600a81526020017f6f757470757456616c3100000000000000000000000000000000000000000000815250915091509091565b60537feace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b3560405160405180910390a2565b611719611504565b565b7f33bc9bae48dbe1e057f264b3fc6a1dacdcceacb3ba28d937231c70e068a02f1c3360405161174a919061327e565b60405180910390a1565b61175c611fc5565b611764611fc5565b826000600381106117785761177761332e565b5b6020028101906117889190613964565b6117919061398c565b816000600281106117a5576117a461332e565b5b6020020181905250826001600381106117c1576117c061332e565b5b6020028101906117d19190613964565b6117da9061398c565b816001600281106117ee576117ed61332e565b5b602002018190525080915050919050565b600080600085858592509250925093509350939050565b7f962c5df4c8ad201a4f54a88f47715bb2cf291d019e350e2dff50ca6fc0f5d0ed8282905060405161184891906125e4565b60405180910390a16000828290500361189c57606360656040517f4a2eaf7e000000000000000000000000000000000000000000000000000000008152600401611893929190613a15565b60405180910390fd5b6000803073ffffffffffffffffffffffffffffffffffffffff1684846040516118c6929190613a63565b600060405180830381855af49150503d8060008114611901576040519150601f19603f3d011682016040523d82523d6000602084013e611906565b606091505b50915091508161195e576000815111156119235780518082602001fd5b6040517f2350eb5200000000000000000000000000000000000000000000000000000000815260040161195590613aee565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16633170428e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119cd9190613591565b50600084846000906004926119e493929190613b18565b906119ef9190613b97565b90506358379d7160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603611a78576040517f2350eb52000000000000000000000000000000000000000000000000000000008152600401611a6f90613c42565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16633837a75e600160026040518363ffffffff1660e01b8152600401611ab5929190613cd8565b6020604051808303816000875af1158015611ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af89190613490565b5050505050505050565b60033373ffffffffffffffffffffffffffffffffffffffff1660017f5660e8f93f0146f45abcd659e026b75995db50053cbbca4d7f365934ade68bf360405160405180910390a4565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000611b9e8383610c96565b15611c9b57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633e41f13584846040518363ffffffff1660e01b8152600401611c009291906135be565b6020604051808303816000875af1158015611c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c439190613490565b503373ffffffffffffffffffffffffffffffffffffffff16827f33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b560405160405180910390a38183611c949190613408565b9050611cd6565b6040517f2350eb52000000000000000000000000000000000000000000000000000000008152600401611ccd90613d73565b60405180910390fd5b92915050565b6040517fa0c2d2db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60033373ffffffffffffffffffffffffffffffffffffffff1660027f56c2ea44ba516098cee0c181dd9d8db262657368b6e911e83ae0ccfae806c73d604051611d7c90613ddf565b60405180910390a4565b600060608383915091509250929050565b6060819050919050565b600081600081905550819050919050565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550819050919050565b6000819050919050565b600560009054906101000a900460ff1681565b6000600260008381526020019081526020016000208190555050565b611e41611fa5565b6000828060000190611e539190613dff565b604051602001611e64929190613e92565b6040516020818303038152906040528051906020012090506000602067ffffffffffffffff811115611e9957611e9861226a565b5b6040519080825280601f01601f191660200182016040528015611ecb5781602001600182028036833780820191505090505b50905060005b6020811015611f4657828160208110611eed57611eec61332e565b5b1a60f81b828281518110611f0457611f0361332e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080611f3e906133c0565b915050611ed1565b50604051806040016040528085611f5c9061398c565b81526020018281525092505050919050565b6000817fb16dba9242e1aa07ccc47228094628f72c8cc9699ee45d5bc8d67b84d3038c6860405160405180910390a2819050919050565b6040518060400160405280611fb8611ff2565b8152602001606081525090565b60405180604001604052806002905b611fdc611ff2565b815260200190600190039081611fd45790505090565b604051806040016040528060608152602001606081525090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120378261200c565b9050919050565b6120478161202c565b82525050565b6000819050919050565b6120608161204d565b82525050565b600082825260208201905092915050565b7f5265636569766564204574686572000000000000000000000000000000000000600082015250565b60006120ad600e83612066565b91506120b882612077565b602082019050919050565b60006060820190506120d8600083018561203e565b6120e56020830184612057565b81810360408301526120f6816120a0565b90509392505050565b6000604082019050612114600083018561203e565b6121216020830184612057565b9392505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61214f8161213c565b811461215a57600080fd5b50565b60008135905061216c81612146565b92915050565b6000806040838503121561218957612188612132565b5b60006121978582860161215d565b92505060206121a88582860161215d565b9150509250929050565b60008115159050919050565b6121c7816121b2565b82525050565b60006020820190506121e260008301846121be565b92915050565b6121f18161204d565b81146121fc57600080fd5b50565b60008135905061220e816121e8565b92915050565b6000806040838503121561222b5761222a612132565b5b6000612239858286016121ff565b925050602061224a858286016121ff565b9150509250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6122a282612259565b810181811067ffffffffffffffff821117156122c1576122c061226a565b5b80604052505050565b60006122d4612128565b90506122e08282612299565b919050565b600067ffffffffffffffff821115612300576122ff61226a565b5b602082029050602081019050919050565b600080fd5b6000612329612324846122e5565b6122ca565b9050808382526020820190506020840283018581111561234c5761234b612311565b5b835b81811015612375578061236188826121ff565b84526020840193505060208101905061234e565b5050509392505050565b600082601f83011261239457612393612254565b5b81356123a4848260208601612316565b91505092915050565b6000602082840312156123c3576123c2612132565b5b600082013567ffffffffffffffff8111156123e1576123e0612137565b5b6123ed8482850161237f565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61242b8161204d565b82525050565b600061243d8383612422565b60208301905092915050565b6000602082019050919050565b6000612461826123f6565b61246b8185612401565b935061247683612412565b8060005b838110156124a757815161248e8882612431565b975061249983612449565b92505060018101905061247a565b5085935050505092915050565b600060208201905081810360008301526124ce8184612456565b905092915050565b6124df8161213c565b82525050565b60006020820190506124fa60008301846124d6565b92915050565b6004811061250d57600080fd5b50565b60008135905061251f81612500565b92915050565b60006020828403121561253b5761253a612132565b5b600061254984828501612510565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811061259257612591612552565b5b50565b60008190506125a382612581565b919050565b60006125b382612595565b9050919050565b6125c3816125a8565b82525050565b60006020820190506125de60008301846125ba565b92915050565b60006020820190506125f96000830184612057565b92915050565b6000819050919050565b612612816125ff565b811461261d57600080fd5b50565b60008135905061262f81612609565b92915050565b60006020828403121561264b5761264a612132565b5b600061265984828501612620565b91505092915050565b61266b816125ff565b82525050565b60006020820190506126866000830184612662565b92915050565b600080fd5b600067ffffffffffffffff8211156126ac576126ab61226a565b5b6126b582612259565b9050602081019050919050565b82818337600083830152505050565b60006126e46126df84612691565b6122ca565b905082815260208101848484011115612700576126ff61268c565b5b61270b8482856126c2565b509392505050565b600082601f83011261272857612727612254565b5b81356127388482602086016126d1565b91505092915050565b6000806040838503121561275857612757612132565b5b6000612766858286016121ff565b925050602083013567ffffffffffffffff81111561278757612786612137565b5b61279385828601612713565b9150509250929050565b600081519050919050565b60005b838110156127c65780820151818401526020810190506127ab565b60008484015250505050565b60006127dd8261279d565b6127e78185612066565b93506127f78185602086016127a8565b61280081612259565b840191505092915050565b60006040820190506128206000830185612057565b818103602083015261283281846127d2565b90509392505050565b6128448161202c565b811461284f57600080fd5b50565b6000813590506128618161283b565b92915050565b60006020828403121561287d5761287c612132565b5b600061288b84828501612852565b91505092915050565b6000602082840312156128aa576128a9612132565b5b60006128b88482850161215d565b91505092915050565b600080fd5b6000604082840312156128dc576128db6128c1565b5b81905092915050565b6000602082840312156128fb576128fa612132565b5b600082013567ffffffffffffffff81111561291957612918612137565b5b612925848285016128c6565b91505092915050565b600082825260208201905092915050565b600061294a8261279d565b612954818561292e565b93506129648185602086016127a8565b61296d81612259565b840191505092915050565b600082825260208201905092915050565b6000612994826123f6565b61299e8185612978565b93506129a983612412565b8060005b838110156129da5781516129c18882612431565b97506129cc83612449565b9250506001810190506129ad565b5085935050505092915050565b60006040830160008301518482036000860152612a04828261293f565b91505060208301518482036020860152612a1e8282612989565b9150508091505092915050565b600081519050919050565b600082825260208201905092915050565b6000612a5282612a2b565b612a5c8185612a36565b9350612a6c8185602086016127a8565b612a7581612259565b840191505092915050565b60006040830160008301518482036000860152612a9d82826129e7565b91505060208301518482036020860152612ab78282612a47565b9150508091505092915050565b60006020820190508181036000830152612ade8184612a80565b905092915050565b600060408284031215612afc57612afb6128c1565b5b81905092915050565b600060208284031215612b1b57612b1a612132565b5b600082013567ffffffffffffffff811115612b3957612b38612137565b5b612b4584828501612ae6565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112612b7a57612b79612b58565b5b83810192508235915060208301925067ffffffffffffffff821115612ba257612ba1612b4e565b5b600182023603831315612bb857612bb7612b53565b5b509250929050565b6000612bcc838561292e565b9350612bd98385846126c2565b612be283612259565b840190509392505050565b60008083356001602003843603038112612c0a57612c09612b58565b5b83810192508235915060208301925067ffffffffffffffff821115612c3257612c31612b4e565b5b602082023603831315612c4857612c47612b53565b5b509250929050565b600080fd5b82818337505050565b6000612c6a8385612978565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115612c9d57612c9c612c50565b5b602083029250612cae838584612c55565b82840190509392505050565b600060408301612ccd6000840184612b5d565b8583036000870152612ce0838284612bc0565b92505050612cf16020840184612bed565b8583036020870152612d04838284612c5e565b925050508091505092915050565b60006020820190508181036000830152612d2c8184612cba565b905092915050565b600081905082602060030282011115612d5057612d4f612311565b5b92915050565b600060208284031215612d6c57612d6b612132565b5b600082013567ffffffffffffffff811115612d8a57612d89612137565b5b612d9684828501612d34565b91505092915050565b600060029050919050565b600081905092915050565b6000819050919050565b6000612dcb83836129e7565b905092915050565b6000602082019050919050565b6000612deb82612d9f565b612df58185612daa565b935083602082028501612e0785612db5565b8060005b85811015612e435784840389528151612e248582612dbf565b9450612e2f83612dd3565b925060208a01995050600181019050612e0b565b50829750879550505050505092915050565b60006020820190508181036000830152612e6f8184612de0565b905092915050565b600081600f0b9050919050565b612e8d81612e77565b8114612e9857600080fd5b50565b600081359050612eaa81612e84565b92915050565b600080600060608486031215612ec957612ec8612132565b5b6000612ed78682870161215d565b9350506020612ee886828701612e9b565b9250506040612ef9868287016121ff565b9150509250925092565b612f0c81612e77565b82525050565b6000606082019050612f2760008301866124d6565b612f346020830185612f03565b612f416040830184612057565b949350505050565b600080fd5b60008083601f840112612f6457612f63612254565b5b8235905067ffffffffffffffff811115612f8157612f80612f49565b5b602083019150836001820283011115612f9d57612f9c612311565b5b9250929050565b60008060008060608587031215612fbe57612fbd612132565b5b6000612fcc87828801612852565b9450506020612fdd878288016121ff565b935050604085013567ffffffffffffffff811115612ffe57612ffd612137565b5b61300a87828801612f4e565b925092505092959194509250565b6000819050919050565b600061303d6130386130338461200c565b613018565b61200c565b9050919050565b600061304f82613022565b9050919050565b600061306182613044565b9050919050565b61307181613056565b82525050565b600060208201905061308c6000830184613068565b92915050565b600067ffffffffffffffff8211156130ad576130ac61226a565b5b602082029050602081019050919050565b60006130d16130cc84613092565b6122ca565b905080838252602082019050602084028301858111156130f4576130f3612311565b5b835b8181101561311d57806131098882612852565b8452602084019350506020810190506130f6565b5050509392505050565b600082601f83011261313c5761313b612254565b5b813561314c8482602086016130be565b91505092915050565b60006020828403121561316b5761316a612132565b5b600082013567ffffffffffffffff81111561318957613188612137565b5b61319584828501613127565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131d38161202c565b82525050565b60006131e583836131ca565b60208301905092915050565b6000602082019050919050565b60006132098261319e565b61321381856131a9565b935061321e836131ba565b8060005b8381101561324f57815161323688826131d9565b9750613241836131f1565b925050600181019050613222565b5085935050505092915050565b6000602082019050818103600083015261327681846131fe565b905092915050565b6000602082019050613293600083018461203e565b92915050565b7f616c7761797320726576657274206572726f7200000000000000000000000000600082015250565b60006132cf601383612066565b91506132da82613299565b602082019050919050565b600060208201905081810360008301526132fe816132c2565b9050919050565b600060408201905061331a6000830185612057565b6133276020830184612057565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006133978261204d565b91506133a28361204d565b92508282019050808211156133ba576133b961335d565b5b92915050565b60006133cb8261204d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133fd576133fc61335d565b5b600182019050919050565b60006134138261213c565b915061341e8361213c565b9250828201905082811215600083121683821260008412151617156134465761344561335d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60008151905061348a81612146565b92915050565b6000602082840312156134a6576134a5612132565b5b60006134b48482850161347b565b91505092915050565b600081905092915050565b60006134d382612a2b565b6134dd81856134bd565b93506134ed8185602086016127a8565b80840191505092915050565b600061350582846134c8565b915081905092915050565b7f5374617469632063616c6c206661696c65640000000000000000000000000000600082015250565b6000613546601283612066565b915061355182613510565b602082019050919050565b6000602082019050818103600083015261357581613539565b9050919050565b60008151905061358b816121e8565b92915050565b6000602082840312156135a7576135a6612132565b5b60006135b58482850161357c565b91505092915050565b60006040820190506135d360008301856124d6565b6135e060208301846124d6565b9392505050565b6000819050919050565b600061360c613607613602846135e7565b613018565b61204d565b9050919050565b61361c816135f1565b82525050565b6000819050919050565b600061364761364261363d84613622565b613018565b61204d565b9050919050565b6136578161362c565b82525050565b60006040820190506136726000830185613613565b61367f602083018461364e565b9392505050565b600067ffffffffffffffff82169050919050565b6136a381613686565b82525050565b600060608301600083015184820360008601526136c6828261293f565b91505060208301516136db602086018261369a565b5060408301516136ee6040860182612422565b508091505092915050565b6000602082019050818103600083015261371381846136a9565b905092915050565b7f6d79537472696e67000000000000000000000000000000000000000000000000600082015250565b6000613751600883612066565b915061375c8261371b565b602082019050919050565b6000602082019050818103600083015261378081613744565b9050919050565b600080fd5b600080fd5b6000604082840312156137a7576137a6613787565b5b6137b160406122ca565b9050600082013567ffffffffffffffff8111156137d1576137d061378c565b5b6137dd84828501612713565b600083015250602082013567ffffffffffffffff8111156138015761380061378c565b5b61380d8482850161237f565b60208301525092915050565b600067ffffffffffffffff8211156138345761383361226a565b5b61383d82612259565b9050602081019050919050565b600061385d61385884613819565b6122ca565b9050828152602081018484840111156138795761387861268c565b5b6138848482856126c2565b509392505050565b600082601f8301126138a1576138a0612254565b5b81356138b184826020860161384a565b91505092915050565b6000604082840312156138d0576138cf613787565b5b6138da60406122ca565b9050600082013567ffffffffffffffff8111156138fa576138f961378c565b5b61390684828501613791565b600083015250602082013567ffffffffffffffff81111561392a5761392961378c565b5b6139368482850161388c565b60208301525092915050565b600061394e36836138ba565b9050919050565b600080fd5b600080fd5b600080fd5b6000823560016040038336030381126139805761397f613955565b5b80830191505092915050565b60006139983683613791565b9050919050565b6000819050919050565b60006139c46139bf6139ba8461399f565b613018565b61204d565b9050919050565b6139d4816139a9565b82525050565b6000819050919050565b60006139ff6139fa6139f5846139da565b613018565b61204d565b9050919050565b613a0f816139e4565b82525050565b6000604082019050613a2a60008301856139cb565b613a376020830184613a06565b9392505050565b6000613a4a83856134bd565b9350613a578385846126c2565b82840190509392505050565b6000613a70828486613a3e565b91508190509392505050565b7f64656c656761746563616c6c206661696c65642077697468206e6f207265617360008201527f6f6e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ad8602283612066565b9150613ae382613a7c565b604082019050919050565b60006020820190508181036000830152613b0781613acb565b9050919050565b600080fd5b600080fd5b60008085851115613b2c57613b2b613b0e565b5b83861115613b3d57613b3c613b13565b5b6001850283019150848603905094509492505050565b600082905092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600082821b905092915050565b6000613ba38383613b53565b82613bae8135613b5e565b92506004821015613bee57613be97fffffffff0000000000000000000000000000000000000000000000000000000083600403600802613b8a565b831692505b505092915050565b7f6f68206f68206f682069742773206d6167696321000000000000000000000000600082015250565b6000613c2c601483612066565b9150613c3782613bf6565b602082019050919050565b60006020820190508181036000830152613c5b81613c1f565b9050919050565b6000819050919050565b6000613c87613c82613c7d84613c62565b613018565b61213c565b9050919050565b613c9781613c6c565b82525050565b6000819050919050565b6000613cc2613cbd613cb884613c9d565b613018565b61213c565b9050919050565b613cd281613ca7565b82525050565b6000604082019050613ced6000830185613c8e565b613cfa6020830184613cc9565b9392505050565b7f666972737420696e7420776173206e6f742067726561746572207468616e207360008201527f65636f6e6420696e740000000000000000000000000000000000000000000000602082015250565b6000613d5d602983612066565b9150613d6882613d01565b604082019050919050565b60006020820190508181036000830152613d8c81613d50565b9050919050565b7f736f6d6520696400000000000000000000000000000000000000000000000000600082015250565b6000613dc9600783612066565b9150613dd482613d93565b602082019050919050565b60006020820190508181036000830152613df881613dbc565b9050919050565b60008083356001602003843603038112613e1c57613e1b613955565b5b80840192508235915067ffffffffffffffff821115613e3e57613e3d61395a565b5b602083019250600182023603831315613e5a57613e5961395f565b5b509250929050565b600081905092915050565b6000613e798385613e62565b9350613e868385846126c2565b82840190509392505050565b6000613e9f828486613e6d565b9150819050939250505056fea264697066735822122095801437fe2af153ec90ad58a4678a194b7fb3b777ee30438995ef0f23596f7664736f6c63430008130033", +} + +// NetworkDebugContractABI is the input ABI used to generate the binding from. +// Deprecated: Use NetworkDebugContractMetaData.ABI instead. +var NetworkDebugContractABI = NetworkDebugContractMetaData.ABI + +// NetworkDebugContractBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use NetworkDebugContractMetaData.Bin instead. +var NetworkDebugContractBin = NetworkDebugContractMetaData.Bin + +// DeployNetworkDebugContract deploys a new Ethereum contract, binding an instance of NetworkDebugContract to it. +func DeployNetworkDebugContract(auth *bind.TransactOpts, backend bind.ContractBackend, subAddr common.Address) (common.Address, *types.Transaction, *NetworkDebugContract, error) { + parsed, err := NetworkDebugContractMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(NetworkDebugContractBin), backend, subAddr) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &NetworkDebugContract{NetworkDebugContractCaller: NetworkDebugContractCaller{contract: contract}, NetworkDebugContractTransactor: NetworkDebugContractTransactor{contract: contract}, NetworkDebugContractFilterer: NetworkDebugContractFilterer{contract: contract}}, nil +} + +// NetworkDebugContract is an auto generated Go binding around an Ethereum contract. +type NetworkDebugContract struct { + NetworkDebugContractCaller // Read-only binding to the contract + NetworkDebugContractTransactor // Write-only binding to the contract + NetworkDebugContractFilterer // Log filterer for contract events +} + +// NetworkDebugContractCaller is an auto generated read-only Go binding around an Ethereum contract. +type NetworkDebugContractCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// NetworkDebugContractTransactor is an auto generated write-only Go binding around an Ethereum contract. +type NetworkDebugContractTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// NetworkDebugContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type NetworkDebugContractFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// NetworkDebugContractSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type NetworkDebugContractSession struct { + Contract *NetworkDebugContract // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// NetworkDebugContractCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type NetworkDebugContractCallerSession struct { + Contract *NetworkDebugContractCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// NetworkDebugContractTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type NetworkDebugContractTransactorSession struct { + Contract *NetworkDebugContractTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// NetworkDebugContractRaw is an auto generated low-level Go binding around an Ethereum contract. +type NetworkDebugContractRaw struct { + Contract *NetworkDebugContract // Generic contract binding to access the raw methods on +} + +// NetworkDebugContractCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type NetworkDebugContractCallerRaw struct { + Contract *NetworkDebugContractCaller // Generic read-only contract binding to access the raw methods on +} + +// NetworkDebugContractTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type NetworkDebugContractTransactorRaw struct { + Contract *NetworkDebugContractTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewNetworkDebugContract creates a new instance of NetworkDebugContract, bound to a specific deployed contract. +func NewNetworkDebugContract(address common.Address, backend bind.ContractBackend) (*NetworkDebugContract, error) { + contract, err := bindNetworkDebugContract(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &NetworkDebugContract{NetworkDebugContractCaller: NetworkDebugContractCaller{contract: contract}, NetworkDebugContractTransactor: NetworkDebugContractTransactor{contract: contract}, NetworkDebugContractFilterer: NetworkDebugContractFilterer{contract: contract}}, nil +} + +// NewNetworkDebugContractCaller creates a new read-only instance of NetworkDebugContract, bound to a specific deployed contract. +func NewNetworkDebugContractCaller(address common.Address, caller bind.ContractCaller) (*NetworkDebugContractCaller, error) { + contract, err := bindNetworkDebugContract(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &NetworkDebugContractCaller{contract: contract}, nil +} + +// NewNetworkDebugContractTransactor creates a new write-only instance of NetworkDebugContract, bound to a specific deployed contract. +func NewNetworkDebugContractTransactor(address common.Address, transactor bind.ContractTransactor) (*NetworkDebugContractTransactor, error) { + contract, err := bindNetworkDebugContract(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &NetworkDebugContractTransactor{contract: contract}, nil +} + +// NewNetworkDebugContractFilterer creates a new log filterer instance of NetworkDebugContract, bound to a specific deployed contract. +func NewNetworkDebugContractFilterer(address common.Address, filterer bind.ContractFilterer) (*NetworkDebugContractFilterer, error) { + contract, err := bindNetworkDebugContract(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &NetworkDebugContractFilterer{contract: contract}, nil +} + +// bindNetworkDebugContract binds a generic wrapper to an already deployed contract. +func bindNetworkDebugContract(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := NetworkDebugContractMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_NetworkDebugContract *NetworkDebugContractRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _NetworkDebugContract.Contract.NetworkDebugContractCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_NetworkDebugContract *NetworkDebugContractRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.NetworkDebugContractTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_NetworkDebugContract *NetworkDebugContractRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.NetworkDebugContractTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_NetworkDebugContract *NetworkDebugContractCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _NetworkDebugContract.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_NetworkDebugContract *NetworkDebugContractTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_NetworkDebugContract *NetworkDebugContractTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.contract.Transact(opts, method, params...) +} + +// CounterMap is a free data retrieval call binding the contract method 0x6284117d. +// +// Solidity: function counterMap(int256 ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCaller) CounterMap(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "counterMap", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// CounterMap is a free data retrieval call binding the contract method 0x6284117d. +// +// Solidity: function counterMap(int256 ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) CounterMap(arg0 *big.Int) (*big.Int, error) { + return _NetworkDebugContract.Contract.CounterMap(&_NetworkDebugContract.CallOpts, arg0) +} + +// CounterMap is a free data retrieval call binding the contract method 0x6284117d. +// +// Solidity: function counterMap(int256 ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) CounterMap(arg0 *big.Int) (*big.Int, error) { + return _NetworkDebugContract.Contract.CounterMap(&_NetworkDebugContract.CallOpts, arg0) +} + +// CurrentStatus is a free data retrieval call binding the contract method 0xef8a9235. +// +// Solidity: function currentStatus() view returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractCaller) CurrentStatus(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "currentStatus") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// CurrentStatus is a free data retrieval call binding the contract method 0xef8a9235. +// +// Solidity: function currentStatus() view returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractSession) CurrentStatus() (uint8, error) { + return _NetworkDebugContract.Contract.CurrentStatus(&_NetworkDebugContract.CallOpts) +} + +// CurrentStatus is a free data retrieval call binding the contract method 0xef8a9235. +// +// Solidity: function currentStatus() view returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) CurrentStatus() (uint8, error) { + return _NetworkDebugContract.Contract.CurrentStatus(&_NetworkDebugContract.CallOpts) +} + +// Get is a free data retrieval call binding the contract method 0x6d4ce63c. +// +// Solidity: function get() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCaller) Get(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "get") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Get is a free data retrieval call binding the contract method 0x6d4ce63c. +// +// Solidity: function get() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractSession) Get() (*big.Int, error) { + return _NetworkDebugContract.Contract.Get(&_NetworkDebugContract.CallOpts) +} + +// Get is a free data retrieval call binding the contract method 0x6d4ce63c. +// +// Solidity: function get() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) Get() (*big.Int, error) { + return _NetworkDebugContract.Contract.Get(&_NetworkDebugContract.CallOpts) +} + +// GetCounter is a free data retrieval call binding the contract method 0x5921483f. +// +// Solidity: function getCounter(int256 idx) view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCaller) GetCounter(opts *bind.CallOpts, idx *big.Int) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "getCounter", idx) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetCounter is a free data retrieval call binding the contract method 0x5921483f. +// +// Solidity: function getCounter(int256 idx) view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractSession) GetCounter(idx *big.Int) (*big.Int, error) { + return _NetworkDebugContract.Contract.GetCounter(&_NetworkDebugContract.CallOpts, idx) +} + +// GetCounter is a free data retrieval call binding the contract method 0x5921483f. +// +// Solidity: function getCounter(int256 idx) view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) GetCounter(idx *big.Int) (*big.Int, error) { + return _NetworkDebugContract.Contract.GetCounter(&_NetworkDebugContract.CallOpts, idx) +} + +// GetData is a free data retrieval call binding the contract method 0x3bc5de30. +// +// Solidity: function getData() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractCaller) GetData(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "getData") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetData is a free data retrieval call binding the contract method 0x3bc5de30. +// +// Solidity: function getData() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractSession) GetData() (*big.Int, error) { + return _NetworkDebugContract.Contract.GetData(&_NetworkDebugContract.CallOpts) +} + +// GetData is a free data retrieval call binding the contract method 0x3bc5de30. +// +// Solidity: function getData() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) GetData() (*big.Int, error) { + return _NetworkDebugContract.Contract.GetData(&_NetworkDebugContract.CallOpts) +} + +// GetMap is a free data retrieval call binding the contract method 0xad3de14c. +// +// Solidity: function getMap() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCaller) GetMap(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "getMap") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetMap is a free data retrieval call binding the contract method 0xad3de14c. +// +// Solidity: function getMap() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractSession) GetMap() (*big.Int, error) { + return _NetworkDebugContract.Contract.GetMap(&_NetworkDebugContract.CallOpts) +} + +// GetMap is a free data retrieval call binding the contract method 0xad3de14c. +// +// Solidity: function getMap() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) GetMap() (*big.Int, error) { + return _NetworkDebugContract.Contract.GetMap(&_NetworkDebugContract.CallOpts) +} + +// PerformStaticCall is a free data retrieval call binding the contract method 0x3170428e. +// +// Solidity: function performStaticCall() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractCaller) PerformStaticCall(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "performStaticCall") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// PerformStaticCall is a free data retrieval call binding the contract method 0x3170428e. +// +// Solidity: function performStaticCall() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractSession) PerformStaticCall() (*big.Int, error) { + return _NetworkDebugContract.Contract.PerformStaticCall(&_NetworkDebugContract.CallOpts) +} + +// PerformStaticCall is a free data retrieval call binding the contract method 0x3170428e. +// +// Solidity: function performStaticCall() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) PerformStaticCall() (*big.Int, error) { + return _NetworkDebugContract.Contract.PerformStaticCall(&_NetworkDebugContract.CallOpts) +} + +// StoredData is a free data retrieval call binding the contract method 0x2a1afcd9. +// +// Solidity: function storedData() view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCaller) StoredData(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "storedData") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// StoredData is a free data retrieval call binding the contract method 0x2a1afcd9. +// +// Solidity: function storedData() view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) StoredData() (*big.Int, error) { + return _NetworkDebugContract.Contract.StoredData(&_NetworkDebugContract.CallOpts) +} + +// StoredData is a free data retrieval call binding the contract method 0x2a1afcd9. +// +// Solidity: function storedData() view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) StoredData() (*big.Int, error) { + return _NetworkDebugContract.Contract.StoredData(&_NetworkDebugContract.CallOpts) +} + +// StoredDataMap is a free data retrieval call binding the contract method 0x48ad9fe8. +// +// Solidity: function storedDataMap(address ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCaller) StoredDataMap(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "storedDataMap", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// StoredDataMap is a free data retrieval call binding the contract method 0x48ad9fe8. +// +// Solidity: function storedDataMap(address ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) StoredDataMap(arg0 common.Address) (*big.Int, error) { + return _NetworkDebugContract.Contract.StoredDataMap(&_NetworkDebugContract.CallOpts, arg0) +} + +// StoredDataMap is a free data retrieval call binding the contract method 0x48ad9fe8. +// +// Solidity: function storedDataMap(address ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) StoredDataMap(arg0 common.Address) (*big.Int, error) { + return _NetworkDebugContract.Contract.StoredDataMap(&_NetworkDebugContract.CallOpts, arg0) +} + +// SubContract is a free data retrieval call binding the contract method 0xc0d06d89. +// +// Solidity: function subContract() view returns(address) +func (_NetworkDebugContract *NetworkDebugContractCaller) SubContract(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "subContract") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// SubContract is a free data retrieval call binding the contract method 0xc0d06d89. +// +// Solidity: function subContract() view returns(address) +func (_NetworkDebugContract *NetworkDebugContractSession) SubContract() (common.Address, error) { + return _NetworkDebugContract.Contract.SubContract(&_NetworkDebugContract.CallOpts) +} + +// SubContract is a free data retrieval call binding the contract method 0xc0d06d89. +// +// Solidity: function subContract() view returns(address) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) SubContract() (common.Address, error) { + return _NetworkDebugContract.Contract.SubContract(&_NetworkDebugContract.CallOpts) +} + +// AddCounter is a paid mutator transaction binding the contract method 0x23515760. +// +// Solidity: function addCounter(int256 idx, int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactor) AddCounter(opts *bind.TransactOpts, idx *big.Int, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "addCounter", idx, x) +} + +// AddCounter is a paid mutator transaction binding the contract method 0x23515760. +// +// Solidity: function addCounter(int256 idx, int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractSession) AddCounter(idx *big.Int, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AddCounter(&_NetworkDebugContract.TransactOpts, idx, x) +} + +// AddCounter is a paid mutator transaction binding the contract method 0x23515760. +// +// Solidity: function addCounter(int256 idx, int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) AddCounter(idx *big.Int, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AddCounter(&_NetworkDebugContract.TransactOpts, idx, x) +} + +// AlwaysRevertsAssert is a paid mutator transaction binding the contract method 0x256560d5. +// +// Solidity: function alwaysRevertsAssert() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) AlwaysRevertsAssert(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "alwaysRevertsAssert") +} + +// AlwaysRevertsAssert is a paid mutator transaction binding the contract method 0x256560d5. +// +// Solidity: function alwaysRevertsAssert() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) AlwaysRevertsAssert() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsAssert(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsAssert is a paid mutator transaction binding the contract method 0x256560d5. +// +// Solidity: function alwaysRevertsAssert() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) AlwaysRevertsAssert() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsAssert(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsCustomError is a paid mutator transaction binding the contract method 0x5e9c80d6. +// +// Solidity: function alwaysRevertsCustomError() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) AlwaysRevertsCustomError(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "alwaysRevertsCustomError") +} + +// AlwaysRevertsCustomError is a paid mutator transaction binding the contract method 0x5e9c80d6. +// +// Solidity: function alwaysRevertsCustomError() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) AlwaysRevertsCustomError() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsCustomError(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsCustomError is a paid mutator transaction binding the contract method 0x5e9c80d6. +// +// Solidity: function alwaysRevertsCustomError() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) AlwaysRevertsCustomError() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsCustomError(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsCustomErrorNoValues is a paid mutator transaction binding the contract method 0xb600141f. +// +// Solidity: function alwaysRevertsCustomErrorNoValues() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) AlwaysRevertsCustomErrorNoValues(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "alwaysRevertsCustomErrorNoValues") +} + +// AlwaysRevertsCustomErrorNoValues is a paid mutator transaction binding the contract method 0xb600141f. +// +// Solidity: function alwaysRevertsCustomErrorNoValues() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) AlwaysRevertsCustomErrorNoValues() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsCustomErrorNoValues(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsCustomErrorNoValues is a paid mutator transaction binding the contract method 0xb600141f. +// +// Solidity: function alwaysRevertsCustomErrorNoValues() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) AlwaysRevertsCustomErrorNoValues() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsCustomErrorNoValues(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsRequire is a paid mutator transaction binding the contract method 0x06595f75. +// +// Solidity: function alwaysRevertsRequire() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) AlwaysRevertsRequire(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "alwaysRevertsRequire") +} + +// AlwaysRevertsRequire is a paid mutator transaction binding the contract method 0x06595f75. +// +// Solidity: function alwaysRevertsRequire() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) AlwaysRevertsRequire() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsRequire(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsRequire is a paid mutator transaction binding the contract method 0x06595f75. +// +// Solidity: function alwaysRevertsRequire() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) AlwaysRevertsRequire() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsRequire(&_NetworkDebugContract.TransactOpts) +} + +// CallRevertFunctionInSubContract is a paid mutator transaction binding the contract method 0x11b3c478. +// +// Solidity: function callRevertFunctionInSubContract(uint256 x, uint256 y) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) CallRevertFunctionInSubContract(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "callRevertFunctionInSubContract", x, y) +} + +// CallRevertFunctionInSubContract is a paid mutator transaction binding the contract method 0x11b3c478. +// +// Solidity: function callRevertFunctionInSubContract(uint256 x, uint256 y) returns() +func (_NetworkDebugContract *NetworkDebugContractSession) CallRevertFunctionInSubContract(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallRevertFunctionInSubContract(&_NetworkDebugContract.TransactOpts, x, y) +} + +// CallRevertFunctionInSubContract is a paid mutator transaction binding the contract method 0x11b3c478. +// +// Solidity: function callRevertFunctionInSubContract(uint256 x, uint256 y) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) CallRevertFunctionInSubContract(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallRevertFunctionInSubContract(&_NetworkDebugContract.TransactOpts, x, y) +} + +// CallRevertFunctionInTheContract is a paid mutator transaction binding the contract method 0x9349d00b. +// +// Solidity: function callRevertFunctionInTheContract() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) CallRevertFunctionInTheContract(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "callRevertFunctionInTheContract") +} + +// CallRevertFunctionInTheContract is a paid mutator transaction binding the contract method 0x9349d00b. +// +// Solidity: function callRevertFunctionInTheContract() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) CallRevertFunctionInTheContract() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallRevertFunctionInTheContract(&_NetworkDebugContract.TransactOpts) +} + +// CallRevertFunctionInTheContract is a paid mutator transaction binding the contract method 0x9349d00b. +// +// Solidity: function callRevertFunctionInTheContract() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) CallRevertFunctionInTheContract() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallRevertFunctionInTheContract(&_NetworkDebugContract.TransactOpts) +} + +// CallbackMethod is a paid mutator transaction binding the contract method 0xfbcb8d07. +// +// Solidity: function callbackMethod(int256 x) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) CallbackMethod(opts *bind.TransactOpts, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "callbackMethod", x) +} + +// CallbackMethod is a paid mutator transaction binding the contract method 0xfbcb8d07. +// +// Solidity: function callbackMethod(int256 x) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) CallbackMethod(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallbackMethod(&_NetworkDebugContract.TransactOpts, x) +} + +// CallbackMethod is a paid mutator transaction binding the contract method 0xfbcb8d07. +// +// Solidity: function callbackMethod(int256 x) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) CallbackMethod(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallbackMethod(&_NetworkDebugContract.TransactOpts, x) +} + +// EmitAddress is a paid mutator transaction binding the contract method 0xec5c3ede. +// +// Solidity: function emitAddress(address addr) returns(address) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitAddress(opts *bind.TransactOpts, addr common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitAddress", addr) +} + +// EmitAddress is a paid mutator transaction binding the contract method 0xec5c3ede. +// +// Solidity: function emitAddress(address addr) returns(address) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitAddress(addr common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitAddress(&_NetworkDebugContract.TransactOpts, addr) +} + +// EmitAddress is a paid mutator transaction binding the contract method 0xec5c3ede. +// +// Solidity: function emitAddress(address addr) returns(address) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitAddress(addr common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitAddress(&_NetworkDebugContract.TransactOpts, addr) +} + +// EmitBytes32 is a paid mutator transaction binding the contract method 0x33311ef3. +// +// Solidity: function emitBytes32(bytes32 input) returns(bytes32 output) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitBytes32(opts *bind.TransactOpts, input [32]byte) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitBytes32", input) +} + +// EmitBytes32 is a paid mutator transaction binding the contract method 0x33311ef3. +// +// Solidity: function emitBytes32(bytes32 input) returns(bytes32 output) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitBytes32(input [32]byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitBytes32(&_NetworkDebugContract.TransactOpts, input) +} + +// EmitBytes32 is a paid mutator transaction binding the contract method 0x33311ef3. +// +// Solidity: function emitBytes32(bytes32 input) returns(bytes32 output) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitBytes32(input [32]byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitBytes32(&_NetworkDebugContract.TransactOpts, input) +} + +// EmitFourParamMixedEvent is a paid mutator transaction binding the contract method 0xc2124b22. +// +// Solidity: function emitFourParamMixedEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitFourParamMixedEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitFourParamMixedEvent") +} + +// EmitFourParamMixedEvent is a paid mutator transaction binding the contract method 0xc2124b22. +// +// Solidity: function emitFourParamMixedEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitFourParamMixedEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitFourParamMixedEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitFourParamMixedEvent is a paid mutator transaction binding the contract method 0xc2124b22. +// +// Solidity: function emitFourParamMixedEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitFourParamMixedEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitFourParamMixedEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitInputs is a paid mutator transaction binding the contract method 0x81b375a0. +// +// Solidity: function emitInputs(uint256 inputVal1, string inputVal2) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitInputs(opts *bind.TransactOpts, inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitInputs", inputVal1, inputVal2) +} + +// EmitInputs is a paid mutator transaction binding the contract method 0x81b375a0. +// +// Solidity: function emitInputs(uint256 inputVal1, string inputVal2) returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitInputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitInputs is a paid mutator transaction binding the contract method 0x81b375a0. +// +// Solidity: function emitInputs(uint256 inputVal1, string inputVal2) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitInputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitInputsOutputs is a paid mutator transaction binding the contract method 0xd7a80205. +// +// Solidity: function emitInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitInputsOutputs(opts *bind.TransactOpts, inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitInputsOutputs", inputVal1, inputVal2) +} + +// EmitInputsOutputs is a paid mutator transaction binding the contract method 0xd7a80205. +// +// Solidity: function emitInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitInputsOutputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInputsOutputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitInputsOutputs is a paid mutator transaction binding the contract method 0xd7a80205. +// +// Solidity: function emitInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitInputsOutputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInputsOutputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitInts is a paid mutator transaction binding the contract method 0x9e099652. +// +// Solidity: function emitInts(int256 first, int128 second, uint256 third) returns(int256, int128 outputVal1, uint256 outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitInts(opts *bind.TransactOpts, first *big.Int, second *big.Int, third *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitInts", first, second, third) +} + +// EmitInts is a paid mutator transaction binding the contract method 0x9e099652. +// +// Solidity: function emitInts(int256 first, int128 second, uint256 third) returns(int256, int128 outputVal1, uint256 outputVal2) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitInts(first *big.Int, second *big.Int, third *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInts(&_NetworkDebugContract.TransactOpts, first, second, third) +} + +// EmitInts is a paid mutator transaction binding the contract method 0x9e099652. +// +// Solidity: function emitInts(int256 first, int128 second, uint256 third) returns(int256, int128 outputVal1, uint256 outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitInts(first *big.Int, second *big.Int, third *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInts(&_NetworkDebugContract.TransactOpts, first, second, third) +} + +// EmitNamedInputsOutputs is a paid mutator transaction binding the contract method 0x45f0c9e6. +// +// Solidity: function emitNamedInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitNamedInputsOutputs(opts *bind.TransactOpts, inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitNamedInputsOutputs", inputVal1, inputVal2) +} + +// EmitNamedInputsOutputs is a paid mutator transaction binding the contract method 0x45f0c9e6. +// +// Solidity: function emitNamedInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitNamedInputsOutputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNamedInputsOutputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitNamedInputsOutputs is a paid mutator transaction binding the contract method 0x45f0c9e6. +// +// Solidity: function emitNamedInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitNamedInputsOutputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNamedInputsOutputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitNamedOutputs is a paid mutator transaction binding the contract method 0x7014c81d. +// +// Solidity: function emitNamedOutputs() returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitNamedOutputs(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitNamedOutputs") +} + +// EmitNamedOutputs is a paid mutator transaction binding the contract method 0x7014c81d. +// +// Solidity: function emitNamedOutputs() returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitNamedOutputs() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNamedOutputs(&_NetworkDebugContract.TransactOpts) +} + +// EmitNamedOutputs is a paid mutator transaction binding the contract method 0x7014c81d. +// +// Solidity: function emitNamedOutputs() returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitNamedOutputs() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNamedOutputs(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexEvent is a paid mutator transaction binding the contract method 0x95a81a4c. +// +// Solidity: function emitNoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitNoIndexEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitNoIndexEvent") +} + +// EmitNoIndexEvent is a paid mutator transaction binding the contract method 0x95a81a4c. +// +// Solidity: function emitNoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitNoIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexEvent is a paid mutator transaction binding the contract method 0x95a81a4c. +// +// Solidity: function emitNoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitNoIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexEventString is a paid mutator transaction binding the contract method 0x788c4772. +// +// Solidity: function emitNoIndexEventString() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitNoIndexEventString(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitNoIndexEventString") +} + +// EmitNoIndexEventString is a paid mutator transaction binding the contract method 0x788c4772. +// +// Solidity: function emitNoIndexEventString() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitNoIndexEventString() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexEventString(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexEventString is a paid mutator transaction binding the contract method 0x788c4772. +// +// Solidity: function emitNoIndexEventString() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitNoIndexEventString() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexEventString(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexStructEvent is a paid mutator transaction binding the contract method 0x62c270e1. +// +// Solidity: function emitNoIndexStructEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitNoIndexStructEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitNoIndexStructEvent") +} + +// EmitNoIndexStructEvent is a paid mutator transaction binding the contract method 0x62c270e1. +// +// Solidity: function emitNoIndexStructEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitNoIndexStructEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexStructEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexStructEvent is a paid mutator transaction binding the contract method 0x62c270e1. +// +// Solidity: function emitNoIndexStructEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitNoIndexStructEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexStructEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitOneIndexEvent is a paid mutator transaction binding the contract method 0x8f856296. +// +// Solidity: function emitOneIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitOneIndexEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitOneIndexEvent") +} + +// EmitOneIndexEvent is a paid mutator transaction binding the contract method 0x8f856296. +// +// Solidity: function emitOneIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitOneIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitOneIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitOneIndexEvent is a paid mutator transaction binding the contract method 0x8f856296. +// +// Solidity: function emitOneIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitOneIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitOneIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitOutputs is a paid mutator transaction binding the contract method 0x8db611be. +// +// Solidity: function emitOutputs() returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitOutputs(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitOutputs") +} + +// EmitOutputs is a paid mutator transaction binding the contract method 0x8db611be. +// +// Solidity: function emitOutputs() returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitOutputs() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitOutputs(&_NetworkDebugContract.TransactOpts) +} + +// EmitOutputs is a paid mutator transaction binding the contract method 0x8db611be. +// +// Solidity: function emitOutputs() returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitOutputs() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitOutputs(&_NetworkDebugContract.TransactOpts) +} + +// EmitThreeIndexEvent is a paid mutator transaction binding the contract method 0xaa3fdcf4. +// +// Solidity: function emitThreeIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitThreeIndexEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitThreeIndexEvent") +} + +// EmitThreeIndexEvent is a paid mutator transaction binding the contract method 0xaa3fdcf4. +// +// Solidity: function emitThreeIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitThreeIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitThreeIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitThreeIndexEvent is a paid mutator transaction binding the contract method 0xaa3fdcf4. +// +// Solidity: function emitThreeIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitThreeIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitThreeIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitTwoIndexEvent is a paid mutator transaction binding the contract method 0x1e31d0a8. +// +// Solidity: function emitTwoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitTwoIndexEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitTwoIndexEvent") +} + +// EmitTwoIndexEvent is a paid mutator transaction binding the contract method 0x1e31d0a8. +// +// Solidity: function emitTwoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitTwoIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitTwoIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitTwoIndexEvent is a paid mutator transaction binding the contract method 0x1e31d0a8. +// +// Solidity: function emitTwoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitTwoIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitTwoIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// OnTokenTransfer is a paid mutator transaction binding the contract method 0xa4c0ed36. +// +// Solidity: function onTokenTransfer(address sender, uint256 amount, bytes data) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) OnTokenTransfer(opts *bind.TransactOpts, sender common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "onTokenTransfer", sender, amount, data) +} + +// OnTokenTransfer is a paid mutator transaction binding the contract method 0xa4c0ed36. +// +// Solidity: function onTokenTransfer(address sender, uint256 amount, bytes data) returns() +func (_NetworkDebugContract *NetworkDebugContractSession) OnTokenTransfer(sender common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.OnTokenTransfer(&_NetworkDebugContract.TransactOpts, sender, amount, data) +} + +// OnTokenTransfer is a paid mutator transaction binding the contract method 0xa4c0ed36. +// +// Solidity: function onTokenTransfer(address sender, uint256 amount, bytes data) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) OnTokenTransfer(sender common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.OnTokenTransfer(&_NetworkDebugContract.TransactOpts, sender, amount, data) +} + +// Pay is a paid mutator transaction binding the contract method 0x1b9265b8. +// +// Solidity: function pay() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) Pay(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "pay") +} + +// Pay is a paid mutator transaction binding the contract method 0x1b9265b8. +// +// Solidity: function pay() payable returns() +func (_NetworkDebugContract *NetworkDebugContractSession) Pay() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Pay(&_NetworkDebugContract.TransactOpts) +} + +// Pay is a paid mutator transaction binding the contract method 0x1b9265b8. +// +// Solidity: function pay() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Pay() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Pay(&_NetworkDebugContract.TransactOpts) +} + +// ProcessAddressArray is a paid mutator transaction binding the contract method 0xe1111f79. +// +// Solidity: function processAddressArray(address[] input) returns(address[]) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessAddressArray(opts *bind.TransactOpts, input []common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processAddressArray", input) +} + +// ProcessAddressArray is a paid mutator transaction binding the contract method 0xe1111f79. +// +// Solidity: function processAddressArray(address[] input) returns(address[]) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessAddressArray(input []common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessAddressArray(&_NetworkDebugContract.TransactOpts, input) +} + +// ProcessAddressArray is a paid mutator transaction binding the contract method 0xe1111f79. +// +// Solidity: function processAddressArray(address[] input) returns(address[]) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessAddressArray(input []common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessAddressArray(&_NetworkDebugContract.TransactOpts, input) +} + +// ProcessDynamicData is a paid mutator transaction binding the contract method 0x7fdc8fe1. +// +// Solidity: function processDynamicData((string,uint256[]) data) returns((string,uint256[])) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessDynamicData(opts *bind.TransactOpts, data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processDynamicData", data) +} + +// ProcessDynamicData is a paid mutator transaction binding the contract method 0x7fdc8fe1. +// +// Solidity: function processDynamicData((string,uint256[]) data) returns((string,uint256[])) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessDynamicData(data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessDynamicData(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessDynamicData is a paid mutator transaction binding the contract method 0x7fdc8fe1. +// +// Solidity: function processDynamicData((string,uint256[]) data) returns((string,uint256[])) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessDynamicData(data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessDynamicData(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessFixedDataArray is a paid mutator transaction binding the contract method 0x99adad2e. +// +// Solidity: function processFixedDataArray((string,uint256[])[3] data) returns((string,uint256[])[2]) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessFixedDataArray(opts *bind.TransactOpts, data [3]NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processFixedDataArray", data) +} + +// ProcessFixedDataArray is a paid mutator transaction binding the contract method 0x99adad2e. +// +// Solidity: function processFixedDataArray((string,uint256[])[3] data) returns((string,uint256[])[2]) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessFixedDataArray(data [3]NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessFixedDataArray(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessFixedDataArray is a paid mutator transaction binding the contract method 0x99adad2e. +// +// Solidity: function processFixedDataArray((string,uint256[])[3] data) returns((string,uint256[])[2]) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessFixedDataArray(data [3]NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessFixedDataArray(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessNestedData is a paid mutator transaction binding the contract method 0x7f12881c. +// +// Solidity: function processNestedData(((string,uint256[]),bytes) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessNestedData(opts *bind.TransactOpts, data NetworkDebugContractNestedData) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processNestedData", data) +} + +// ProcessNestedData is a paid mutator transaction binding the contract method 0x7f12881c. +// +// Solidity: function processNestedData(((string,uint256[]),bytes) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessNestedData(data NetworkDebugContractNestedData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessNestedData(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessNestedData is a paid mutator transaction binding the contract method 0x7f12881c. +// +// Solidity: function processNestedData(((string,uint256[]),bytes) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessNestedData(data NetworkDebugContractNestedData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessNestedData(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessNestedData0 is a paid mutator transaction binding the contract method 0xf499af2a. +// +// Solidity: function processNestedData((string,uint256[]) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessNestedData0(opts *bind.TransactOpts, data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processNestedData0", data) +} + +// ProcessNestedData0 is a paid mutator transaction binding the contract method 0xf499af2a. +// +// Solidity: function processNestedData((string,uint256[]) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessNestedData0(data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessNestedData0(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessNestedData0 is a paid mutator transaction binding the contract method 0xf499af2a. +// +// Solidity: function processNestedData((string,uint256[]) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessNestedData0(data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessNestedData0(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessUintArray is a paid mutator transaction binding the contract method 0x12d91233. +// +// Solidity: function processUintArray(uint256[] input) returns(uint256[]) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessUintArray(opts *bind.TransactOpts, input []*big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processUintArray", input) +} + +// ProcessUintArray is a paid mutator transaction binding the contract method 0x12d91233. +// +// Solidity: function processUintArray(uint256[] input) returns(uint256[]) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessUintArray(input []*big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessUintArray(&_NetworkDebugContract.TransactOpts, input) +} + +// ProcessUintArray is a paid mutator transaction binding the contract method 0x12d91233. +// +// Solidity: function processUintArray(uint256[] input) returns(uint256[]) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessUintArray(input []*big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessUintArray(&_NetworkDebugContract.TransactOpts, input) +} + +// ResetCounter is a paid mutator transaction binding the contract method 0xf3396bd9. +// +// Solidity: function resetCounter(int256 idx) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) ResetCounter(opts *bind.TransactOpts, idx *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "resetCounter", idx) +} + +// ResetCounter is a paid mutator transaction binding the contract method 0xf3396bd9. +// +// Solidity: function resetCounter(int256 idx) returns() +func (_NetworkDebugContract *NetworkDebugContractSession) ResetCounter(idx *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ResetCounter(&_NetworkDebugContract.TransactOpts, idx) +} + +// ResetCounter is a paid mutator transaction binding the contract method 0xf3396bd9. +// +// Solidity: function resetCounter(int256 idx) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ResetCounter(idx *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ResetCounter(&_NetworkDebugContract.TransactOpts, idx) +} + +// Set is a paid mutator transaction binding the contract method 0xe5c19b2d. +// +// Solidity: function set(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactor) Set(opts *bind.TransactOpts, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "set", x) +} + +// Set is a paid mutator transaction binding the contract method 0xe5c19b2d. +// +// Solidity: function set(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractSession) Set(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Set(&_NetworkDebugContract.TransactOpts, x) +} + +// Set is a paid mutator transaction binding the contract method 0xe5c19b2d. +// +// Solidity: function set(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Set(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Set(&_NetworkDebugContract.TransactOpts, x) +} + +// SetMap is a paid mutator transaction binding the contract method 0xe8116e28. +// +// Solidity: function setMap(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactor) SetMap(opts *bind.TransactOpts, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "setMap", x) +} + +// SetMap is a paid mutator transaction binding the contract method 0xe8116e28. +// +// Solidity: function setMap(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractSession) SetMap(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.SetMap(&_NetworkDebugContract.TransactOpts, x) +} + +// SetMap is a paid mutator transaction binding the contract method 0xe8116e28. +// +// Solidity: function setMap(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) SetMap(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.SetMap(&_NetworkDebugContract.TransactOpts, x) +} + +// SetStatus is a paid mutator transaction binding the contract method 0x2e49d78b. +// +// Solidity: function setStatus(uint8 status) returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractTransactor) SetStatus(opts *bind.TransactOpts, status uint8) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "setStatus", status) +} + +// SetStatus is a paid mutator transaction binding the contract method 0x2e49d78b. +// +// Solidity: function setStatus(uint8 status) returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractSession) SetStatus(status uint8) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.SetStatus(&_NetworkDebugContract.TransactOpts, status) +} + +// SetStatus is a paid mutator transaction binding the contract method 0x2e49d78b. +// +// Solidity: function setStatus(uint8 status) returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) SetStatus(status uint8) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.SetStatus(&_NetworkDebugContract.TransactOpts, status) +} + +// Trace is a paid mutator transaction binding the contract method 0x3e41f135. +// +// Solidity: function trace(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) Trace(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "trace", x, y) +} + +// Trace is a paid mutator transaction binding the contract method 0x3e41f135. +// +// Solidity: function trace(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) Trace(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Trace(&_NetworkDebugContract.TransactOpts, x, y) +} + +// Trace is a paid mutator transaction binding the contract method 0x3e41f135. +// +// Solidity: function trace(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Trace(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Trace(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceDifferent is a paid mutator transaction binding the contract method 0x30985bcc. +// +// Solidity: function traceDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) TraceDifferent(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "traceDifferent", x, y) +} + +// TraceDifferent is a paid mutator transaction binding the contract method 0x30985bcc. +// +// Solidity: function traceDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) TraceDifferent(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceDifferent(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceDifferent is a paid mutator transaction binding the contract method 0x30985bcc. +// +// Solidity: function traceDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) TraceDifferent(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceDifferent(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceSubWithCallback is a paid mutator transaction binding the contract method 0x3837a75e. +// +// Solidity: function traceSubWithCallback(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) TraceSubWithCallback(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "traceSubWithCallback", x, y) +} + +// TraceSubWithCallback is a paid mutator transaction binding the contract method 0x3837a75e. +// +// Solidity: function traceSubWithCallback(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) TraceSubWithCallback(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceSubWithCallback(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceSubWithCallback is a paid mutator transaction binding the contract method 0x3837a75e. +// +// Solidity: function traceSubWithCallback(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) TraceSubWithCallback(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceSubWithCallback(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceWithValidate is a paid mutator transaction binding the contract method 0xb1ae9d85. +// +// Solidity: function traceWithValidate(int256 x, int256 y) payable returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) TraceWithValidate(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "traceWithValidate", x, y) +} + +// TraceWithValidate is a paid mutator transaction binding the contract method 0xb1ae9d85. +// +// Solidity: function traceWithValidate(int256 x, int256 y) payable returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) TraceWithValidate(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceWithValidate(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceWithValidate is a paid mutator transaction binding the contract method 0xb1ae9d85. +// +// Solidity: function traceWithValidate(int256 x, int256 y) payable returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) TraceWithValidate(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceWithValidate(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceYetDifferent is a paid mutator transaction binding the contract method 0x58379d71. +// +// Solidity: function traceYetDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) TraceYetDifferent(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "traceYetDifferent", x, y) +} + +// TraceYetDifferent is a paid mutator transaction binding the contract method 0x58379d71. +// +// Solidity: function traceYetDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) TraceYetDifferent(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceYetDifferent(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceYetDifferent is a paid mutator transaction binding the contract method 0x58379d71. +// +// Solidity: function traceYetDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) TraceYetDifferent(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceYetDifferent(&_NetworkDebugContract.TransactOpts, x, y) +} + +// Validate is a paid mutator transaction binding the contract method 0x04d8215b. +// +// Solidity: function validate(int256 x, int256 y) returns(bool) +func (_NetworkDebugContract *NetworkDebugContractTransactor) Validate(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "validate", x, y) +} + +// Validate is a paid mutator transaction binding the contract method 0x04d8215b. +// +// Solidity: function validate(int256 x, int256 y) returns(bool) +func (_NetworkDebugContract *NetworkDebugContractSession) Validate(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Validate(&_NetworkDebugContract.TransactOpts, x, y) +} + +// Validate is a paid mutator transaction binding the contract method 0x04d8215b. +// +// Solidity: function validate(int256 x, int256 y) returns(bool) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Validate(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Validate(&_NetworkDebugContract.TransactOpts, x, y) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) { + return _NetworkDebugContract.contract.RawTransact(opts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_NetworkDebugContract *NetworkDebugContractSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Fallback(&_NetworkDebugContract.TransactOpts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Fallback(&_NetworkDebugContract.TransactOpts, calldata) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.RawTransact(opts, nil) // calldata is disallowed for receive function +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_NetworkDebugContract *NetworkDebugContractSession) Receive() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Receive(&_NetworkDebugContract.TransactOpts) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Receive() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Receive(&_NetworkDebugContract.TransactOpts) +} + +// NetworkDebugContractCallDataLengthIterator is returned from FilterCallDataLength and is used to iterate over the raw logs and unpacked data for CallDataLength events raised by the NetworkDebugContract contract. +type NetworkDebugContractCallDataLengthIterator struct { + Event *NetworkDebugContractCallDataLength // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractCallDataLengthIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCallDataLength) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCallDataLength) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractCallDataLengthIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractCallDataLengthIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractCallDataLength represents a CallDataLength event raised by the NetworkDebugContract contract. +type NetworkDebugContractCallDataLength struct { + Length *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCallDataLength is a free log retrieval operation binding the contract event 0x962c5df4c8ad201a4f54a88f47715bb2cf291d019e350e2dff50ca6fc0f5d0ed. +// +// Solidity: event CallDataLength(uint256 length) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterCallDataLength(opts *bind.FilterOpts) (*NetworkDebugContractCallDataLengthIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "CallDataLength") + if err != nil { + return nil, err + } + return &NetworkDebugContractCallDataLengthIterator{contract: _NetworkDebugContract.contract, event: "CallDataLength", logs: logs, sub: sub}, nil +} + +// WatchCallDataLength is a free log subscription operation binding the contract event 0x962c5df4c8ad201a4f54a88f47715bb2cf291d019e350e2dff50ca6fc0f5d0ed. +// +// Solidity: event CallDataLength(uint256 length) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchCallDataLength(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractCallDataLength) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "CallDataLength") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractCallDataLength) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CallDataLength", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCallDataLength is a log parse operation binding the contract event 0x962c5df4c8ad201a4f54a88f47715bb2cf291d019e350e2dff50ca6fc0f5d0ed. +// +// Solidity: event CallDataLength(uint256 length) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseCallDataLength(log types.Log) (*NetworkDebugContractCallDataLength, error) { + event := new(NetworkDebugContractCallDataLength) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CallDataLength", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractCallbackEventIterator is returned from FilterCallbackEvent and is used to iterate over the raw logs and unpacked data for CallbackEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractCallbackEventIterator struct { + Event *NetworkDebugContractCallbackEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractCallbackEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCallbackEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCallbackEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractCallbackEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractCallbackEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractCallbackEvent represents a CallbackEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractCallbackEvent struct { + A *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCallbackEvent is a free log retrieval operation binding the contract event 0xb16dba9242e1aa07ccc47228094628f72c8cc9699ee45d5bc8d67b84d3038c68. +// +// Solidity: event CallbackEvent(int256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterCallbackEvent(opts *bind.FilterOpts, a []*big.Int) (*NetworkDebugContractCallbackEventIterator, error) { + + var aRule []interface{} + for _, aItem := range a { + aRule = append(aRule, aItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "CallbackEvent", aRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractCallbackEventIterator{contract: _NetworkDebugContract.contract, event: "CallbackEvent", logs: logs, sub: sub}, nil +} + +// WatchCallbackEvent is a free log subscription operation binding the contract event 0xb16dba9242e1aa07ccc47228094628f72c8cc9699ee45d5bc8d67b84d3038c68. +// +// Solidity: event CallbackEvent(int256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchCallbackEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractCallbackEvent, a []*big.Int) (event.Subscription, error) { + + var aRule []interface{} + for _, aItem := range a { + aRule = append(aRule, aItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "CallbackEvent", aRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractCallbackEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CallbackEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCallbackEvent is a log parse operation binding the contract event 0xb16dba9242e1aa07ccc47228094628f72c8cc9699ee45d5bc8d67b84d3038c68. +// +// Solidity: event CallbackEvent(int256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseCallbackEvent(log types.Log) (*NetworkDebugContractCallbackEvent, error) { + event := new(NetworkDebugContractCallbackEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CallbackEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractCurrentStatusIterator is returned from FilterCurrentStatus and is used to iterate over the raw logs and unpacked data for CurrentStatus events raised by the NetworkDebugContract contract. +type NetworkDebugContractCurrentStatusIterator struct { + Event *NetworkDebugContractCurrentStatus // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractCurrentStatusIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCurrentStatus) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCurrentStatus) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractCurrentStatusIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractCurrentStatusIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractCurrentStatus represents a CurrentStatus event raised by the NetworkDebugContract contract. +type NetworkDebugContractCurrentStatus struct { + Status uint8 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCurrentStatus is a free log retrieval operation binding the contract event 0xbea054406fdf249b05d1aef1b5f848d62d902d94389fca702b2d8337677c359a. +// +// Solidity: event CurrentStatus(uint8 indexed status) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterCurrentStatus(opts *bind.FilterOpts, status []uint8) (*NetworkDebugContractCurrentStatusIterator, error) { + + var statusRule []interface{} + for _, statusItem := range status { + statusRule = append(statusRule, statusItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "CurrentStatus", statusRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractCurrentStatusIterator{contract: _NetworkDebugContract.contract, event: "CurrentStatus", logs: logs, sub: sub}, nil +} + +// WatchCurrentStatus is a free log subscription operation binding the contract event 0xbea054406fdf249b05d1aef1b5f848d62d902d94389fca702b2d8337677c359a. +// +// Solidity: event CurrentStatus(uint8 indexed status) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchCurrentStatus(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractCurrentStatus, status []uint8) (event.Subscription, error) { + + var statusRule []interface{} + for _, statusItem := range status { + statusRule = append(statusRule, statusItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "CurrentStatus", statusRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractCurrentStatus) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CurrentStatus", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCurrentStatus is a log parse operation binding the contract event 0xbea054406fdf249b05d1aef1b5f848d62d902d94389fca702b2d8337677c359a. +// +// Solidity: event CurrentStatus(uint8 indexed status) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseCurrentStatus(log types.Log) (*NetworkDebugContractCurrentStatus, error) { + event := new(NetworkDebugContractCurrentStatus) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CurrentStatus", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractEtherReceivedIterator is returned from FilterEtherReceived and is used to iterate over the raw logs and unpacked data for EtherReceived events raised by the NetworkDebugContract contract. +type NetworkDebugContractEtherReceivedIterator struct { + Event *NetworkDebugContractEtherReceived // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractEtherReceivedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractEtherReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractEtherReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractEtherReceivedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractEtherReceivedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractEtherReceived represents a EtherReceived event raised by the NetworkDebugContract contract. +type NetworkDebugContractEtherReceived struct { + Sender common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterEtherReceived is a free log retrieval operation binding the contract event 0x1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b. +// +// Solidity: event EtherReceived(address sender, uint256 amount) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterEtherReceived(opts *bind.FilterOpts) (*NetworkDebugContractEtherReceivedIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "EtherReceived") + if err != nil { + return nil, err + } + return &NetworkDebugContractEtherReceivedIterator{contract: _NetworkDebugContract.contract, event: "EtherReceived", logs: logs, sub: sub}, nil +} + +// WatchEtherReceived is a free log subscription operation binding the contract event 0x1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b. +// +// Solidity: event EtherReceived(address sender, uint256 amount) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchEtherReceived(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractEtherReceived) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "EtherReceived") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractEtherReceived) + if err := _NetworkDebugContract.contract.UnpackLog(event, "EtherReceived", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseEtherReceived is a log parse operation binding the contract event 0x1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b. +// +// Solidity: event EtherReceived(address sender, uint256 amount) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseEtherReceived(log types.Log) (*NetworkDebugContractEtherReceived, error) { + event := new(NetworkDebugContractEtherReceived) + if err := _NetworkDebugContract.contract.UnpackLog(event, "EtherReceived", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractIsValidEventIterator is returned from FilterIsValidEvent and is used to iterate over the raw logs and unpacked data for IsValidEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractIsValidEventIterator struct { + Event *NetworkDebugContractIsValidEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractIsValidEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractIsValidEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractIsValidEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractIsValidEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractIsValidEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractIsValidEvent represents a IsValidEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractIsValidEvent struct { + Success bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterIsValidEvent is a free log retrieval operation binding the contract event 0xdfac7500004753b91139af55816e7eade36d96faec68b343f77ed66b89912a7b. +// +// Solidity: event IsValidEvent(bool success) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterIsValidEvent(opts *bind.FilterOpts) (*NetworkDebugContractIsValidEventIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "IsValidEvent") + if err != nil { + return nil, err + } + return &NetworkDebugContractIsValidEventIterator{contract: _NetworkDebugContract.contract, event: "IsValidEvent", logs: logs, sub: sub}, nil +} + +// WatchIsValidEvent is a free log subscription operation binding the contract event 0xdfac7500004753b91139af55816e7eade36d96faec68b343f77ed66b89912a7b. +// +// Solidity: event IsValidEvent(bool success) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchIsValidEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractIsValidEvent) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "IsValidEvent") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractIsValidEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "IsValidEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseIsValidEvent is a log parse operation binding the contract event 0xdfac7500004753b91139af55816e7eade36d96faec68b343f77ed66b89912a7b. +// +// Solidity: event IsValidEvent(bool success) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseIsValidEvent(log types.Log) (*NetworkDebugContractIsValidEvent, error) { + event := new(NetworkDebugContractIsValidEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "IsValidEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractNoIndexEventIterator is returned from FilterNoIndexEvent and is used to iterate over the raw logs and unpacked data for NoIndexEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexEventIterator struct { + Event *NetworkDebugContractNoIndexEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractNoIndexEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractNoIndexEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractNoIndexEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractNoIndexEvent represents a NoIndexEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexEvent struct { + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterNoIndexEvent is a free log retrieval operation binding the contract event 0x33bc9bae48dbe1e057f264b3fc6a1dacdcceacb3ba28d937231c70e068a02f1c. +// +// Solidity: event NoIndexEvent(address sender) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterNoIndexEvent(opts *bind.FilterOpts) (*NetworkDebugContractNoIndexEventIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "NoIndexEvent") + if err != nil { + return nil, err + } + return &NetworkDebugContractNoIndexEventIterator{contract: _NetworkDebugContract.contract, event: "NoIndexEvent", logs: logs, sub: sub}, nil +} + +// WatchNoIndexEvent is a free log subscription operation binding the contract event 0x33bc9bae48dbe1e057f264b3fc6a1dacdcceacb3ba28d937231c70e068a02f1c. +// +// Solidity: event NoIndexEvent(address sender) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchNoIndexEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractNoIndexEvent) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "NoIndexEvent") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractNoIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseNoIndexEvent is a log parse operation binding the contract event 0x33bc9bae48dbe1e057f264b3fc6a1dacdcceacb3ba28d937231c70e068a02f1c. +// +// Solidity: event NoIndexEvent(address sender) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseNoIndexEvent(log types.Log) (*NetworkDebugContractNoIndexEvent, error) { + event := new(NetworkDebugContractNoIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractNoIndexEventStringIterator is returned from FilterNoIndexEventString and is used to iterate over the raw logs and unpacked data for NoIndexEventString events raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexEventStringIterator struct { + Event *NetworkDebugContractNoIndexEventString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractNoIndexEventStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexEventString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexEventString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractNoIndexEventStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractNoIndexEventStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractNoIndexEventString represents a NoIndexEventString event raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexEventString struct { + Str string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterNoIndexEventString is a free log retrieval operation binding the contract event 0x25b7adba1b046a19379db4bc06aa1f2e71604d7b599a0ee8783d58110f00e16a. +// +// Solidity: event NoIndexEventString(string str) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterNoIndexEventString(opts *bind.FilterOpts) (*NetworkDebugContractNoIndexEventStringIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "NoIndexEventString") + if err != nil { + return nil, err + } + return &NetworkDebugContractNoIndexEventStringIterator{contract: _NetworkDebugContract.contract, event: "NoIndexEventString", logs: logs, sub: sub}, nil +} + +// WatchNoIndexEventString is a free log subscription operation binding the contract event 0x25b7adba1b046a19379db4bc06aa1f2e71604d7b599a0ee8783d58110f00e16a. +// +// Solidity: event NoIndexEventString(string str) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchNoIndexEventString(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractNoIndexEventString) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "NoIndexEventString") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractNoIndexEventString) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexEventString", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseNoIndexEventString is a log parse operation binding the contract event 0x25b7adba1b046a19379db4bc06aa1f2e71604d7b599a0ee8783d58110f00e16a. +// +// Solidity: event NoIndexEventString(string str) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseNoIndexEventString(log types.Log) (*NetworkDebugContractNoIndexEventString, error) { + event := new(NetworkDebugContractNoIndexEventString) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexEventString", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractNoIndexStructEventIterator is returned from FilterNoIndexStructEvent and is used to iterate over the raw logs and unpacked data for NoIndexStructEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexStructEventIterator struct { + Event *NetworkDebugContractNoIndexStructEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractNoIndexStructEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexStructEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexStructEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractNoIndexStructEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractNoIndexStructEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractNoIndexStructEvent represents a NoIndexStructEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexStructEvent struct { + A NetworkDebugContractAccount + Raw types.Log // Blockchain specific contextual infos +} + +// FilterNoIndexStructEvent is a free log retrieval operation binding the contract event 0xebe3ff7e2071d351bf2e65b4fccd24e3ae99485f02468f1feecf7d64dc044188. +// +// Solidity: event NoIndexStructEvent((string,uint64,uint256) a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterNoIndexStructEvent(opts *bind.FilterOpts) (*NetworkDebugContractNoIndexStructEventIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "NoIndexStructEvent") + if err != nil { + return nil, err + } + return &NetworkDebugContractNoIndexStructEventIterator{contract: _NetworkDebugContract.contract, event: "NoIndexStructEvent", logs: logs, sub: sub}, nil +} + +// WatchNoIndexStructEvent is a free log subscription operation binding the contract event 0xebe3ff7e2071d351bf2e65b4fccd24e3ae99485f02468f1feecf7d64dc044188. +// +// Solidity: event NoIndexStructEvent((string,uint64,uint256) a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchNoIndexStructEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractNoIndexStructEvent) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "NoIndexStructEvent") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractNoIndexStructEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexStructEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseNoIndexStructEvent is a log parse operation binding the contract event 0xebe3ff7e2071d351bf2e65b4fccd24e3ae99485f02468f1feecf7d64dc044188. +// +// Solidity: event NoIndexStructEvent((string,uint64,uint256) a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseNoIndexStructEvent(log types.Log) (*NetworkDebugContractNoIndexStructEvent, error) { + event := new(NetworkDebugContractNoIndexStructEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexStructEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractOneIndexEventIterator is returned from FilterOneIndexEvent and is used to iterate over the raw logs and unpacked data for OneIndexEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractOneIndexEventIterator struct { + Event *NetworkDebugContractOneIndexEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractOneIndexEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractOneIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractOneIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractOneIndexEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractOneIndexEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractOneIndexEvent represents a OneIndexEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractOneIndexEvent struct { + A *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOneIndexEvent is a free log retrieval operation binding the contract event 0xeace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b35. +// +// Solidity: event OneIndexEvent(uint256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterOneIndexEvent(opts *bind.FilterOpts, a []*big.Int) (*NetworkDebugContractOneIndexEventIterator, error) { + + var aRule []interface{} + for _, aItem := range a { + aRule = append(aRule, aItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "OneIndexEvent", aRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractOneIndexEventIterator{contract: _NetworkDebugContract.contract, event: "OneIndexEvent", logs: logs, sub: sub}, nil +} + +// WatchOneIndexEvent is a free log subscription operation binding the contract event 0xeace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b35. +// +// Solidity: event OneIndexEvent(uint256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchOneIndexEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractOneIndexEvent, a []*big.Int) (event.Subscription, error) { + + var aRule []interface{} + for _, aItem := range a { + aRule = append(aRule, aItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "OneIndexEvent", aRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractOneIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "OneIndexEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOneIndexEvent is a log parse operation binding the contract event 0xeace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b35. +// +// Solidity: event OneIndexEvent(uint256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseOneIndexEvent(log types.Log) (*NetworkDebugContractOneIndexEvent, error) { + event := new(NetworkDebugContractOneIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "OneIndexEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractReceivedIterator is returned from FilterReceived and is used to iterate over the raw logs and unpacked data for Received events raised by the NetworkDebugContract contract. +type NetworkDebugContractReceivedIterator struct { + Event *NetworkDebugContractReceived // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractReceivedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractReceivedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractReceivedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractReceived represents a Received event raised by the NetworkDebugContract contract. +type NetworkDebugContractReceived struct { + Caller common.Address + Amount *big.Int + Message string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceived is a free log retrieval operation binding the contract event 0x59e04c3f0d44b7caf6e8ef854b61d9a51cf1960d7a88ff6356cc5e946b4b5832. +// +// Solidity: event Received(address caller, uint256 amount, string message) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterReceived(opts *bind.FilterOpts) (*NetworkDebugContractReceivedIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "Received") + if err != nil { + return nil, err + } + return &NetworkDebugContractReceivedIterator{contract: _NetworkDebugContract.contract, event: "Received", logs: logs, sub: sub}, nil +} + +// WatchReceived is a free log subscription operation binding the contract event 0x59e04c3f0d44b7caf6e8ef854b61d9a51cf1960d7a88ff6356cc5e946b4b5832. +// +// Solidity: event Received(address caller, uint256 amount, string message) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchReceived(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractReceived) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "Received") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractReceived) + if err := _NetworkDebugContract.contract.UnpackLog(event, "Received", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceived is a log parse operation binding the contract event 0x59e04c3f0d44b7caf6e8ef854b61d9a51cf1960d7a88ff6356cc5e946b4b5832. +// +// Solidity: event Received(address caller, uint256 amount, string message) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseReceived(log types.Log) (*NetworkDebugContractReceived, error) { + event := new(NetworkDebugContractReceived) + if err := _NetworkDebugContract.contract.UnpackLog(event, "Received", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator is returned from FilterThreeIndexAndOneNonIndexedEvent and is used to iterate over the raw logs and unpacked data for ThreeIndexAndOneNonIndexedEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator struct { + Event *NetworkDebugContractThreeIndexAndOneNonIndexedEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractThreeIndexAndOneNonIndexedEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractThreeIndexAndOneNonIndexedEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractThreeIndexAndOneNonIndexedEvent represents a ThreeIndexAndOneNonIndexedEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractThreeIndexAndOneNonIndexedEvent struct { + RoundId *big.Int + StartedBy common.Address + StartedAt *big.Int + DataId string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterThreeIndexAndOneNonIndexedEvent is a free log retrieval operation binding the contract event 0x56c2ea44ba516098cee0c181dd9d8db262657368b6e911e83ae0ccfae806c73d. +// +// Solidity: event ThreeIndexAndOneNonIndexedEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt, string dataId) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterThreeIndexAndOneNonIndexedEvent(opts *bind.FilterOpts, roundId []*big.Int, startedBy []common.Address, startedAt []*big.Int) (*NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + var startedAtRule []interface{} + for _, startedAtItem := range startedAt { + startedAtRule = append(startedAtRule, startedAtItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "ThreeIndexAndOneNonIndexedEvent", roundIdRule, startedByRule, startedAtRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator{contract: _NetworkDebugContract.contract, event: "ThreeIndexAndOneNonIndexedEvent", logs: logs, sub: sub}, nil +} + +// WatchThreeIndexAndOneNonIndexedEvent is a free log subscription operation binding the contract event 0x56c2ea44ba516098cee0c181dd9d8db262657368b6e911e83ae0ccfae806c73d. +// +// Solidity: event ThreeIndexAndOneNonIndexedEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt, string dataId) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchThreeIndexAndOneNonIndexedEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractThreeIndexAndOneNonIndexedEvent, roundId []*big.Int, startedBy []common.Address, startedAt []*big.Int) (event.Subscription, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + var startedAtRule []interface{} + for _, startedAtItem := range startedAt { + startedAtRule = append(startedAtRule, startedAtItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "ThreeIndexAndOneNonIndexedEvent", roundIdRule, startedByRule, startedAtRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractThreeIndexAndOneNonIndexedEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "ThreeIndexAndOneNonIndexedEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseThreeIndexAndOneNonIndexedEvent is a log parse operation binding the contract event 0x56c2ea44ba516098cee0c181dd9d8db262657368b6e911e83ae0ccfae806c73d. +// +// Solidity: event ThreeIndexAndOneNonIndexedEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt, string dataId) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseThreeIndexAndOneNonIndexedEvent(log types.Log) (*NetworkDebugContractThreeIndexAndOneNonIndexedEvent, error) { + event := new(NetworkDebugContractThreeIndexAndOneNonIndexedEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "ThreeIndexAndOneNonIndexedEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractThreeIndexEventIterator is returned from FilterThreeIndexEvent and is used to iterate over the raw logs and unpacked data for ThreeIndexEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractThreeIndexEventIterator struct { + Event *NetworkDebugContractThreeIndexEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractThreeIndexEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractThreeIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractThreeIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractThreeIndexEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractThreeIndexEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractThreeIndexEvent represents a ThreeIndexEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractThreeIndexEvent struct { + RoundId *big.Int + StartedBy common.Address + StartedAt *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterThreeIndexEvent is a free log retrieval operation binding the contract event 0x5660e8f93f0146f45abcd659e026b75995db50053cbbca4d7f365934ade68bf3. +// +// Solidity: event ThreeIndexEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterThreeIndexEvent(opts *bind.FilterOpts, roundId []*big.Int, startedBy []common.Address, startedAt []*big.Int) (*NetworkDebugContractThreeIndexEventIterator, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + var startedAtRule []interface{} + for _, startedAtItem := range startedAt { + startedAtRule = append(startedAtRule, startedAtItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "ThreeIndexEvent", roundIdRule, startedByRule, startedAtRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractThreeIndexEventIterator{contract: _NetworkDebugContract.contract, event: "ThreeIndexEvent", logs: logs, sub: sub}, nil +} + +// WatchThreeIndexEvent is a free log subscription operation binding the contract event 0x5660e8f93f0146f45abcd659e026b75995db50053cbbca4d7f365934ade68bf3. +// +// Solidity: event ThreeIndexEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchThreeIndexEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractThreeIndexEvent, roundId []*big.Int, startedBy []common.Address, startedAt []*big.Int) (event.Subscription, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + var startedAtRule []interface{} + for _, startedAtItem := range startedAt { + startedAtRule = append(startedAtRule, startedAtItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "ThreeIndexEvent", roundIdRule, startedByRule, startedAtRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractThreeIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "ThreeIndexEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseThreeIndexEvent is a log parse operation binding the contract event 0x5660e8f93f0146f45abcd659e026b75995db50053cbbca4d7f365934ade68bf3. +// +// Solidity: event ThreeIndexEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseThreeIndexEvent(log types.Log) (*NetworkDebugContractThreeIndexEvent, error) { + event := new(NetworkDebugContractThreeIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "ThreeIndexEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractTwoIndexEventIterator is returned from FilterTwoIndexEvent and is used to iterate over the raw logs and unpacked data for TwoIndexEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractTwoIndexEventIterator struct { + Event *NetworkDebugContractTwoIndexEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractTwoIndexEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractTwoIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractTwoIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractTwoIndexEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractTwoIndexEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractTwoIndexEvent represents a TwoIndexEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractTwoIndexEvent struct { + RoundId *big.Int + StartedBy common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTwoIndexEvent is a free log retrieval operation binding the contract event 0x33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b5. +// +// Solidity: event TwoIndexEvent(uint256 indexed roundId, address indexed startedBy) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterTwoIndexEvent(opts *bind.FilterOpts, roundId []*big.Int, startedBy []common.Address) (*NetworkDebugContractTwoIndexEventIterator, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "TwoIndexEvent", roundIdRule, startedByRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractTwoIndexEventIterator{contract: _NetworkDebugContract.contract, event: "TwoIndexEvent", logs: logs, sub: sub}, nil +} + +// WatchTwoIndexEvent is a free log subscription operation binding the contract event 0x33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b5. +// +// Solidity: event TwoIndexEvent(uint256 indexed roundId, address indexed startedBy) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchTwoIndexEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractTwoIndexEvent, roundId []*big.Int, startedBy []common.Address) (event.Subscription, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "TwoIndexEvent", roundIdRule, startedByRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractTwoIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "TwoIndexEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTwoIndexEvent is a log parse operation binding the contract event 0x33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b5. +// +// Solidity: event TwoIndexEvent(uint256 indexed roundId, address indexed startedBy) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseTwoIndexEvent(log types.Log) (*NetworkDebugContractTwoIndexEvent, error) { + event := new(NetworkDebugContractTwoIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "TwoIndexEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/seth/contracts/noMetaDataContractDir/NetworkDebugContract_Broken.go b/seth/contracts/noMetaDataContractDir/NetworkDebugContract_Broken.go new file mode 100644 index 000000000..3ec523ee8 --- /dev/null +++ b/seth/contracts/noMetaDataContractDir/NetworkDebugContract_Broken.go @@ -0,0 +1,3285 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package network_debug_contract + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// NetworkDebugContractAccount is an auto generated low-level Go binding around an user-defined struct. +type NetworkDebugContractAccount struct { + Name string + Balance uint64 + DailyLimit *big.Int +} + +// NetworkDebugContractData is an auto generated low-level Go binding around an user-defined struct. +type NetworkDebugContractData struct { + Name string + Values []*big.Int +} + +// NetworkDebugContractNestedData is an auto generated low-level Go binding around an user-defined struct. +type NetworkDebugContractNestedData struct { + Data NetworkDebugContractData + DynamicBytes []byte +} + + +// NetworkDebugContractABI is the input ABI used to generate the binding from. +// Deprecated: Use NetworkDebugContractMetaData.ABI instead. +var NetworkDebugContractABI = abi.ABI{} + +// NetworkDebugContractBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use NetworkDebugContractMetaData.Bin instead. +var NetworkDebugContractBin = "" + +// DeployNetworkDebugContract deploys a new Ethereum contract, binding an instance of NetworkDebugContract to it. +func DeployNetworkDebugContract(auth *bind.TransactOpts, backend bind.ContractBackend, subAddr common.Address) (common.Address, *types.Transaction, *NetworkDebugContract, error) { + parsed, err := func() (*abi.ABI, error) { + return &abi.ABI{}, errors.New("This is a broken contract. Don't try to deploy it") + }() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(NetworkDebugContractBin), backend, subAddr) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &NetworkDebugContract{NetworkDebugContractCaller: NetworkDebugContractCaller{contract: contract}, NetworkDebugContractTransactor: NetworkDebugContractTransactor{contract: contract}, NetworkDebugContractFilterer: NetworkDebugContractFilterer{contract: contract}}, nil +} + +// NetworkDebugContract is an auto generated Go binding around an Ethereum contract. +type NetworkDebugContract struct { + NetworkDebugContractCaller // Read-only binding to the contract + NetworkDebugContractTransactor // Write-only binding to the contract + NetworkDebugContractFilterer // Log filterer for contract events +} + +// NetworkDebugContractCaller is an auto generated read-only Go binding around an Ethereum contract. +type NetworkDebugContractCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// NetworkDebugContractTransactor is an auto generated write-only Go binding around an Ethereum contract. +type NetworkDebugContractTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// NetworkDebugContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type NetworkDebugContractFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// NetworkDebugContractSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type NetworkDebugContractSession struct { + Contract *NetworkDebugContract // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// NetworkDebugContractCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type NetworkDebugContractCallerSession struct { + Contract *NetworkDebugContractCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// NetworkDebugContractTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type NetworkDebugContractTransactorSession struct { + Contract *NetworkDebugContractTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// NetworkDebugContractRaw is an auto generated low-level Go binding around an Ethereum contract. +type NetworkDebugContractRaw struct { + Contract *NetworkDebugContract // Generic contract binding to access the raw methods on +} + +// NetworkDebugContractCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type NetworkDebugContractCallerRaw struct { + Contract *NetworkDebugContractCaller // Generic read-only contract binding to access the raw methods on +} + +// NetworkDebugContractTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type NetworkDebugContractTransactorRaw struct { + Contract *NetworkDebugContractTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewNetworkDebugContract creates a new instance of NetworkDebugContract, bound to a specific deployed contract. +func NewNetworkDebugContract(address common.Address, backend bind.ContractBackend) (*NetworkDebugContract, error) { + contract, err := bindNetworkDebugContract(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &NetworkDebugContract{NetworkDebugContractCaller: NetworkDebugContractCaller{contract: contract}, NetworkDebugContractTransactor: NetworkDebugContractTransactor{contract: contract}, NetworkDebugContractFilterer: NetworkDebugContractFilterer{contract: contract}}, nil +} + +// NewNetworkDebugContractCaller creates a new read-only instance of NetworkDebugContract, bound to a specific deployed contract. +func NewNetworkDebugContractCaller(address common.Address, caller bind.ContractCaller) (*NetworkDebugContractCaller, error) { + contract, err := bindNetworkDebugContract(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &NetworkDebugContractCaller{contract: contract}, nil +} + +// NewNetworkDebugContractTransactor creates a new write-only instance of NetworkDebugContract, bound to a specific deployed contract. +func NewNetworkDebugContractTransactor(address common.Address, transactor bind.ContractTransactor) (*NetworkDebugContractTransactor, error) { + contract, err := bindNetworkDebugContract(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &NetworkDebugContractTransactor{contract: contract}, nil +} + +// NewNetworkDebugContractFilterer creates a new log filterer instance of NetworkDebugContract, bound to a specific deployed contract. +func NewNetworkDebugContractFilterer(address common.Address, filterer bind.ContractFilterer) (*NetworkDebugContractFilterer, error) { + contract, err := bindNetworkDebugContract(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &NetworkDebugContractFilterer{contract: contract}, nil +} + +// bindNetworkDebugContract binds a generic wrapper to an already deployed contract. +func bindNetworkDebugContract(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := func() (*abi.ABI, error) { + return &abi.ABI{}, errors.New("This is a broken contract. Don't try to deploy it") + }() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_NetworkDebugContract *NetworkDebugContractRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _NetworkDebugContract.Contract.NetworkDebugContractCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_NetworkDebugContract *NetworkDebugContractRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.NetworkDebugContractTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_NetworkDebugContract *NetworkDebugContractRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.NetworkDebugContractTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_NetworkDebugContract *NetworkDebugContractCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _NetworkDebugContract.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_NetworkDebugContract *NetworkDebugContractTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_NetworkDebugContract *NetworkDebugContractTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.contract.Transact(opts, method, params...) +} + +// CounterMap is a free data retrieval call binding the contract method 0x6284117d. +// +// Solidity: function counterMap(int256 ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCaller) CounterMap(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "counterMap", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// CounterMap is a free data retrieval call binding the contract method 0x6284117d. +// +// Solidity: function counterMap(int256 ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) CounterMap(arg0 *big.Int) (*big.Int, error) { + return _NetworkDebugContract.Contract.CounterMap(&_NetworkDebugContract.CallOpts, arg0) +} + +// CounterMap is a free data retrieval call binding the contract method 0x6284117d. +// +// Solidity: function counterMap(int256 ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) CounterMap(arg0 *big.Int) (*big.Int, error) { + return _NetworkDebugContract.Contract.CounterMap(&_NetworkDebugContract.CallOpts, arg0) +} + +// CurrentStatus is a free data retrieval call binding the contract method 0xef8a9235. +// +// Solidity: function currentStatus() view returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractCaller) CurrentStatus(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "currentStatus") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// CurrentStatus is a free data retrieval call binding the contract method 0xef8a9235. +// +// Solidity: function currentStatus() view returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractSession) CurrentStatus() (uint8, error) { + return _NetworkDebugContract.Contract.CurrentStatus(&_NetworkDebugContract.CallOpts) +} + +// CurrentStatus is a free data retrieval call binding the contract method 0xef8a9235. +// +// Solidity: function currentStatus() view returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) CurrentStatus() (uint8, error) { + return _NetworkDebugContract.Contract.CurrentStatus(&_NetworkDebugContract.CallOpts) +} + +// Get is a free data retrieval call binding the contract method 0x6d4ce63c. +// +// Solidity: function get() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCaller) Get(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "get") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Get is a free data retrieval call binding the contract method 0x6d4ce63c. +// +// Solidity: function get() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractSession) Get() (*big.Int, error) { + return _NetworkDebugContract.Contract.Get(&_NetworkDebugContract.CallOpts) +} + +// Get is a free data retrieval call binding the contract method 0x6d4ce63c. +// +// Solidity: function get() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) Get() (*big.Int, error) { + return _NetworkDebugContract.Contract.Get(&_NetworkDebugContract.CallOpts) +} + +// GetCounter is a free data retrieval call binding the contract method 0x5921483f. +// +// Solidity: function getCounter(int256 idx) view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCaller) GetCounter(opts *bind.CallOpts, idx *big.Int) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "getCounter", idx) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetCounter is a free data retrieval call binding the contract method 0x5921483f. +// +// Solidity: function getCounter(int256 idx) view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractSession) GetCounter(idx *big.Int) (*big.Int, error) { + return _NetworkDebugContract.Contract.GetCounter(&_NetworkDebugContract.CallOpts, idx) +} + +// GetCounter is a free data retrieval call binding the contract method 0x5921483f. +// +// Solidity: function getCounter(int256 idx) view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) GetCounter(idx *big.Int) (*big.Int, error) { + return _NetworkDebugContract.Contract.GetCounter(&_NetworkDebugContract.CallOpts, idx) +} + +// GetData is a free data retrieval call binding the contract method 0x3bc5de30. +// +// Solidity: function getData() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractCaller) GetData(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "getData") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetData is a free data retrieval call binding the contract method 0x3bc5de30. +// +// Solidity: function getData() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractSession) GetData() (*big.Int, error) { + return _NetworkDebugContract.Contract.GetData(&_NetworkDebugContract.CallOpts) +} + +// GetData is a free data retrieval call binding the contract method 0x3bc5de30. +// +// Solidity: function getData() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) GetData() (*big.Int, error) { + return _NetworkDebugContract.Contract.GetData(&_NetworkDebugContract.CallOpts) +} + +// GetMap is a free data retrieval call binding the contract method 0xad3de14c. +// +// Solidity: function getMap() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCaller) GetMap(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "getMap") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetMap is a free data retrieval call binding the contract method 0xad3de14c. +// +// Solidity: function getMap() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractSession) GetMap() (*big.Int, error) { + return _NetworkDebugContract.Contract.GetMap(&_NetworkDebugContract.CallOpts) +} + +// GetMap is a free data retrieval call binding the contract method 0xad3de14c. +// +// Solidity: function getMap() view returns(int256 data) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) GetMap() (*big.Int, error) { + return _NetworkDebugContract.Contract.GetMap(&_NetworkDebugContract.CallOpts) +} + +// PerformStaticCall is a free data retrieval call binding the contract method 0x3170428e. +// +// Solidity: function performStaticCall() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractCaller) PerformStaticCall(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "performStaticCall") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// PerformStaticCall is a free data retrieval call binding the contract method 0x3170428e. +// +// Solidity: function performStaticCall() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractSession) PerformStaticCall() (*big.Int, error) { + return _NetworkDebugContract.Contract.PerformStaticCall(&_NetworkDebugContract.CallOpts) +} + +// PerformStaticCall is a free data retrieval call binding the contract method 0x3170428e. +// +// Solidity: function performStaticCall() view returns(uint256) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) PerformStaticCall() (*big.Int, error) { + return _NetworkDebugContract.Contract.PerformStaticCall(&_NetworkDebugContract.CallOpts) +} + +// StoredData is a free data retrieval call binding the contract method 0x2a1afcd9. +// +// Solidity: function storedData() view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCaller) StoredData(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "storedData") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// StoredData is a free data retrieval call binding the contract method 0x2a1afcd9. +// +// Solidity: function storedData() view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) StoredData() (*big.Int, error) { + return _NetworkDebugContract.Contract.StoredData(&_NetworkDebugContract.CallOpts) +} + +// StoredData is a free data retrieval call binding the contract method 0x2a1afcd9. +// +// Solidity: function storedData() view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) StoredData() (*big.Int, error) { + return _NetworkDebugContract.Contract.StoredData(&_NetworkDebugContract.CallOpts) +} + +// StoredDataMap is a free data retrieval call binding the contract method 0x48ad9fe8. +// +// Solidity: function storedDataMap(address ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCaller) StoredDataMap(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "storedDataMap", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// StoredDataMap is a free data retrieval call binding the contract method 0x48ad9fe8. +// +// Solidity: function storedDataMap(address ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) StoredDataMap(arg0 common.Address) (*big.Int, error) { + return _NetworkDebugContract.Contract.StoredDataMap(&_NetworkDebugContract.CallOpts, arg0) +} + +// StoredDataMap is a free data retrieval call binding the contract method 0x48ad9fe8. +// +// Solidity: function storedDataMap(address ) view returns(int256) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) StoredDataMap(arg0 common.Address) (*big.Int, error) { + return _NetworkDebugContract.Contract.StoredDataMap(&_NetworkDebugContract.CallOpts, arg0) +} + +// SubContract is a free data retrieval call binding the contract method 0xc0d06d89. +// +// Solidity: function subContract() view returns(address) +func (_NetworkDebugContract *NetworkDebugContractCaller) SubContract(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _NetworkDebugContract.contract.Call(opts, &out, "subContract") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// SubContract is a free data retrieval call binding the contract method 0xc0d06d89. +// +// Solidity: function subContract() view returns(address) +func (_NetworkDebugContract *NetworkDebugContractSession) SubContract() (common.Address, error) { + return _NetworkDebugContract.Contract.SubContract(&_NetworkDebugContract.CallOpts) +} + +// SubContract is a free data retrieval call binding the contract method 0xc0d06d89. +// +// Solidity: function subContract() view returns(address) +func (_NetworkDebugContract *NetworkDebugContractCallerSession) SubContract() (common.Address, error) { + return _NetworkDebugContract.Contract.SubContract(&_NetworkDebugContract.CallOpts) +} + +// AddCounter is a paid mutator transaction binding the contract method 0x23515760. +// +// Solidity: function addCounter(int256 idx, int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactor) AddCounter(opts *bind.TransactOpts, idx *big.Int, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "addCounter", idx, x) +} + +// AddCounter is a paid mutator transaction binding the contract method 0x23515760. +// +// Solidity: function addCounter(int256 idx, int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractSession) AddCounter(idx *big.Int, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AddCounter(&_NetworkDebugContract.TransactOpts, idx, x) +} + +// AddCounter is a paid mutator transaction binding the contract method 0x23515760. +// +// Solidity: function addCounter(int256 idx, int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) AddCounter(idx *big.Int, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AddCounter(&_NetworkDebugContract.TransactOpts, idx, x) +} + +// AlwaysRevertsAssert is a paid mutator transaction binding the contract method 0x256560d5. +// +// Solidity: function alwaysRevertsAssert() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) AlwaysRevertsAssert(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "alwaysRevertsAssert") +} + +// AlwaysRevertsAssert is a paid mutator transaction binding the contract method 0x256560d5. +// +// Solidity: function alwaysRevertsAssert() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) AlwaysRevertsAssert() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsAssert(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsAssert is a paid mutator transaction binding the contract method 0x256560d5. +// +// Solidity: function alwaysRevertsAssert() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) AlwaysRevertsAssert() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsAssert(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsCustomError is a paid mutator transaction binding the contract method 0x5e9c80d6. +// +// Solidity: function alwaysRevertsCustomError() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) AlwaysRevertsCustomError(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "alwaysRevertsCustomError") +} + +// AlwaysRevertsCustomError is a paid mutator transaction binding the contract method 0x5e9c80d6. +// +// Solidity: function alwaysRevertsCustomError() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) AlwaysRevertsCustomError() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsCustomError(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsCustomError is a paid mutator transaction binding the contract method 0x5e9c80d6. +// +// Solidity: function alwaysRevertsCustomError() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) AlwaysRevertsCustomError() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsCustomError(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsCustomErrorNoValues is a paid mutator transaction binding the contract method 0xb600141f. +// +// Solidity: function alwaysRevertsCustomErrorNoValues() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) AlwaysRevertsCustomErrorNoValues(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "alwaysRevertsCustomErrorNoValues") +} + +// AlwaysRevertsCustomErrorNoValues is a paid mutator transaction binding the contract method 0xb600141f. +// +// Solidity: function alwaysRevertsCustomErrorNoValues() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) AlwaysRevertsCustomErrorNoValues() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsCustomErrorNoValues(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsCustomErrorNoValues is a paid mutator transaction binding the contract method 0xb600141f. +// +// Solidity: function alwaysRevertsCustomErrorNoValues() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) AlwaysRevertsCustomErrorNoValues() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsCustomErrorNoValues(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsRequire is a paid mutator transaction binding the contract method 0x06595f75. +// +// Solidity: function alwaysRevertsRequire() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) AlwaysRevertsRequire(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "alwaysRevertsRequire") +} + +// AlwaysRevertsRequire is a paid mutator transaction binding the contract method 0x06595f75. +// +// Solidity: function alwaysRevertsRequire() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) AlwaysRevertsRequire() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsRequire(&_NetworkDebugContract.TransactOpts) +} + +// AlwaysRevertsRequire is a paid mutator transaction binding the contract method 0x06595f75. +// +// Solidity: function alwaysRevertsRequire() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) AlwaysRevertsRequire() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.AlwaysRevertsRequire(&_NetworkDebugContract.TransactOpts) +} + +// CallRevertFunctionInSubContract is a paid mutator transaction binding the contract method 0x11b3c478. +// +// Solidity: function callRevertFunctionInSubContract(uint256 x, uint256 y) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) CallRevertFunctionInSubContract(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "callRevertFunctionInSubContract", x, y) +} + +// CallRevertFunctionInSubContract is a paid mutator transaction binding the contract method 0x11b3c478. +// +// Solidity: function callRevertFunctionInSubContract(uint256 x, uint256 y) returns() +func (_NetworkDebugContract *NetworkDebugContractSession) CallRevertFunctionInSubContract(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallRevertFunctionInSubContract(&_NetworkDebugContract.TransactOpts, x, y) +} + +// CallRevertFunctionInSubContract is a paid mutator transaction binding the contract method 0x11b3c478. +// +// Solidity: function callRevertFunctionInSubContract(uint256 x, uint256 y) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) CallRevertFunctionInSubContract(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallRevertFunctionInSubContract(&_NetworkDebugContract.TransactOpts, x, y) +} + +// CallRevertFunctionInTheContract is a paid mutator transaction binding the contract method 0x9349d00b. +// +// Solidity: function callRevertFunctionInTheContract() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) CallRevertFunctionInTheContract(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "callRevertFunctionInTheContract") +} + +// CallRevertFunctionInTheContract is a paid mutator transaction binding the contract method 0x9349d00b. +// +// Solidity: function callRevertFunctionInTheContract() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) CallRevertFunctionInTheContract() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallRevertFunctionInTheContract(&_NetworkDebugContract.TransactOpts) +} + +// CallRevertFunctionInTheContract is a paid mutator transaction binding the contract method 0x9349d00b. +// +// Solidity: function callRevertFunctionInTheContract() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) CallRevertFunctionInTheContract() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallRevertFunctionInTheContract(&_NetworkDebugContract.TransactOpts) +} + +// CallbackMethod is a paid mutator transaction binding the contract method 0xfbcb8d07. +// +// Solidity: function callbackMethod(int256 x) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) CallbackMethod(opts *bind.TransactOpts, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "callbackMethod", x) +} + +// CallbackMethod is a paid mutator transaction binding the contract method 0xfbcb8d07. +// +// Solidity: function callbackMethod(int256 x) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) CallbackMethod(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallbackMethod(&_NetworkDebugContract.TransactOpts, x) +} + +// CallbackMethod is a paid mutator transaction binding the contract method 0xfbcb8d07. +// +// Solidity: function callbackMethod(int256 x) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) CallbackMethod(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.CallbackMethod(&_NetworkDebugContract.TransactOpts, x) +} + +// EmitAddress is a paid mutator transaction binding the contract method 0xec5c3ede. +// +// Solidity: function emitAddress(address addr) returns(address) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitAddress(opts *bind.TransactOpts, addr common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitAddress", addr) +} + +// EmitAddress is a paid mutator transaction binding the contract method 0xec5c3ede. +// +// Solidity: function emitAddress(address addr) returns(address) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitAddress(addr common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitAddress(&_NetworkDebugContract.TransactOpts, addr) +} + +// EmitAddress is a paid mutator transaction binding the contract method 0xec5c3ede. +// +// Solidity: function emitAddress(address addr) returns(address) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitAddress(addr common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitAddress(&_NetworkDebugContract.TransactOpts, addr) +} + +// EmitBytes32 is a paid mutator transaction binding the contract method 0x33311ef3. +// +// Solidity: function emitBytes32(bytes32 input) returns(bytes32 output) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitBytes32(opts *bind.TransactOpts, input [32]byte) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitBytes32", input) +} + +// EmitBytes32 is a paid mutator transaction binding the contract method 0x33311ef3. +// +// Solidity: function emitBytes32(bytes32 input) returns(bytes32 output) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitBytes32(input [32]byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitBytes32(&_NetworkDebugContract.TransactOpts, input) +} + +// EmitBytes32 is a paid mutator transaction binding the contract method 0x33311ef3. +// +// Solidity: function emitBytes32(bytes32 input) returns(bytes32 output) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitBytes32(input [32]byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitBytes32(&_NetworkDebugContract.TransactOpts, input) +} + +// EmitFourParamMixedEvent is a paid mutator transaction binding the contract method 0xc2124b22. +// +// Solidity: function emitFourParamMixedEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitFourParamMixedEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitFourParamMixedEvent") +} + +// EmitFourParamMixedEvent is a paid mutator transaction binding the contract method 0xc2124b22. +// +// Solidity: function emitFourParamMixedEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitFourParamMixedEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitFourParamMixedEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitFourParamMixedEvent is a paid mutator transaction binding the contract method 0xc2124b22. +// +// Solidity: function emitFourParamMixedEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitFourParamMixedEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitFourParamMixedEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitInputs is a paid mutator transaction binding the contract method 0x81b375a0. +// +// Solidity: function emitInputs(uint256 inputVal1, string inputVal2) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitInputs(opts *bind.TransactOpts, inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitInputs", inputVal1, inputVal2) +} + +// EmitInputs is a paid mutator transaction binding the contract method 0x81b375a0. +// +// Solidity: function emitInputs(uint256 inputVal1, string inputVal2) returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitInputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitInputs is a paid mutator transaction binding the contract method 0x81b375a0. +// +// Solidity: function emitInputs(uint256 inputVal1, string inputVal2) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitInputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitInputsOutputs is a paid mutator transaction binding the contract method 0xd7a80205. +// +// Solidity: function emitInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitInputsOutputs(opts *bind.TransactOpts, inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitInputsOutputs", inputVal1, inputVal2) +} + +// EmitInputsOutputs is a paid mutator transaction binding the contract method 0xd7a80205. +// +// Solidity: function emitInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitInputsOutputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInputsOutputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitInputsOutputs is a paid mutator transaction binding the contract method 0xd7a80205. +// +// Solidity: function emitInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitInputsOutputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInputsOutputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitInts is a paid mutator transaction binding the contract method 0x9e099652. +// +// Solidity: function emitInts(int256 first, int128 second, uint256 third) returns(int256, int128 outputVal1, uint256 outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitInts(opts *bind.TransactOpts, first *big.Int, second *big.Int, third *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitInts", first, second, third) +} + +// EmitInts is a paid mutator transaction binding the contract method 0x9e099652. +// +// Solidity: function emitInts(int256 first, int128 second, uint256 third) returns(int256, int128 outputVal1, uint256 outputVal2) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitInts(first *big.Int, second *big.Int, third *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInts(&_NetworkDebugContract.TransactOpts, first, second, third) +} + +// EmitInts is a paid mutator transaction binding the contract method 0x9e099652. +// +// Solidity: function emitInts(int256 first, int128 second, uint256 third) returns(int256, int128 outputVal1, uint256 outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitInts(first *big.Int, second *big.Int, third *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitInts(&_NetworkDebugContract.TransactOpts, first, second, third) +} + +// EmitNamedInputsOutputs is a paid mutator transaction binding the contract method 0x45f0c9e6. +// +// Solidity: function emitNamedInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitNamedInputsOutputs(opts *bind.TransactOpts, inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitNamedInputsOutputs", inputVal1, inputVal2) +} + +// EmitNamedInputsOutputs is a paid mutator transaction binding the contract method 0x45f0c9e6. +// +// Solidity: function emitNamedInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitNamedInputsOutputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNamedInputsOutputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitNamedInputsOutputs is a paid mutator transaction binding the contract method 0x45f0c9e6. +// +// Solidity: function emitNamedInputsOutputs(uint256 inputVal1, string inputVal2) returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitNamedInputsOutputs(inputVal1 *big.Int, inputVal2 string) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNamedInputsOutputs(&_NetworkDebugContract.TransactOpts, inputVal1, inputVal2) +} + +// EmitNamedOutputs is a paid mutator transaction binding the contract method 0x7014c81d. +// +// Solidity: function emitNamedOutputs() returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitNamedOutputs(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitNamedOutputs") +} + +// EmitNamedOutputs is a paid mutator transaction binding the contract method 0x7014c81d. +// +// Solidity: function emitNamedOutputs() returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitNamedOutputs() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNamedOutputs(&_NetworkDebugContract.TransactOpts) +} + +// EmitNamedOutputs is a paid mutator transaction binding the contract method 0x7014c81d. +// +// Solidity: function emitNamedOutputs() returns(uint256 outputVal1, string outputVal2) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitNamedOutputs() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNamedOutputs(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexEvent is a paid mutator transaction binding the contract method 0x95a81a4c. +// +// Solidity: function emitNoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitNoIndexEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitNoIndexEvent") +} + +// EmitNoIndexEvent is a paid mutator transaction binding the contract method 0x95a81a4c. +// +// Solidity: function emitNoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitNoIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexEvent is a paid mutator transaction binding the contract method 0x95a81a4c. +// +// Solidity: function emitNoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitNoIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexEventString is a paid mutator transaction binding the contract method 0x788c4772. +// +// Solidity: function emitNoIndexEventString() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitNoIndexEventString(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitNoIndexEventString") +} + +// EmitNoIndexEventString is a paid mutator transaction binding the contract method 0x788c4772. +// +// Solidity: function emitNoIndexEventString() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitNoIndexEventString() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexEventString(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexEventString is a paid mutator transaction binding the contract method 0x788c4772. +// +// Solidity: function emitNoIndexEventString() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitNoIndexEventString() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexEventString(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexStructEvent is a paid mutator transaction binding the contract method 0x62c270e1. +// +// Solidity: function emitNoIndexStructEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitNoIndexStructEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitNoIndexStructEvent") +} + +// EmitNoIndexStructEvent is a paid mutator transaction binding the contract method 0x62c270e1. +// +// Solidity: function emitNoIndexStructEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitNoIndexStructEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexStructEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitNoIndexStructEvent is a paid mutator transaction binding the contract method 0x62c270e1. +// +// Solidity: function emitNoIndexStructEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitNoIndexStructEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitNoIndexStructEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitOneIndexEvent is a paid mutator transaction binding the contract method 0x8f856296. +// +// Solidity: function emitOneIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitOneIndexEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitOneIndexEvent") +} + +// EmitOneIndexEvent is a paid mutator transaction binding the contract method 0x8f856296. +// +// Solidity: function emitOneIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitOneIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitOneIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitOneIndexEvent is a paid mutator transaction binding the contract method 0x8f856296. +// +// Solidity: function emitOneIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitOneIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitOneIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitOutputs is a paid mutator transaction binding the contract method 0x8db611be. +// +// Solidity: function emitOutputs() returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitOutputs(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitOutputs") +} + +// EmitOutputs is a paid mutator transaction binding the contract method 0x8db611be. +// +// Solidity: function emitOutputs() returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractSession) EmitOutputs() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitOutputs(&_NetworkDebugContract.TransactOpts) +} + +// EmitOutputs is a paid mutator transaction binding the contract method 0x8db611be. +// +// Solidity: function emitOutputs() returns(uint256, string) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitOutputs() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitOutputs(&_NetworkDebugContract.TransactOpts) +} + +// EmitThreeIndexEvent is a paid mutator transaction binding the contract method 0xaa3fdcf4. +// +// Solidity: function emitThreeIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitThreeIndexEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitThreeIndexEvent") +} + +// EmitThreeIndexEvent is a paid mutator transaction binding the contract method 0xaa3fdcf4. +// +// Solidity: function emitThreeIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitThreeIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitThreeIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitThreeIndexEvent is a paid mutator transaction binding the contract method 0xaa3fdcf4. +// +// Solidity: function emitThreeIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitThreeIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitThreeIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitTwoIndexEvent is a paid mutator transaction binding the contract method 0x1e31d0a8. +// +// Solidity: function emitTwoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) EmitTwoIndexEvent(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "emitTwoIndexEvent") +} + +// EmitTwoIndexEvent is a paid mutator transaction binding the contract method 0x1e31d0a8. +// +// Solidity: function emitTwoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractSession) EmitTwoIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitTwoIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// EmitTwoIndexEvent is a paid mutator transaction binding the contract method 0x1e31d0a8. +// +// Solidity: function emitTwoIndexEvent() returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) EmitTwoIndexEvent() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.EmitTwoIndexEvent(&_NetworkDebugContract.TransactOpts) +} + +// OnTokenTransfer is a paid mutator transaction binding the contract method 0xa4c0ed36. +// +// Solidity: function onTokenTransfer(address sender, uint256 amount, bytes data) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) OnTokenTransfer(opts *bind.TransactOpts, sender common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "onTokenTransfer", sender, amount, data) +} + +// OnTokenTransfer is a paid mutator transaction binding the contract method 0xa4c0ed36. +// +// Solidity: function onTokenTransfer(address sender, uint256 amount, bytes data) returns() +func (_NetworkDebugContract *NetworkDebugContractSession) OnTokenTransfer(sender common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.OnTokenTransfer(&_NetworkDebugContract.TransactOpts, sender, amount, data) +} + +// OnTokenTransfer is a paid mutator transaction binding the contract method 0xa4c0ed36. +// +// Solidity: function onTokenTransfer(address sender, uint256 amount, bytes data) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) OnTokenTransfer(sender common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.OnTokenTransfer(&_NetworkDebugContract.TransactOpts, sender, amount, data) +} + +// Pay is a paid mutator transaction binding the contract method 0x1b9265b8. +// +// Solidity: function pay() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) Pay(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "pay") +} + +// Pay is a paid mutator transaction binding the contract method 0x1b9265b8. +// +// Solidity: function pay() payable returns() +func (_NetworkDebugContract *NetworkDebugContractSession) Pay() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Pay(&_NetworkDebugContract.TransactOpts) +} + +// Pay is a paid mutator transaction binding the contract method 0x1b9265b8. +// +// Solidity: function pay() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Pay() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Pay(&_NetworkDebugContract.TransactOpts) +} + +// ProcessAddressArray is a paid mutator transaction binding the contract method 0xe1111f79. +// +// Solidity: function processAddressArray(address[] input) returns(address[]) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessAddressArray(opts *bind.TransactOpts, input []common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processAddressArray", input) +} + +// ProcessAddressArray is a paid mutator transaction binding the contract method 0xe1111f79. +// +// Solidity: function processAddressArray(address[] input) returns(address[]) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessAddressArray(input []common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessAddressArray(&_NetworkDebugContract.TransactOpts, input) +} + +// ProcessAddressArray is a paid mutator transaction binding the contract method 0xe1111f79. +// +// Solidity: function processAddressArray(address[] input) returns(address[]) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessAddressArray(input []common.Address) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessAddressArray(&_NetworkDebugContract.TransactOpts, input) +} + +// ProcessDynamicData is a paid mutator transaction binding the contract method 0x7fdc8fe1. +// +// Solidity: function processDynamicData((string,uint256[]) data) returns((string,uint256[])) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessDynamicData(opts *bind.TransactOpts, data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processDynamicData", data) +} + +// ProcessDynamicData is a paid mutator transaction binding the contract method 0x7fdc8fe1. +// +// Solidity: function processDynamicData((string,uint256[]) data) returns((string,uint256[])) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessDynamicData(data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessDynamicData(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessDynamicData is a paid mutator transaction binding the contract method 0x7fdc8fe1. +// +// Solidity: function processDynamicData((string,uint256[]) data) returns((string,uint256[])) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessDynamicData(data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessDynamicData(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessFixedDataArray is a paid mutator transaction binding the contract method 0x99adad2e. +// +// Solidity: function processFixedDataArray((string,uint256[])[3] data) returns((string,uint256[])[2]) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessFixedDataArray(opts *bind.TransactOpts, data [3]NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processFixedDataArray", data) +} + +// ProcessFixedDataArray is a paid mutator transaction binding the contract method 0x99adad2e. +// +// Solidity: function processFixedDataArray((string,uint256[])[3] data) returns((string,uint256[])[2]) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessFixedDataArray(data [3]NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessFixedDataArray(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessFixedDataArray is a paid mutator transaction binding the contract method 0x99adad2e. +// +// Solidity: function processFixedDataArray((string,uint256[])[3] data) returns((string,uint256[])[2]) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessFixedDataArray(data [3]NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessFixedDataArray(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessNestedData is a paid mutator transaction binding the contract method 0x7f12881c. +// +// Solidity: function processNestedData(((string,uint256[]),bytes) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessNestedData(opts *bind.TransactOpts, data NetworkDebugContractNestedData) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processNestedData", data) +} + +// ProcessNestedData is a paid mutator transaction binding the contract method 0x7f12881c. +// +// Solidity: function processNestedData(((string,uint256[]),bytes) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessNestedData(data NetworkDebugContractNestedData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessNestedData(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessNestedData is a paid mutator transaction binding the contract method 0x7f12881c. +// +// Solidity: function processNestedData(((string,uint256[]),bytes) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessNestedData(data NetworkDebugContractNestedData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessNestedData(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessNestedData0 is a paid mutator transaction binding the contract method 0xf499af2a. +// +// Solidity: function processNestedData((string,uint256[]) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessNestedData0(opts *bind.TransactOpts, data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processNestedData0", data) +} + +// ProcessNestedData0 is a paid mutator transaction binding the contract method 0xf499af2a. +// +// Solidity: function processNestedData((string,uint256[]) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessNestedData0(data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessNestedData0(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessNestedData0 is a paid mutator transaction binding the contract method 0xf499af2a. +// +// Solidity: function processNestedData((string,uint256[]) data) returns(((string,uint256[]),bytes)) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessNestedData0(data NetworkDebugContractData) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessNestedData0(&_NetworkDebugContract.TransactOpts, data) +} + +// ProcessUintArray is a paid mutator transaction binding the contract method 0x12d91233. +// +// Solidity: function processUintArray(uint256[] input) returns(uint256[]) +func (_NetworkDebugContract *NetworkDebugContractTransactor) ProcessUintArray(opts *bind.TransactOpts, input []*big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "processUintArray", input) +} + +// ProcessUintArray is a paid mutator transaction binding the contract method 0x12d91233. +// +// Solidity: function processUintArray(uint256[] input) returns(uint256[]) +func (_NetworkDebugContract *NetworkDebugContractSession) ProcessUintArray(input []*big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessUintArray(&_NetworkDebugContract.TransactOpts, input) +} + +// ProcessUintArray is a paid mutator transaction binding the contract method 0x12d91233. +// +// Solidity: function processUintArray(uint256[] input) returns(uint256[]) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ProcessUintArray(input []*big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ProcessUintArray(&_NetworkDebugContract.TransactOpts, input) +} + +// ResetCounter is a paid mutator transaction binding the contract method 0xf3396bd9. +// +// Solidity: function resetCounter(int256 idx) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) ResetCounter(opts *bind.TransactOpts, idx *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "resetCounter", idx) +} + +// ResetCounter is a paid mutator transaction binding the contract method 0xf3396bd9. +// +// Solidity: function resetCounter(int256 idx) returns() +func (_NetworkDebugContract *NetworkDebugContractSession) ResetCounter(idx *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ResetCounter(&_NetworkDebugContract.TransactOpts, idx) +} + +// ResetCounter is a paid mutator transaction binding the contract method 0xf3396bd9. +// +// Solidity: function resetCounter(int256 idx) returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) ResetCounter(idx *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.ResetCounter(&_NetworkDebugContract.TransactOpts, idx) +} + +// Set is a paid mutator transaction binding the contract method 0xe5c19b2d. +// +// Solidity: function set(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactor) Set(opts *bind.TransactOpts, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "set", x) +} + +// Set is a paid mutator transaction binding the contract method 0xe5c19b2d. +// +// Solidity: function set(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractSession) Set(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Set(&_NetworkDebugContract.TransactOpts, x) +} + +// Set is a paid mutator transaction binding the contract method 0xe5c19b2d. +// +// Solidity: function set(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Set(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Set(&_NetworkDebugContract.TransactOpts, x) +} + +// SetMap is a paid mutator transaction binding the contract method 0xe8116e28. +// +// Solidity: function setMap(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactor) SetMap(opts *bind.TransactOpts, x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "setMap", x) +} + +// SetMap is a paid mutator transaction binding the contract method 0xe8116e28. +// +// Solidity: function setMap(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractSession) SetMap(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.SetMap(&_NetworkDebugContract.TransactOpts, x) +} + +// SetMap is a paid mutator transaction binding the contract method 0xe8116e28. +// +// Solidity: function setMap(int256 x) returns(int256 value) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) SetMap(x *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.SetMap(&_NetworkDebugContract.TransactOpts, x) +} + +// SetStatus is a paid mutator transaction binding the contract method 0x2e49d78b. +// +// Solidity: function setStatus(uint8 status) returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractTransactor) SetStatus(opts *bind.TransactOpts, status uint8) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "setStatus", status) +} + +// SetStatus is a paid mutator transaction binding the contract method 0x2e49d78b. +// +// Solidity: function setStatus(uint8 status) returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractSession) SetStatus(status uint8) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.SetStatus(&_NetworkDebugContract.TransactOpts, status) +} + +// SetStatus is a paid mutator transaction binding the contract method 0x2e49d78b. +// +// Solidity: function setStatus(uint8 status) returns(uint8) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) SetStatus(status uint8) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.SetStatus(&_NetworkDebugContract.TransactOpts, status) +} + +// Trace is a paid mutator transaction binding the contract method 0x3e41f135. +// +// Solidity: function trace(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) Trace(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "trace", x, y) +} + +// Trace is a paid mutator transaction binding the contract method 0x3e41f135. +// +// Solidity: function trace(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) Trace(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Trace(&_NetworkDebugContract.TransactOpts, x, y) +} + +// Trace is a paid mutator transaction binding the contract method 0x3e41f135. +// +// Solidity: function trace(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Trace(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Trace(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceDifferent is a paid mutator transaction binding the contract method 0x30985bcc. +// +// Solidity: function traceDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) TraceDifferent(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "traceDifferent", x, y) +} + +// TraceDifferent is a paid mutator transaction binding the contract method 0x30985bcc. +// +// Solidity: function traceDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) TraceDifferent(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceDifferent(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceDifferent is a paid mutator transaction binding the contract method 0x30985bcc. +// +// Solidity: function traceDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) TraceDifferent(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceDifferent(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceSubWithCallback is a paid mutator transaction binding the contract method 0x3837a75e. +// +// Solidity: function traceSubWithCallback(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) TraceSubWithCallback(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "traceSubWithCallback", x, y) +} + +// TraceSubWithCallback is a paid mutator transaction binding the contract method 0x3837a75e. +// +// Solidity: function traceSubWithCallback(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) TraceSubWithCallback(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceSubWithCallback(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceSubWithCallback is a paid mutator transaction binding the contract method 0x3837a75e. +// +// Solidity: function traceSubWithCallback(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) TraceSubWithCallback(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceSubWithCallback(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceWithValidate is a paid mutator transaction binding the contract method 0xb1ae9d85. +// +// Solidity: function traceWithValidate(int256 x, int256 y) payable returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) TraceWithValidate(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "traceWithValidate", x, y) +} + +// TraceWithValidate is a paid mutator transaction binding the contract method 0xb1ae9d85. +// +// Solidity: function traceWithValidate(int256 x, int256 y) payable returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) TraceWithValidate(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceWithValidate(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceWithValidate is a paid mutator transaction binding the contract method 0xb1ae9d85. +// +// Solidity: function traceWithValidate(int256 x, int256 y) payable returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) TraceWithValidate(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceWithValidate(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceYetDifferent is a paid mutator transaction binding the contract method 0x58379d71. +// +// Solidity: function traceYetDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactor) TraceYetDifferent(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "traceYetDifferent", x, y) +} + +// TraceYetDifferent is a paid mutator transaction binding the contract method 0x58379d71. +// +// Solidity: function traceYetDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractSession) TraceYetDifferent(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceYetDifferent(&_NetworkDebugContract.TransactOpts, x, y) +} + +// TraceYetDifferent is a paid mutator transaction binding the contract method 0x58379d71. +// +// Solidity: function traceYetDifferent(int256 x, int256 y) returns(int256) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) TraceYetDifferent(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.TraceYetDifferent(&_NetworkDebugContract.TransactOpts, x, y) +} + +// Validate is a paid mutator transaction binding the contract method 0x04d8215b. +// +// Solidity: function validate(int256 x, int256 y) returns(bool) +func (_NetworkDebugContract *NetworkDebugContractTransactor) Validate(opts *bind.TransactOpts, x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.contract.Transact(opts, "validate", x, y) +} + +// Validate is a paid mutator transaction binding the contract method 0x04d8215b. +// +// Solidity: function validate(int256 x, int256 y) returns(bool) +func (_NetworkDebugContract *NetworkDebugContractSession) Validate(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Validate(&_NetworkDebugContract.TransactOpts, x, y) +} + +// Validate is a paid mutator transaction binding the contract method 0x04d8215b. +// +// Solidity: function validate(int256 x, int256 y) returns(bool) +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Validate(x *big.Int, y *big.Int) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Validate(&_NetworkDebugContract.TransactOpts, x, y) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) { + return _NetworkDebugContract.contract.RawTransact(opts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_NetworkDebugContract *NetworkDebugContractSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Fallback(&_NetworkDebugContract.TransactOpts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Fallback(&_NetworkDebugContract.TransactOpts, calldata) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NetworkDebugContract.contract.RawTransact(opts, nil) // calldata is disallowed for receive function +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_NetworkDebugContract *NetworkDebugContractSession) Receive() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Receive(&_NetworkDebugContract.TransactOpts) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_NetworkDebugContract *NetworkDebugContractTransactorSession) Receive() (*types.Transaction, error) { + return _NetworkDebugContract.Contract.Receive(&_NetworkDebugContract.TransactOpts) +} + +// NetworkDebugContractCallDataLengthIterator is returned from FilterCallDataLength and is used to iterate over the raw logs and unpacked data for CallDataLength events raised by the NetworkDebugContract contract. +type NetworkDebugContractCallDataLengthIterator struct { + Event *NetworkDebugContractCallDataLength // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractCallDataLengthIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCallDataLength) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCallDataLength) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractCallDataLengthIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractCallDataLengthIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractCallDataLength represents a CallDataLength event raised by the NetworkDebugContract contract. +type NetworkDebugContractCallDataLength struct { + Length *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCallDataLength is a free log retrieval operation binding the contract event 0x962c5df4c8ad201a4f54a88f47715bb2cf291d019e350e2dff50ca6fc0f5d0ed. +// +// Solidity: event CallDataLength(uint256 length) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterCallDataLength(opts *bind.FilterOpts) (*NetworkDebugContractCallDataLengthIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "CallDataLength") + if err != nil { + return nil, err + } + return &NetworkDebugContractCallDataLengthIterator{contract: _NetworkDebugContract.contract, event: "CallDataLength", logs: logs, sub: sub}, nil +} + +// WatchCallDataLength is a free log subscription operation binding the contract event 0x962c5df4c8ad201a4f54a88f47715bb2cf291d019e350e2dff50ca6fc0f5d0ed. +// +// Solidity: event CallDataLength(uint256 length) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchCallDataLength(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractCallDataLength) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "CallDataLength") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractCallDataLength) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CallDataLength", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCallDataLength is a log parse operation binding the contract event 0x962c5df4c8ad201a4f54a88f47715bb2cf291d019e350e2dff50ca6fc0f5d0ed. +// +// Solidity: event CallDataLength(uint256 length) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseCallDataLength(log types.Log) (*NetworkDebugContractCallDataLength, error) { + event := new(NetworkDebugContractCallDataLength) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CallDataLength", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractCallbackEventIterator is returned from FilterCallbackEvent and is used to iterate over the raw logs and unpacked data for CallbackEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractCallbackEventIterator struct { + Event *NetworkDebugContractCallbackEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractCallbackEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCallbackEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCallbackEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractCallbackEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractCallbackEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractCallbackEvent represents a CallbackEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractCallbackEvent struct { + A *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCallbackEvent is a free log retrieval operation binding the contract event 0xb16dba9242e1aa07ccc47228094628f72c8cc9699ee45d5bc8d67b84d3038c68. +// +// Solidity: event CallbackEvent(int256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterCallbackEvent(opts *bind.FilterOpts, a []*big.Int) (*NetworkDebugContractCallbackEventIterator, error) { + + var aRule []interface{} + for _, aItem := range a { + aRule = append(aRule, aItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "CallbackEvent", aRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractCallbackEventIterator{contract: _NetworkDebugContract.contract, event: "CallbackEvent", logs: logs, sub: sub}, nil +} + +// WatchCallbackEvent is a free log subscription operation binding the contract event 0xb16dba9242e1aa07ccc47228094628f72c8cc9699ee45d5bc8d67b84d3038c68. +// +// Solidity: event CallbackEvent(int256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchCallbackEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractCallbackEvent, a []*big.Int) (event.Subscription, error) { + + var aRule []interface{} + for _, aItem := range a { + aRule = append(aRule, aItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "CallbackEvent", aRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractCallbackEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CallbackEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCallbackEvent is a log parse operation binding the contract event 0xb16dba9242e1aa07ccc47228094628f72c8cc9699ee45d5bc8d67b84d3038c68. +// +// Solidity: event CallbackEvent(int256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseCallbackEvent(log types.Log) (*NetworkDebugContractCallbackEvent, error) { + event := new(NetworkDebugContractCallbackEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CallbackEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractCurrentStatusIterator is returned from FilterCurrentStatus and is used to iterate over the raw logs and unpacked data for CurrentStatus events raised by the NetworkDebugContract contract. +type NetworkDebugContractCurrentStatusIterator struct { + Event *NetworkDebugContractCurrentStatus // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractCurrentStatusIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCurrentStatus) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractCurrentStatus) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractCurrentStatusIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractCurrentStatusIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractCurrentStatus represents a CurrentStatus event raised by the NetworkDebugContract contract. +type NetworkDebugContractCurrentStatus struct { + Status uint8 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCurrentStatus is a free log retrieval operation binding the contract event 0xbea054406fdf249b05d1aef1b5f848d62d902d94389fca702b2d8337677c359a. +// +// Solidity: event CurrentStatus(uint8 indexed status) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterCurrentStatus(opts *bind.FilterOpts, status []uint8) (*NetworkDebugContractCurrentStatusIterator, error) { + + var statusRule []interface{} + for _, statusItem := range status { + statusRule = append(statusRule, statusItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "CurrentStatus", statusRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractCurrentStatusIterator{contract: _NetworkDebugContract.contract, event: "CurrentStatus", logs: logs, sub: sub}, nil +} + +// WatchCurrentStatus is a free log subscription operation binding the contract event 0xbea054406fdf249b05d1aef1b5f848d62d902d94389fca702b2d8337677c359a. +// +// Solidity: event CurrentStatus(uint8 indexed status) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchCurrentStatus(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractCurrentStatus, status []uint8) (event.Subscription, error) { + + var statusRule []interface{} + for _, statusItem := range status { + statusRule = append(statusRule, statusItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "CurrentStatus", statusRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractCurrentStatus) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CurrentStatus", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCurrentStatus is a log parse operation binding the contract event 0xbea054406fdf249b05d1aef1b5f848d62d902d94389fca702b2d8337677c359a. +// +// Solidity: event CurrentStatus(uint8 indexed status) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseCurrentStatus(log types.Log) (*NetworkDebugContractCurrentStatus, error) { + event := new(NetworkDebugContractCurrentStatus) + if err := _NetworkDebugContract.contract.UnpackLog(event, "CurrentStatus", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractEtherReceivedIterator is returned from FilterEtherReceived and is used to iterate over the raw logs and unpacked data for EtherReceived events raised by the NetworkDebugContract contract. +type NetworkDebugContractEtherReceivedIterator struct { + Event *NetworkDebugContractEtherReceived // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractEtherReceivedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractEtherReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractEtherReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractEtherReceivedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractEtherReceivedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractEtherReceived represents a EtherReceived event raised by the NetworkDebugContract contract. +type NetworkDebugContractEtherReceived struct { + Sender common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterEtherReceived is a free log retrieval operation binding the contract event 0x1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b. +// +// Solidity: event EtherReceived(address sender, uint256 amount) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterEtherReceived(opts *bind.FilterOpts) (*NetworkDebugContractEtherReceivedIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "EtherReceived") + if err != nil { + return nil, err + } + return &NetworkDebugContractEtherReceivedIterator{contract: _NetworkDebugContract.contract, event: "EtherReceived", logs: logs, sub: sub}, nil +} + +// WatchEtherReceived is a free log subscription operation binding the contract event 0x1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b. +// +// Solidity: event EtherReceived(address sender, uint256 amount) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchEtherReceived(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractEtherReceived) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "EtherReceived") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractEtherReceived) + if err := _NetworkDebugContract.contract.UnpackLog(event, "EtherReceived", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseEtherReceived is a log parse operation binding the contract event 0x1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b. +// +// Solidity: event EtherReceived(address sender, uint256 amount) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseEtherReceived(log types.Log) (*NetworkDebugContractEtherReceived, error) { + event := new(NetworkDebugContractEtherReceived) + if err := _NetworkDebugContract.contract.UnpackLog(event, "EtherReceived", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractIsValidEventIterator is returned from FilterIsValidEvent and is used to iterate over the raw logs and unpacked data for IsValidEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractIsValidEventIterator struct { + Event *NetworkDebugContractIsValidEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractIsValidEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractIsValidEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractIsValidEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractIsValidEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractIsValidEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractIsValidEvent represents a IsValidEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractIsValidEvent struct { + Success bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterIsValidEvent is a free log retrieval operation binding the contract event 0xdfac7500004753b91139af55816e7eade36d96faec68b343f77ed66b89912a7b. +// +// Solidity: event IsValidEvent(bool success) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterIsValidEvent(opts *bind.FilterOpts) (*NetworkDebugContractIsValidEventIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "IsValidEvent") + if err != nil { + return nil, err + } + return &NetworkDebugContractIsValidEventIterator{contract: _NetworkDebugContract.contract, event: "IsValidEvent", logs: logs, sub: sub}, nil +} + +// WatchIsValidEvent is a free log subscription operation binding the contract event 0xdfac7500004753b91139af55816e7eade36d96faec68b343f77ed66b89912a7b. +// +// Solidity: event IsValidEvent(bool success) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchIsValidEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractIsValidEvent) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "IsValidEvent") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractIsValidEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "IsValidEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseIsValidEvent is a log parse operation binding the contract event 0xdfac7500004753b91139af55816e7eade36d96faec68b343f77ed66b89912a7b. +// +// Solidity: event IsValidEvent(bool success) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseIsValidEvent(log types.Log) (*NetworkDebugContractIsValidEvent, error) { + event := new(NetworkDebugContractIsValidEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "IsValidEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractNoIndexEventIterator is returned from FilterNoIndexEvent and is used to iterate over the raw logs and unpacked data for NoIndexEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexEventIterator struct { + Event *NetworkDebugContractNoIndexEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractNoIndexEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractNoIndexEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractNoIndexEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractNoIndexEvent represents a NoIndexEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexEvent struct { + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterNoIndexEvent is a free log retrieval operation binding the contract event 0x33bc9bae48dbe1e057f264b3fc6a1dacdcceacb3ba28d937231c70e068a02f1c. +// +// Solidity: event NoIndexEvent(address sender) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterNoIndexEvent(opts *bind.FilterOpts) (*NetworkDebugContractNoIndexEventIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "NoIndexEvent") + if err != nil { + return nil, err + } + return &NetworkDebugContractNoIndexEventIterator{contract: _NetworkDebugContract.contract, event: "NoIndexEvent", logs: logs, sub: sub}, nil +} + +// WatchNoIndexEvent is a free log subscription operation binding the contract event 0x33bc9bae48dbe1e057f264b3fc6a1dacdcceacb3ba28d937231c70e068a02f1c. +// +// Solidity: event NoIndexEvent(address sender) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchNoIndexEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractNoIndexEvent) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "NoIndexEvent") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractNoIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseNoIndexEvent is a log parse operation binding the contract event 0x33bc9bae48dbe1e057f264b3fc6a1dacdcceacb3ba28d937231c70e068a02f1c. +// +// Solidity: event NoIndexEvent(address sender) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseNoIndexEvent(log types.Log) (*NetworkDebugContractNoIndexEvent, error) { + event := new(NetworkDebugContractNoIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractNoIndexEventStringIterator is returned from FilterNoIndexEventString and is used to iterate over the raw logs and unpacked data for NoIndexEventString events raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexEventStringIterator struct { + Event *NetworkDebugContractNoIndexEventString // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractNoIndexEventStringIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexEventString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexEventString) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractNoIndexEventStringIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractNoIndexEventStringIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractNoIndexEventString represents a NoIndexEventString event raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexEventString struct { + Str string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterNoIndexEventString is a free log retrieval operation binding the contract event 0x25b7adba1b046a19379db4bc06aa1f2e71604d7b599a0ee8783d58110f00e16a. +// +// Solidity: event NoIndexEventString(string str) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterNoIndexEventString(opts *bind.FilterOpts) (*NetworkDebugContractNoIndexEventStringIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "NoIndexEventString") + if err != nil { + return nil, err + } + return &NetworkDebugContractNoIndexEventStringIterator{contract: _NetworkDebugContract.contract, event: "NoIndexEventString", logs: logs, sub: sub}, nil +} + +// WatchNoIndexEventString is a free log subscription operation binding the contract event 0x25b7adba1b046a19379db4bc06aa1f2e71604d7b599a0ee8783d58110f00e16a. +// +// Solidity: event NoIndexEventString(string str) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchNoIndexEventString(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractNoIndexEventString) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "NoIndexEventString") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractNoIndexEventString) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexEventString", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseNoIndexEventString is a log parse operation binding the contract event 0x25b7adba1b046a19379db4bc06aa1f2e71604d7b599a0ee8783d58110f00e16a. +// +// Solidity: event NoIndexEventString(string str) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseNoIndexEventString(log types.Log) (*NetworkDebugContractNoIndexEventString, error) { + event := new(NetworkDebugContractNoIndexEventString) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexEventString", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractNoIndexStructEventIterator is returned from FilterNoIndexStructEvent and is used to iterate over the raw logs and unpacked data for NoIndexStructEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexStructEventIterator struct { + Event *NetworkDebugContractNoIndexStructEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractNoIndexStructEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexStructEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractNoIndexStructEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractNoIndexStructEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractNoIndexStructEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractNoIndexStructEvent represents a NoIndexStructEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractNoIndexStructEvent struct { + A NetworkDebugContractAccount + Raw types.Log // Blockchain specific contextual infos +} + +// FilterNoIndexStructEvent is a free log retrieval operation binding the contract event 0xebe3ff7e2071d351bf2e65b4fccd24e3ae99485f02468f1feecf7d64dc044188. +// +// Solidity: event NoIndexStructEvent((string,uint64,uint256) a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterNoIndexStructEvent(opts *bind.FilterOpts) (*NetworkDebugContractNoIndexStructEventIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "NoIndexStructEvent") + if err != nil { + return nil, err + } + return &NetworkDebugContractNoIndexStructEventIterator{contract: _NetworkDebugContract.contract, event: "NoIndexStructEvent", logs: logs, sub: sub}, nil +} + +// WatchNoIndexStructEvent is a free log subscription operation binding the contract event 0xebe3ff7e2071d351bf2e65b4fccd24e3ae99485f02468f1feecf7d64dc044188. +// +// Solidity: event NoIndexStructEvent((string,uint64,uint256) a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchNoIndexStructEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractNoIndexStructEvent) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "NoIndexStructEvent") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractNoIndexStructEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexStructEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseNoIndexStructEvent is a log parse operation binding the contract event 0xebe3ff7e2071d351bf2e65b4fccd24e3ae99485f02468f1feecf7d64dc044188. +// +// Solidity: event NoIndexStructEvent((string,uint64,uint256) a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseNoIndexStructEvent(log types.Log) (*NetworkDebugContractNoIndexStructEvent, error) { + event := new(NetworkDebugContractNoIndexStructEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "NoIndexStructEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractOneIndexEventIterator is returned from FilterOneIndexEvent and is used to iterate over the raw logs and unpacked data for OneIndexEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractOneIndexEventIterator struct { + Event *NetworkDebugContractOneIndexEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractOneIndexEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractOneIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractOneIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractOneIndexEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractOneIndexEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractOneIndexEvent represents a OneIndexEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractOneIndexEvent struct { + A *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOneIndexEvent is a free log retrieval operation binding the contract event 0xeace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b35. +// +// Solidity: event OneIndexEvent(uint256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterOneIndexEvent(opts *bind.FilterOpts, a []*big.Int) (*NetworkDebugContractOneIndexEventIterator, error) { + + var aRule []interface{} + for _, aItem := range a { + aRule = append(aRule, aItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "OneIndexEvent", aRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractOneIndexEventIterator{contract: _NetworkDebugContract.contract, event: "OneIndexEvent", logs: logs, sub: sub}, nil +} + +// WatchOneIndexEvent is a free log subscription operation binding the contract event 0xeace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b35. +// +// Solidity: event OneIndexEvent(uint256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchOneIndexEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractOneIndexEvent, a []*big.Int) (event.Subscription, error) { + + var aRule []interface{} + for _, aItem := range a { + aRule = append(aRule, aItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "OneIndexEvent", aRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractOneIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "OneIndexEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOneIndexEvent is a log parse operation binding the contract event 0xeace1be0b97ec11f959499c07b9f60f0cc47bf610b28fda8fb0e970339cf3b35. +// +// Solidity: event OneIndexEvent(uint256 indexed a) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseOneIndexEvent(log types.Log) (*NetworkDebugContractOneIndexEvent, error) { + event := new(NetworkDebugContractOneIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "OneIndexEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractReceivedIterator is returned from FilterReceived and is used to iterate over the raw logs and unpacked data for Received events raised by the NetworkDebugContract contract. +type NetworkDebugContractReceivedIterator struct { + Event *NetworkDebugContractReceived // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractReceivedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractReceivedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractReceivedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractReceived represents a Received event raised by the NetworkDebugContract contract. +type NetworkDebugContractReceived struct { + Caller common.Address + Amount *big.Int + Message string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceived is a free log retrieval operation binding the contract event 0x59e04c3f0d44b7caf6e8ef854b61d9a51cf1960d7a88ff6356cc5e946b4b5832. +// +// Solidity: event Received(address caller, uint256 amount, string message) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterReceived(opts *bind.FilterOpts) (*NetworkDebugContractReceivedIterator, error) { + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "Received") + if err != nil { + return nil, err + } + return &NetworkDebugContractReceivedIterator{contract: _NetworkDebugContract.contract, event: "Received", logs: logs, sub: sub}, nil +} + +// WatchReceived is a free log subscription operation binding the contract event 0x59e04c3f0d44b7caf6e8ef854b61d9a51cf1960d7a88ff6356cc5e946b4b5832. +// +// Solidity: event Received(address caller, uint256 amount, string message) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchReceived(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractReceived) (event.Subscription, error) { + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "Received") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractReceived) + if err := _NetworkDebugContract.contract.UnpackLog(event, "Received", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceived is a log parse operation binding the contract event 0x59e04c3f0d44b7caf6e8ef854b61d9a51cf1960d7a88ff6356cc5e946b4b5832. +// +// Solidity: event Received(address caller, uint256 amount, string message) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseReceived(log types.Log) (*NetworkDebugContractReceived, error) { + event := new(NetworkDebugContractReceived) + if err := _NetworkDebugContract.contract.UnpackLog(event, "Received", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator is returned from FilterThreeIndexAndOneNonIndexedEvent and is used to iterate over the raw logs and unpacked data for ThreeIndexAndOneNonIndexedEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator struct { + Event *NetworkDebugContractThreeIndexAndOneNonIndexedEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractThreeIndexAndOneNonIndexedEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractThreeIndexAndOneNonIndexedEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractThreeIndexAndOneNonIndexedEvent represents a ThreeIndexAndOneNonIndexedEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractThreeIndexAndOneNonIndexedEvent struct { + RoundId *big.Int + StartedBy common.Address + StartedAt *big.Int + DataId string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterThreeIndexAndOneNonIndexedEvent is a free log retrieval operation binding the contract event 0x56c2ea44ba516098cee0c181dd9d8db262657368b6e911e83ae0ccfae806c73d. +// +// Solidity: event ThreeIndexAndOneNonIndexedEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt, string dataId) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterThreeIndexAndOneNonIndexedEvent(opts *bind.FilterOpts, roundId []*big.Int, startedBy []common.Address, startedAt []*big.Int) (*NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + var startedAtRule []interface{} + for _, startedAtItem := range startedAt { + startedAtRule = append(startedAtRule, startedAtItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "ThreeIndexAndOneNonIndexedEvent", roundIdRule, startedByRule, startedAtRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractThreeIndexAndOneNonIndexedEventIterator{contract: _NetworkDebugContract.contract, event: "ThreeIndexAndOneNonIndexedEvent", logs: logs, sub: sub}, nil +} + +// WatchThreeIndexAndOneNonIndexedEvent is a free log subscription operation binding the contract event 0x56c2ea44ba516098cee0c181dd9d8db262657368b6e911e83ae0ccfae806c73d. +// +// Solidity: event ThreeIndexAndOneNonIndexedEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt, string dataId) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchThreeIndexAndOneNonIndexedEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractThreeIndexAndOneNonIndexedEvent, roundId []*big.Int, startedBy []common.Address, startedAt []*big.Int) (event.Subscription, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + var startedAtRule []interface{} + for _, startedAtItem := range startedAt { + startedAtRule = append(startedAtRule, startedAtItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "ThreeIndexAndOneNonIndexedEvent", roundIdRule, startedByRule, startedAtRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractThreeIndexAndOneNonIndexedEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "ThreeIndexAndOneNonIndexedEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseThreeIndexAndOneNonIndexedEvent is a log parse operation binding the contract event 0x56c2ea44ba516098cee0c181dd9d8db262657368b6e911e83ae0ccfae806c73d. +// +// Solidity: event ThreeIndexAndOneNonIndexedEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt, string dataId) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseThreeIndexAndOneNonIndexedEvent(log types.Log) (*NetworkDebugContractThreeIndexAndOneNonIndexedEvent, error) { + event := new(NetworkDebugContractThreeIndexAndOneNonIndexedEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "ThreeIndexAndOneNonIndexedEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractThreeIndexEventIterator is returned from FilterThreeIndexEvent and is used to iterate over the raw logs and unpacked data for ThreeIndexEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractThreeIndexEventIterator struct { + Event *NetworkDebugContractThreeIndexEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractThreeIndexEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractThreeIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractThreeIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractThreeIndexEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractThreeIndexEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractThreeIndexEvent represents a ThreeIndexEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractThreeIndexEvent struct { + RoundId *big.Int + StartedBy common.Address + StartedAt *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterThreeIndexEvent is a free log retrieval operation binding the contract event 0x5660e8f93f0146f45abcd659e026b75995db50053cbbca4d7f365934ade68bf3. +// +// Solidity: event ThreeIndexEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterThreeIndexEvent(opts *bind.FilterOpts, roundId []*big.Int, startedBy []common.Address, startedAt []*big.Int) (*NetworkDebugContractThreeIndexEventIterator, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + var startedAtRule []interface{} + for _, startedAtItem := range startedAt { + startedAtRule = append(startedAtRule, startedAtItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "ThreeIndexEvent", roundIdRule, startedByRule, startedAtRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractThreeIndexEventIterator{contract: _NetworkDebugContract.contract, event: "ThreeIndexEvent", logs: logs, sub: sub}, nil +} + +// WatchThreeIndexEvent is a free log subscription operation binding the contract event 0x5660e8f93f0146f45abcd659e026b75995db50053cbbca4d7f365934ade68bf3. +// +// Solidity: event ThreeIndexEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchThreeIndexEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractThreeIndexEvent, roundId []*big.Int, startedBy []common.Address, startedAt []*big.Int) (event.Subscription, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + var startedAtRule []interface{} + for _, startedAtItem := range startedAt { + startedAtRule = append(startedAtRule, startedAtItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "ThreeIndexEvent", roundIdRule, startedByRule, startedAtRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractThreeIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "ThreeIndexEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseThreeIndexEvent is a log parse operation binding the contract event 0x5660e8f93f0146f45abcd659e026b75995db50053cbbca4d7f365934ade68bf3. +// +// Solidity: event ThreeIndexEvent(uint256 indexed roundId, address indexed startedBy, uint256 indexed startedAt) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseThreeIndexEvent(log types.Log) (*NetworkDebugContractThreeIndexEvent, error) { + event := new(NetworkDebugContractThreeIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "ThreeIndexEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NetworkDebugContractTwoIndexEventIterator is returned from FilterTwoIndexEvent and is used to iterate over the raw logs and unpacked data for TwoIndexEvent events raised by the NetworkDebugContract contract. +type NetworkDebugContractTwoIndexEventIterator struct { + Event *NetworkDebugContractTwoIndexEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *NetworkDebugContractTwoIndexEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractTwoIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(NetworkDebugContractTwoIndexEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *NetworkDebugContractTwoIndexEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NetworkDebugContractTwoIndexEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NetworkDebugContractTwoIndexEvent represents a TwoIndexEvent event raised by the NetworkDebugContract contract. +type NetworkDebugContractTwoIndexEvent struct { + RoundId *big.Int + StartedBy common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTwoIndexEvent is a free log retrieval operation binding the contract event 0x33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b5. +// +// Solidity: event TwoIndexEvent(uint256 indexed roundId, address indexed startedBy) +func (_NetworkDebugContract *NetworkDebugContractFilterer) FilterTwoIndexEvent(opts *bind.FilterOpts, roundId []*big.Int, startedBy []common.Address) (*NetworkDebugContractTwoIndexEventIterator, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + + logs, sub, err := _NetworkDebugContract.contract.FilterLogs(opts, "TwoIndexEvent", roundIdRule, startedByRule) + if err != nil { + return nil, err + } + return &NetworkDebugContractTwoIndexEventIterator{contract: _NetworkDebugContract.contract, event: "TwoIndexEvent", logs: logs, sub: sub}, nil +} + +// WatchTwoIndexEvent is a free log subscription operation binding the contract event 0x33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b5. +// +// Solidity: event TwoIndexEvent(uint256 indexed roundId, address indexed startedBy) +func (_NetworkDebugContract *NetworkDebugContractFilterer) WatchTwoIndexEvent(opts *bind.WatchOpts, sink chan<- *NetworkDebugContractTwoIndexEvent, roundId []*big.Int, startedBy []common.Address) (event.Subscription, error) { + + var roundIdRule []interface{} + for _, roundIdItem := range roundId { + roundIdRule = append(roundIdRule, roundIdItem) + } + var startedByRule []interface{} + for _, startedByItem := range startedBy { + startedByRule = append(startedByRule, startedByItem) + } + + logs, sub, err := _NetworkDebugContract.contract.WatchLogs(opts, "TwoIndexEvent", roundIdRule, startedByRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(NetworkDebugContractTwoIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "TwoIndexEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTwoIndexEvent is a log parse operation binding the contract event 0x33b47a1cd66813164ec00800d74296f57415217c22505ee380594a712936a0b5. +// +// Solidity: event TwoIndexEvent(uint256 indexed roundId, address indexed startedBy) +func (_NetworkDebugContract *NetworkDebugContractFilterer) ParseTwoIndexEvent(log types.Log) (*NetworkDebugContractTwoIndexEvent, error) { + event := new(NetworkDebugContractTwoIndexEvent) + if err := _NetworkDebugContract.contract.UnpackLog(event, "TwoIndexEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/seth/contracts/noMetaDataContractDir/erc677/burn_mint_erc677.go b/seth/contracts/noMetaDataContractDir/erc677/burn_mint_erc677.go new file mode 100644 index 000000000..c1e496222 --- /dev/null +++ b/seth/contracts/noMetaDataContractDir/erc677/burn_mint_erc677.go @@ -0,0 +1,2038 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package erc677 + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +var BurnMintERC677MetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"maxSupply_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"supplyAfterMint\",\"type\":\"uint256\"}],\"name\":\"MaxSupplyExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderNotBurner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderNotMinter\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"BurnAccessGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"BurnAccessRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"MintAccessGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"MintAccessRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBurners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinters\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"grantBurnRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"burnAndMinter\",\"type\":\"address\"}],\"name\":\"grantMintAndBurnRoles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"grantMintRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"isBurner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"}],\"name\":\"revokeBurnRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"revokeMintRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x60c06040523480156200001157600080fd5b50604051620022dd380380620022dd833981016040819052620000349162000277565b338060008686818160036200004a838262000391565b50600462000059828262000391565b5050506001600160a01b0384169150620000bc90505760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600580546001600160a01b0319166001600160a01b0384811691909117909155811615620000ef57620000ef8162000106565b50505060ff90911660805260a052506200045d9050565b336001600160a01b03821603620001605760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401620000b3565b600680546001600160a01b0319166001600160a01b03838116918217909255600554604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001da57600080fd5b81516001600160401b0380821115620001f757620001f7620001b2565b604051601f8301601f19908116603f01168101908282118183101715620002225762000222620001b2565b816040528381526020925086838588010111156200023f57600080fd5b600091505b8382101562000263578582018301518183018401529082019062000244565b600093810190920192909252949350505050565b600080600080608085870312156200028e57600080fd5b84516001600160401b0380821115620002a657600080fd5b620002b488838901620001c8565b95506020870151915080821115620002cb57600080fd5b50620002da87828801620001c8565b935050604085015160ff81168114620002f257600080fd5b6060959095015193969295505050565b600181811c908216806200031757607f821691505b6020821081036200033857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200038c57600081815260208120601f850160051c81016020861015620003675750805b601f850160051c820191505b81811015620003885782815560010162000373565b5050505b505050565b81516001600160401b03811115620003ad57620003ad620001b2565b620003c581620003be845462000302565b846200033e565b602080601f831160018114620003fd5760008415620003e45750858301515b600019600386901b1c1916600185901b17855562000388565b600085815260208120601f198616915b828110156200042e578886015182559484019460019091019084016200040d565b50858210156200044d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a051611e4c6200049160003960008181610447015281816108c301526108ed015260006102710152611e4c6000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806379cc67901161010f578063c2e3273d116100a2578063d73dd62311610071578063d73dd6231461046b578063dd62ed3e1461047e578063f2fde38b146104c4578063f81094f3146104d757600080fd5b8063c2e3273d1461040c578063c630948d1461041f578063c64d0ebc14610432578063d5abeb011461044557600080fd5b80639dc29fac116100de5780639dc29fac146103c0578063a457c2d7146103d3578063a9059cbb146103e6578063aa271e1a146103f957600080fd5b806379cc67901461037557806386fe8b43146103885780638da5cb5b1461039057806395d89b41146103b857600080fd5b806340c10f19116101875780636618846311610156578063661884631461030f5780636b32810b1461032257806370a082311461033757806379ba50971461036d57600080fd5b806340c10f19146102c157806342966c68146102d65780634334614a146102e95780634f5632f8146102fc57600080fd5b806323b872dd116101c357806323b872dd14610257578063313ce5671461026a578063395093511461029b5780634000aea0146102ae57600080fd5b806301ffc9a7146101f557806306fdde031461021d578063095ea7b31461023257806318160ddd14610245575b600080fd5b6102086102033660046119b9565b6104ea565b60405190151581526020015b60405180910390f35b61022561061b565b6040516102149190611a5f565b610208610240366004611a9b565b6106ad565b6002545b604051908152602001610214565b610208610265366004611ac5565b6106c5565b60405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610214565b6102086102a9366004611a9b565b6106e9565b6102086102bc366004611b30565b610735565b6102d46102cf366004611a9b565b610858565b005b6102d46102e4366004611c19565b61097f565b6102086102f7366004611c32565b6109cc565b6102d461030a366004611c32565b6109d9565b61020861031d366004611a9b565b610a35565b61032a610a48565b6040516102149190611c4d565b610249610345366004611c32565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6102d4610a59565b6102d4610383366004611a9b565b610b5a565b61032a610ba9565b60055460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610214565b610225610bb5565b6102d46103ce366004611a9b565b610bc4565b6102086103e1366004611a9b565b610bce565b6102086103f4366004611a9b565b610c9f565b610208610407366004611c32565b610cad565b6102d461041a366004611c32565b610cba565b6102d461042d366004611c32565b610d16565b6102d4610440366004611c32565b610d24565b7f0000000000000000000000000000000000000000000000000000000000000000610249565b6102d4610479366004611a9b565b610d80565b61024961048c366004611ca7565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6102d46104d2366004611c32565b610d8a565b6102d46104e5366004611c32565b610d9b565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f36372b0700000000000000000000000000000000000000000000000000000000148061057d57507fffffffff0000000000000000000000000000000000000000000000000000000082167f4000aea000000000000000000000000000000000000000000000000000000000145b806105c957507fffffffff0000000000000000000000000000000000000000000000000000000082167fe6599b4d00000000000000000000000000000000000000000000000000000000145b8061061557507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60606003805461062a90611cda565b80601f016020809104026020016040519081016040528092919081815260200182805461065690611cda565b80156106a35780601f10610678576101008083540402835291602001916106a3565b820191906000526020600020905b81548152906001019060200180831161068657829003601f168201915b5050505050905090565b6000336106bb818585610df7565b5060019392505050565b6000336106d3858285610e2b565b6106de858585610efc565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906106bb9082908690610730908790611d5c565b610df7565b60006107418484610c9f565b508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1685856040516107a1929190611d6f565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff84163b156106bb576040517fa4c0ed3600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063a4c0ed369061081c90339087908790600401611d90565b600060405180830381600087803b15801561083657600080fd5b505af115801561084a573d6000803e3d6000fd5b505050505060019392505050565b61086133610cad565b61089e576040517fe2c8c9d50000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b813073ffffffffffffffffffffffffffffffffffffffff8216036108c157600080fd5b7f00000000000000000000000000000000000000000000000000000000000000001580159061092257507f00000000000000000000000000000000000000000000000000000000000000008261091660025490565b6109209190611d5c565b115b15610970578161093160025490565b61093b9190611d5c565b6040517fcbbf111300000000000000000000000000000000000000000000000000000000815260040161089591815260200190565b61097a8383610f2a565b505050565b610988336109cc565b6109c0576040517fc820b10b000000000000000000000000000000000000000000000000000000008152336004820152602401610895565b6109c98161101d565b50565b6000610615600983611027565b6109e1611056565b6109ec6009826110d9565b156109c95760405173ffffffffffffffffffffffffffffffffffffffff8216907f0a675452746933cefe3d74182e78db7afe57ba60eaa4234b5d85e9aa41b0610c90600090a250565b6000610a418383610bce565b9392505050565b6060610a5460076110fb565b905090565b60065473ffffffffffffffffffffffffffffffffffffffff163314610ada576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610895565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000008082163390811790935560068054909116905560405173ffffffffffffffffffffffffffffffffffffffff909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b610b63336109cc565b610b9b576040517fc820b10b000000000000000000000000000000000000000000000000000000008152336004820152602401610895565b610ba58282611108565b5050565b6060610a5460096110fb565b60606004805461062a90611cda565b610ba58282610b5a565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610c92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610895565b6106de8286868403610df7565b6000336106bb818585610efc565b6000610615600783611027565b610cc2611056565b610ccd60078261111d565b156109c95760405173ffffffffffffffffffffffffffffffffffffffff8216907fe46fef8bbff1389d9010703cf8ebb363fb3daf5bf56edc27080b67bc8d9251ea90600090a250565b610d1f81610cba565b6109c9815b610d2c611056565b610d3760098261111d565b156109c95760405173ffffffffffffffffffffffffffffffffffffffff8216907f92308bb7573b2a3d17ddb868b39d8ebec433f3194421abc22d084f89658c9bad90600090a250565b61097a82826106e9565b610d92611056565b6109c98161113f565b610da3611056565b610dae6007826110d9565b156109c95760405173ffffffffffffffffffffffffffffffffffffffff8216907fed998b960f6340d045f620c119730f7aa7995e7425c2401d3a5b64ff998a59e990600090a250565b813073ffffffffffffffffffffffffffffffffffffffff821603610e1a57600080fd5b610e25848484611235565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e255781811015610eef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610895565b610e258484848403610df7565b813073ffffffffffffffffffffffffffffffffffffffff821603610f1f57600080fd5b610e258484846113e8565b73ffffffffffffffffffffffffffffffffffffffff8216610fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610895565b8060026000828254610fb99190611d5c565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6109c93382611657565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001830160205260408120541515610a41565b60055473ffffffffffffffffffffffffffffffffffffffff1633146110d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610895565b565b6000610a418373ffffffffffffffffffffffffffffffffffffffff841661181b565b60606000610a418361190e565b611113823383610e2b565b610ba58282611657565b6000610a418373ffffffffffffffffffffffffffffffffffffffff841661196a565b3373ffffffffffffffffffffffffffffffffffffffff8216036111be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610895565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116918217909255600554604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b73ffffffffffffffffffffffffffffffffffffffff83166112d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff821661137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff831661148b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff821661152e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156115e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610e25565b73ffffffffffffffffffffffffffffffffffffffff82166116fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054818110156117b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610895565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6000818152600183016020526040812054801561190457600061183f600183611dce565b855490915060009061185390600190611dce565b90508181146118b857600086600001828154811061187357611873611de1565b906000526020600020015490508087600001848154811061189657611896611de1565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806118c9576118c9611e10565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610615565b6000915050610615565b60608160000180548060200260200160405190810160405280929190818152602001828054801561195e57602002820191906000526020600020905b81548152602001906001019080831161194a575b50505050509050919050565b60008181526001830160205260408120546119b157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610615565b506000610615565b6000602082840312156119cb57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610a4157600080fd5b6000815180845260005b81811015611a2157602081850181015186830182015201611a05565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610a4160208301846119fb565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a9657600080fd5b919050565b60008060408385031215611aae57600080fd5b611ab783611a72565b946020939093013593505050565b600080600060608486031215611ada57600080fd5b611ae384611a72565b9250611af160208501611a72565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600060608486031215611b4557600080fd5b611b4e84611a72565b925060208401359150604084013567ffffffffffffffff80821115611b7257600080fd5b818601915086601f830112611b8657600080fd5b813581811115611b9857611b98611b01565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611bde57611bde611b01565b81604052828152896020848701011115611bf757600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600060208284031215611c2b57600080fd5b5035919050565b600060208284031215611c4457600080fd5b610a4182611a72565b6020808252825182820181905260009190848201906040850190845b81811015611c9b57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101611c69565b50909695505050505050565b60008060408385031215611cba57600080fd5b611cc383611a72565b9150611cd160208401611a72565b90509250929050565b600181811c90821680611cee57607f821691505b602082108103611d27577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561061557610615611d2d565b828152604060208201526000611d8860408301846119fb565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff84168152826020820152606060408201526000611dc560608301846119fb565b95945050505050565b8181038181111561061557610615611d2d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000813000a", +} + +var BurnMintERC677ABI = BurnMintERC677MetaData.ABI + +var BurnMintERC677Bin = BurnMintERC677MetaData.Bin + +func DeployBurnMintERC677(auth *bind.TransactOpts, backend bind.ContractBackend, name string, symbol string, decimals_ uint8, maxSupply_ *big.Int) (common.Address, *types.Transaction, *BurnMintERC677, error) { + parsed, err := BurnMintERC677MetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(BurnMintERC677Bin), backend, name, symbol, decimals_, maxSupply_) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &BurnMintERC677{address: address, abi: *parsed, BurnMintERC677Caller: BurnMintERC677Caller{contract: contract}, BurnMintERC677Transactor: BurnMintERC677Transactor{contract: contract}, BurnMintERC677Filterer: BurnMintERC677Filterer{contract: contract}}, nil +} + +type BurnMintERC677 struct { + address common.Address + abi abi.ABI + BurnMintERC677Caller + BurnMintERC677Transactor + BurnMintERC677Filterer +} + +type BurnMintERC677Caller struct { + contract *bind.BoundContract +} + +type BurnMintERC677Transactor struct { + contract *bind.BoundContract +} + +type BurnMintERC677Filterer struct { + contract *bind.BoundContract +} + +type BurnMintERC677Session struct { + Contract *BurnMintERC677 + CallOpts bind.CallOpts + TransactOpts bind.TransactOpts +} + +type BurnMintERC677CallerSession struct { + Contract *BurnMintERC677Caller + CallOpts bind.CallOpts +} + +type BurnMintERC677TransactorSession struct { + Contract *BurnMintERC677Transactor + TransactOpts bind.TransactOpts +} + +type BurnMintERC677Raw struct { + Contract *BurnMintERC677 +} + +type BurnMintERC677CallerRaw struct { + Contract *BurnMintERC677Caller +} + +type BurnMintERC677TransactorRaw struct { + Contract *BurnMintERC677Transactor +} + +func NewBurnMintERC677(address common.Address, backend bind.ContractBackend) (*BurnMintERC677, error) { + abi, err := abi.JSON(strings.NewReader(BurnMintERC677ABI)) + if err != nil { + return nil, err + } + contract, err := bindBurnMintERC677(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &BurnMintERC677{address: address, abi: abi, BurnMintERC677Caller: BurnMintERC677Caller{contract: contract}, BurnMintERC677Transactor: BurnMintERC677Transactor{contract: contract}, BurnMintERC677Filterer: BurnMintERC677Filterer{contract: contract}}, nil +} + +func NewBurnMintERC677Caller(address common.Address, caller bind.ContractCaller) (*BurnMintERC677Caller, error) { + contract, err := bindBurnMintERC677(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &BurnMintERC677Caller{contract: contract}, nil +} + +func NewBurnMintERC677Transactor(address common.Address, transactor bind.ContractTransactor) (*BurnMintERC677Transactor, error) { + contract, err := bindBurnMintERC677(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &BurnMintERC677Transactor{contract: contract}, nil +} + +func NewBurnMintERC677Filterer(address common.Address, filterer bind.ContractFilterer) (*BurnMintERC677Filterer, error) { + contract, err := bindBurnMintERC677(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &BurnMintERC677Filterer{contract: contract}, nil +} + +func bindBurnMintERC677(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := BurnMintERC677MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +func (_BurnMintERC677 *BurnMintERC677Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _BurnMintERC677.Contract.BurnMintERC677Caller.contract.Call(opts, result, method, params...) +} + +func (_BurnMintERC677 *BurnMintERC677Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BurnMintERC677.Contract.BurnMintERC677Transactor.contract.Transfer(opts) +} + +func (_BurnMintERC677 *BurnMintERC677Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _BurnMintERC677.Contract.BurnMintERC677Transactor.contract.Transact(opts, method, params...) +} + +func (_BurnMintERC677 *BurnMintERC677CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _BurnMintERC677.Contract.contract.Call(opts, result, method, params...) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BurnMintERC677.Contract.contract.Transfer(opts) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _BurnMintERC677.Contract.contract.Transact(opts, method, params...) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "allowance", owner, spender) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _BurnMintERC677.Contract.Allowance(&_BurnMintERC677.CallOpts, owner, spender) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _BurnMintERC677.Contract.Allowance(&_BurnMintERC677.CallOpts, owner, spender) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) BalanceOf(account common.Address) (*big.Int, error) { + return _BurnMintERC677.Contract.BalanceOf(&_BurnMintERC677.CallOpts, account) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _BurnMintERC677.Contract.BalanceOf(&_BurnMintERC677.CallOpts, account) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "decimals") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) Decimals() (uint8, error) { + return _BurnMintERC677.Contract.Decimals(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) Decimals() (uint8, error) { + return _BurnMintERC677.Contract.Decimals(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) GetBurners(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "getBurners") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) GetBurners() ([]common.Address, error) { + return _BurnMintERC677.Contract.GetBurners(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) GetBurners() ([]common.Address, error) { + return _BurnMintERC677.Contract.GetBurners(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) GetMinters(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "getMinters") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) GetMinters() ([]common.Address, error) { + return _BurnMintERC677.Contract.GetMinters(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) GetMinters() ([]common.Address, error) { + return _BurnMintERC677.Contract.GetMinters(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) IsBurner(opts *bind.CallOpts, burner common.Address) (bool, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "isBurner", burner) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) IsBurner(burner common.Address) (bool, error) { + return _BurnMintERC677.Contract.IsBurner(&_BurnMintERC677.CallOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) IsBurner(burner common.Address) (bool, error) { + return _BurnMintERC677.Contract.IsBurner(&_BurnMintERC677.CallOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) IsMinter(opts *bind.CallOpts, minter common.Address) (bool, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "isMinter", minter) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) IsMinter(minter common.Address) (bool, error) { + return _BurnMintERC677.Contract.IsMinter(&_BurnMintERC677.CallOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) IsMinter(minter common.Address) (bool, error) { + return _BurnMintERC677.Contract.IsMinter(&_BurnMintERC677.CallOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) MaxSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "maxSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) MaxSupply() (*big.Int, error) { + return _BurnMintERC677.Contract.MaxSupply(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) MaxSupply() (*big.Int, error) { + return _BurnMintERC677.Contract.MaxSupply(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) Name() (string, error) { + return _BurnMintERC677.Contract.Name(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) Name() (string, error) { + return _BurnMintERC677.Contract.Name(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) Owner() (common.Address, error) { + return _BurnMintERC677.Contract.Owner(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) Owner() (common.Address, error) { + return _BurnMintERC677.Contract.Owner(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "supportsInterface", interfaceId) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _BurnMintERC677.Contract.SupportsInterface(&_BurnMintERC677.CallOpts, interfaceId) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _BurnMintERC677.Contract.SupportsInterface(&_BurnMintERC677.CallOpts, interfaceId) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) Symbol() (string, error) { + return _BurnMintERC677.Contract.Symbol(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) Symbol() (string, error) { + return _BurnMintERC677.Contract.Symbol(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _BurnMintERC677.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +func (_BurnMintERC677 *BurnMintERC677Session) TotalSupply() (*big.Int, error) { + return _BurnMintERC677.Contract.TotalSupply(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677CallerSession) TotalSupply() (*big.Int, error) { + return _BurnMintERC677.Contract.TotalSupply(&_BurnMintERC677.CallOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "acceptOwnership") +} + +func (_BurnMintERC677 *BurnMintERC677Session) AcceptOwnership() (*types.Transaction, error) { + return _BurnMintERC677.Contract.AcceptOwnership(&_BurnMintERC677.TransactOpts) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _BurnMintERC677.Contract.AcceptOwnership(&_BurnMintERC677.TransactOpts) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "approve", spender, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Approve(&_BurnMintERC677.TransactOpts, spender, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Approve(&_BurnMintERC677.TransactOpts, spender, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "burn", amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) Burn(amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Burn(&_BurnMintERC677.TransactOpts, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) Burn(amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Burn(&_BurnMintERC677.TransactOpts, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) Burn0(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "burn0", account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) Burn0(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Burn0(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) Burn0(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Burn0(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "burnFrom", account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.BurnFrom(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.BurnFrom(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Session) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.DecreaseAllowance(&_BurnMintERC677.TransactOpts, spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.DecreaseAllowance(&_BurnMintERC677.TransactOpts, spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) DecreaseApproval(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "decreaseApproval", spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Session) DecreaseApproval(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.DecreaseApproval(&_BurnMintERC677.TransactOpts, spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) DecreaseApproval(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.DecreaseApproval(&_BurnMintERC677.TransactOpts, spender, subtractedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) GrantBurnRole(opts *bind.TransactOpts, burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "grantBurnRole", burner) +} + +func (_BurnMintERC677 *BurnMintERC677Session) GrantBurnRole(burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantBurnRole(&_BurnMintERC677.TransactOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) GrantBurnRole(burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantBurnRole(&_BurnMintERC677.TransactOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) GrantMintAndBurnRoles(opts *bind.TransactOpts, burnAndMinter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "grantMintAndBurnRoles", burnAndMinter) +} + +func (_BurnMintERC677 *BurnMintERC677Session) GrantMintAndBurnRoles(burnAndMinter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantMintAndBurnRoles(&_BurnMintERC677.TransactOpts, burnAndMinter) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) GrantMintAndBurnRoles(burnAndMinter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantMintAndBurnRoles(&_BurnMintERC677.TransactOpts, burnAndMinter) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) GrantMintRole(opts *bind.TransactOpts, minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "grantMintRole", minter) +} + +func (_BurnMintERC677 *BurnMintERC677Session) GrantMintRole(minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantMintRole(&_BurnMintERC677.TransactOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) GrantMintRole(minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.GrantMintRole(&_BurnMintERC677.TransactOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "increaseAllowance", spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Session) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.IncreaseAllowance(&_BurnMintERC677.TransactOpts, spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.IncreaseAllowance(&_BurnMintERC677.TransactOpts, spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) IncreaseApproval(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "increaseApproval", spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Session) IncreaseApproval(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.IncreaseApproval(&_BurnMintERC677.TransactOpts, spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) IncreaseApproval(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.IncreaseApproval(&_BurnMintERC677.TransactOpts, spender, addedValue) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) Mint(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "mint", account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Mint(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Mint(&_BurnMintERC677.TransactOpts, account, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) RevokeBurnRole(opts *bind.TransactOpts, burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "revokeBurnRole", burner) +} + +func (_BurnMintERC677 *BurnMintERC677Session) RevokeBurnRole(burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.RevokeBurnRole(&_BurnMintERC677.TransactOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) RevokeBurnRole(burner common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.RevokeBurnRole(&_BurnMintERC677.TransactOpts, burner) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) RevokeMintRole(opts *bind.TransactOpts, minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "revokeMintRole", minter) +} + +func (_BurnMintERC677 *BurnMintERC677Session) RevokeMintRole(minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.RevokeMintRole(&_BurnMintERC677.TransactOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) RevokeMintRole(minter common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.RevokeMintRole(&_BurnMintERC677.TransactOpts, minter) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) Transfer(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "transfer", to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Transfer(&_BurnMintERC677.TransactOpts, to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.Transfer(&_BurnMintERC677.TransactOpts, to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) TransferAndCall(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "transferAndCall", to, amount, data) +} + +func (_BurnMintERC677 *BurnMintERC677Session) TransferAndCall(to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferAndCall(&_BurnMintERC677.TransactOpts, to, amount, data) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) TransferAndCall(to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferAndCall(&_BurnMintERC677.TransactOpts, to, amount, data) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "transferFrom", from, to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Session) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferFrom(&_BurnMintERC677.TransactOpts, from, to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferFrom(&_BurnMintERC677.TransactOpts, from, to, amount) +} + +func (_BurnMintERC677 *BurnMintERC677Transactor) TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) { + return _BurnMintERC677.contract.Transact(opts, "transferOwnership", to) +} + +func (_BurnMintERC677 *BurnMintERC677Session) TransferOwnership(to common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferOwnership(&_BurnMintERC677.TransactOpts, to) +} + +func (_BurnMintERC677 *BurnMintERC677TransactorSession) TransferOwnership(to common.Address) (*types.Transaction, error) { + return _BurnMintERC677.Contract.TransferOwnership(&_BurnMintERC677.TransactOpts, to) +} + +type BurnMintERC677ApprovalIterator struct { + Event *BurnMintERC677Approval + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677ApprovalIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677ApprovalIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677ApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677Approval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*BurnMintERC677ApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &BurnMintERC677ApprovalIterator{contract: _BurnMintERC677.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677Approval) + if err := _BurnMintERC677.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseApproval(log types.Log) (*BurnMintERC677Approval, error) { + event := new(BurnMintERC677Approval) + if err := _BurnMintERC677.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677BurnAccessGrantedIterator struct { + Event *BurnMintERC677BurnAccessGranted + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677BurnAccessGrantedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677BurnAccessGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677BurnAccessGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677BurnAccessGrantedIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677BurnAccessGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677BurnAccessGranted struct { + Burner common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterBurnAccessGranted(opts *bind.FilterOpts, burner []common.Address) (*BurnMintERC677BurnAccessGrantedIterator, error) { + + var burnerRule []interface{} + for _, burnerItem := range burner { + burnerRule = append(burnerRule, burnerItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "BurnAccessGranted", burnerRule) + if err != nil { + return nil, err + } + return &BurnMintERC677BurnAccessGrantedIterator{contract: _BurnMintERC677.contract, event: "BurnAccessGranted", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchBurnAccessGranted(opts *bind.WatchOpts, sink chan<- *BurnMintERC677BurnAccessGranted, burner []common.Address) (event.Subscription, error) { + + var burnerRule []interface{} + for _, burnerItem := range burner { + burnerRule = append(burnerRule, burnerItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "BurnAccessGranted", burnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677BurnAccessGranted) + if err := _BurnMintERC677.contract.UnpackLog(event, "BurnAccessGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseBurnAccessGranted(log types.Log) (*BurnMintERC677BurnAccessGranted, error) { + event := new(BurnMintERC677BurnAccessGranted) + if err := _BurnMintERC677.contract.UnpackLog(event, "BurnAccessGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677BurnAccessRevokedIterator struct { + Event *BurnMintERC677BurnAccessRevoked + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677BurnAccessRevokedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677BurnAccessRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677BurnAccessRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677BurnAccessRevokedIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677BurnAccessRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677BurnAccessRevoked struct { + Burner common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterBurnAccessRevoked(opts *bind.FilterOpts, burner []common.Address) (*BurnMintERC677BurnAccessRevokedIterator, error) { + + var burnerRule []interface{} + for _, burnerItem := range burner { + burnerRule = append(burnerRule, burnerItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "BurnAccessRevoked", burnerRule) + if err != nil { + return nil, err + } + return &BurnMintERC677BurnAccessRevokedIterator{contract: _BurnMintERC677.contract, event: "BurnAccessRevoked", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchBurnAccessRevoked(opts *bind.WatchOpts, sink chan<- *BurnMintERC677BurnAccessRevoked, burner []common.Address) (event.Subscription, error) { + + var burnerRule []interface{} + for _, burnerItem := range burner { + burnerRule = append(burnerRule, burnerItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "BurnAccessRevoked", burnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677BurnAccessRevoked) + if err := _BurnMintERC677.contract.UnpackLog(event, "BurnAccessRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseBurnAccessRevoked(log types.Log) (*BurnMintERC677BurnAccessRevoked, error) { + event := new(BurnMintERC677BurnAccessRevoked) + if err := _BurnMintERC677.contract.UnpackLog(event, "BurnAccessRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677MintAccessGrantedIterator struct { + Event *BurnMintERC677MintAccessGranted + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677MintAccessGrantedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677MintAccessGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677MintAccessGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677MintAccessGrantedIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677MintAccessGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677MintAccessGranted struct { + Minter common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterMintAccessGranted(opts *bind.FilterOpts, minter []common.Address) (*BurnMintERC677MintAccessGrantedIterator, error) { + + var minterRule []interface{} + for _, minterItem := range minter { + minterRule = append(minterRule, minterItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "MintAccessGranted", minterRule) + if err != nil { + return nil, err + } + return &BurnMintERC677MintAccessGrantedIterator{contract: _BurnMintERC677.contract, event: "MintAccessGranted", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchMintAccessGranted(opts *bind.WatchOpts, sink chan<- *BurnMintERC677MintAccessGranted, minter []common.Address) (event.Subscription, error) { + + var minterRule []interface{} + for _, minterItem := range minter { + minterRule = append(minterRule, minterItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "MintAccessGranted", minterRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677MintAccessGranted) + if err := _BurnMintERC677.contract.UnpackLog(event, "MintAccessGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseMintAccessGranted(log types.Log) (*BurnMintERC677MintAccessGranted, error) { + event := new(BurnMintERC677MintAccessGranted) + if err := _BurnMintERC677.contract.UnpackLog(event, "MintAccessGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677MintAccessRevokedIterator struct { + Event *BurnMintERC677MintAccessRevoked + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677MintAccessRevokedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677MintAccessRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677MintAccessRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677MintAccessRevokedIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677MintAccessRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677MintAccessRevoked struct { + Minter common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterMintAccessRevoked(opts *bind.FilterOpts, minter []common.Address) (*BurnMintERC677MintAccessRevokedIterator, error) { + + var minterRule []interface{} + for _, minterItem := range minter { + minterRule = append(minterRule, minterItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "MintAccessRevoked", minterRule) + if err != nil { + return nil, err + } + return &BurnMintERC677MintAccessRevokedIterator{contract: _BurnMintERC677.contract, event: "MintAccessRevoked", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchMintAccessRevoked(opts *bind.WatchOpts, sink chan<- *BurnMintERC677MintAccessRevoked, minter []common.Address) (event.Subscription, error) { + + var minterRule []interface{} + for _, minterItem := range minter { + minterRule = append(minterRule, minterItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "MintAccessRevoked", minterRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677MintAccessRevoked) + if err := _BurnMintERC677.contract.UnpackLog(event, "MintAccessRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseMintAccessRevoked(log types.Log) (*BurnMintERC677MintAccessRevoked, error) { + event := new(BurnMintERC677MintAccessRevoked) + if err := _BurnMintERC677.contract.UnpackLog(event, "MintAccessRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677OwnershipTransferRequestedIterator struct { + Event *BurnMintERC677OwnershipTransferRequested + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677OwnershipTransferRequestedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677OwnershipTransferRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677OwnershipTransferRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677OwnershipTransferRequestedIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677OwnershipTransferRequestedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677OwnershipTransferRequested struct { + From common.Address + To common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677OwnershipTransferRequestedIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + if err != nil { + return nil, err + } + return &BurnMintERC677OwnershipTransferRequestedIterator{contract: _BurnMintERC677.contract, event: "OwnershipTransferRequested", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *BurnMintERC677OwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677OwnershipTransferRequested) + if err := _BurnMintERC677.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseOwnershipTransferRequested(log types.Log) (*BurnMintERC677OwnershipTransferRequested, error) { + event := new(BurnMintERC677OwnershipTransferRequested) + if err := _BurnMintERC677.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677OwnershipTransferredIterator struct { + Event *BurnMintERC677OwnershipTransferred + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677OwnershipTransferredIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677OwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677OwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677OwnershipTransferredIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677OwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677OwnershipTransferred struct { + From common.Address + To common.Address + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677OwnershipTransferredIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "OwnershipTransferred", fromRule, toRule) + if err != nil { + return nil, err + } + return &BurnMintERC677OwnershipTransferredIterator{contract: _BurnMintERC677.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BurnMintERC677OwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "OwnershipTransferred", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677OwnershipTransferred) + if err := _BurnMintERC677.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseOwnershipTransferred(log types.Log) (*BurnMintERC677OwnershipTransferred, error) { + event := new(BurnMintERC677OwnershipTransferred) + if err := _BurnMintERC677.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677TransferIterator struct { + Event *BurnMintERC677Transfer + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677TransferIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677TransferIterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677TransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677Transfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677TransferIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &BurnMintERC677TransferIterator{contract: _BurnMintERC677.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Transfer, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677Transfer) + if err := _BurnMintERC677.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseTransfer(log types.Log) (*BurnMintERC677Transfer, error) { + event := new(BurnMintERC677Transfer) + if err := _BurnMintERC677.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type BurnMintERC677Transfer0Iterator struct { + Event *BurnMintERC677Transfer0 + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *BurnMintERC677Transfer0Iterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Transfer0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(BurnMintERC677Transfer0) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *BurnMintERC677Transfer0Iterator) Error() error { + return it.fail +} + +func (it *BurnMintERC677Transfer0Iterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type BurnMintERC677Transfer0 struct { + From common.Address + To common.Address + Value *big.Int + Data []byte + Raw types.Log +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) FilterTransfer0(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677Transfer0Iterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.FilterLogs(opts, "Transfer0", fromRule, toRule) + if err != nil { + return nil, err + } + return &BurnMintERC677Transfer0Iterator{contract: _BurnMintERC677.contract, event: "Transfer0", logs: logs, sub: sub}, nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) WatchTransfer0(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Transfer0, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _BurnMintERC677.contract.WatchLogs(opts, "Transfer0", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(BurnMintERC677Transfer0) + if err := _BurnMintERC677.contract.UnpackLog(event, "Transfer0", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_BurnMintERC677 *BurnMintERC677Filterer) ParseTransfer0(log types.Log) (*BurnMintERC677Transfer0, error) { + event := new(BurnMintERC677Transfer0) + if err := _BurnMintERC677.contract.UnpackLog(event, "Transfer0", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +func (BurnMintERC677Approval) Topic() common.Hash { + return common.HexToHash("0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925") +} + +func (BurnMintERC677BurnAccessGranted) Topic() common.Hash { + return common.HexToHash("0x92308bb7573b2a3d17ddb868b39d8ebec433f3194421abc22d084f89658c9bad") +} + +func (BurnMintERC677BurnAccessRevoked) Topic() common.Hash { + return common.HexToHash("0x0a675452746933cefe3d74182e78db7afe57ba60eaa4234b5d85e9aa41b0610c") +} + +func (BurnMintERC677MintAccessGranted) Topic() common.Hash { + return common.HexToHash("0xe46fef8bbff1389d9010703cf8ebb363fb3daf5bf56edc27080b67bc8d9251ea") +} + +func (BurnMintERC677MintAccessRevoked) Topic() common.Hash { + return common.HexToHash("0xed998b960f6340d045f620c119730f7aa7995e7425c2401d3a5b64ff998a59e9") +} + +func (BurnMintERC677OwnershipTransferRequested) Topic() common.Hash { + return common.HexToHash("0xed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278") +} + +func (BurnMintERC677OwnershipTransferred) Topic() common.Hash { + return common.HexToHash("0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0") +} + +func (BurnMintERC677Transfer) Topic() common.Hash { + return common.HexToHash("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef") +} + +func (BurnMintERC677Transfer0) Topic() common.Hash { + return common.HexToHash("0xe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16") +} + +func (_BurnMintERC677 *BurnMintERC677) Address() common.Address { + return _BurnMintERC677.address +} + +type BurnMintERC677Interface interface { + Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) + + BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) + + Decimals(opts *bind.CallOpts) (uint8, error) + + GetBurners(opts *bind.CallOpts) ([]common.Address, error) + + GetMinters(opts *bind.CallOpts) ([]common.Address, error) + + IsBurner(opts *bind.CallOpts, burner common.Address) (bool, error) + + IsMinter(opts *bind.CallOpts, minter common.Address) (bool, error) + + MaxSupply(opts *bind.CallOpts) (*big.Int, error) + + Name(opts *bind.CallOpts) (string, error) + + Owner(opts *bind.CallOpts) (common.Address, error) + + SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) + + Symbol(opts *bind.CallOpts) (string, error) + + TotalSupply(opts *bind.CallOpts) (*big.Int, error) + + AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) + + Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) + + Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) + + Burn0(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) + + BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) + + DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) + + DecreaseApproval(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) + + GrantBurnRole(opts *bind.TransactOpts, burner common.Address) (*types.Transaction, error) + + GrantMintAndBurnRoles(opts *bind.TransactOpts, burnAndMinter common.Address) (*types.Transaction, error) + + GrantMintRole(opts *bind.TransactOpts, minter common.Address) (*types.Transaction, error) + + IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) + + IncreaseApproval(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) + + Mint(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) + + RevokeBurnRole(opts *bind.TransactOpts, burner common.Address) (*types.Transaction, error) + + RevokeMintRole(opts *bind.TransactOpts, minter common.Address) (*types.Transaction, error) + + Transfer(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) + + TransferAndCall(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) + + TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) + + TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) + + FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*BurnMintERC677ApprovalIterator, error) + + WatchApproval(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) + + ParseApproval(log types.Log) (*BurnMintERC677Approval, error) + + FilterBurnAccessGranted(opts *bind.FilterOpts, burner []common.Address) (*BurnMintERC677BurnAccessGrantedIterator, error) + + WatchBurnAccessGranted(opts *bind.WatchOpts, sink chan<- *BurnMintERC677BurnAccessGranted, burner []common.Address) (event.Subscription, error) + + ParseBurnAccessGranted(log types.Log) (*BurnMintERC677BurnAccessGranted, error) + + FilterBurnAccessRevoked(opts *bind.FilterOpts, burner []common.Address) (*BurnMintERC677BurnAccessRevokedIterator, error) + + WatchBurnAccessRevoked(opts *bind.WatchOpts, sink chan<- *BurnMintERC677BurnAccessRevoked, burner []common.Address) (event.Subscription, error) + + ParseBurnAccessRevoked(log types.Log) (*BurnMintERC677BurnAccessRevoked, error) + + FilterMintAccessGranted(opts *bind.FilterOpts, minter []common.Address) (*BurnMintERC677MintAccessGrantedIterator, error) + + WatchMintAccessGranted(opts *bind.WatchOpts, sink chan<- *BurnMintERC677MintAccessGranted, minter []common.Address) (event.Subscription, error) + + ParseMintAccessGranted(log types.Log) (*BurnMintERC677MintAccessGranted, error) + + FilterMintAccessRevoked(opts *bind.FilterOpts, minter []common.Address) (*BurnMintERC677MintAccessRevokedIterator, error) + + WatchMintAccessRevoked(opts *bind.WatchOpts, sink chan<- *BurnMintERC677MintAccessRevoked, minter []common.Address) (event.Subscription, error) + + ParseMintAccessRevoked(log types.Log) (*BurnMintERC677MintAccessRevoked, error) + + FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677OwnershipTransferRequestedIterator, error) + + WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *BurnMintERC677OwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseOwnershipTransferRequested(log types.Log) (*BurnMintERC677OwnershipTransferRequested, error) + + FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677OwnershipTransferredIterator, error) + + WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BurnMintERC677OwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseOwnershipTransferred(log types.Log) (*BurnMintERC677OwnershipTransferred, error) + + FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677TransferIterator, error) + + WatchTransfer(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Transfer, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseTransfer(log types.Log) (*BurnMintERC677Transfer, error) + + FilterTransfer0(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*BurnMintERC677Transfer0Iterator, error) + + WatchTransfer0(opts *bind.WatchOpts, sink chan<- *BurnMintERC677Transfer0, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseTransfer0(log types.Log) (*BurnMintERC677Transfer0, error) + + Address() common.Address +} diff --git a/seth/dot_graph.go b/seth/dot_graph.go index defecc718..4c193b62e 100644 --- a/seth/dot_graph.go +++ b/seth/dot_graph.go @@ -117,109 +117,110 @@ func (t *Tracer) generateDotGraph(txHash string, calls []*DecodedCall, revertErr var callID int _, exists := callHashToID[hash] - if !exists { - callID = nextID - nextID++ - callHashToID[hash] = callID - - basicNodeID := "node" + strconv.Itoa(callID) + "_basic" - extraNodeID := "node" + strconv.Itoa(callID) + "_extra" - - var from, to string - if call.From != "" && call.From != UNKNOWN { - from = call.From - } else { - from = call.FromAddress + if exists { + // This could be also valid if the same call is present twice in the trace, but in typical scenarios that should not happen + L.Warn().Msg("The same call was present twice. This should not happen and might indicate a bug in the tracer. Check debug log for details") + marshalled, err := json.Marshal(call) + if err == nil { + L.Debug().Msgf("Call: %v", marshalled) } + continue - if call.To != "" && call.To != UNKNOWN { - to = call.To - } else { - to = call.ToAddress - } + } - basicLabel := fmt.Sprintf("\"%s -> %s\n %s\"", from, to, call.CommonData.Method) - extraLabel := fmt.Sprintf("\"Inputs: %s\nOutputs: %s\"", formatMapForLabel(call.CommonData.Input, defaultTruncateTo), formatMapForLabel(call.CommonData.Output, defaultTruncateTo)) + callID = nextID + nextID++ + callHashToID[hash] = callID - isMajorNode := false - for _, path := range shortestPath { - if path == call.Signature { - isMajorNode = true - break - } - } + basicNodeID := "node" + strconv.Itoa(callID) + "_basic" + extraNodeID := "node" + strconv.Itoa(callID) + "_extra" - style := "filled" - nodeColor := "darkslategray" - fontSize := "14.0" - if !isMajorNode { - style = "dashed" - fontSize = "9.0" - nodeColor = "lightslategray" - } + var from, to string + if call.From != "" && call.From != UNKNOWN { + from = call.From + } else { + from = call.FromAddress + } - var subgraphAttrs map[string]string - subgraphAttrs = map[string]string{"color": "darkslategray"} - if call.Error != "" { - subgraphAttrs = map[string]string{"color": "lightcoral"} - nodeColor = "lightcoral" - } + if call.To != "" && call.To != UNKNOWN { + to = call.To + } else { + to = call.ToAddress + } - if err := g.AddNode("G", basicNodeID, map[string]string{"label": basicLabel, "shape": "box", "style": style, "fillcolor": "ivory", "color": nodeColor, "fontcolor": "darkslategray", "fontsize": fontSize, "tooltip": formatTooltip(call)}); err != nil { - return fmt.Errorf("failed to add node: %w", err) - } - if err := g.AddNode("G", extraNodeID, map[string]string{"label": extraLabel, "shape": "box", "style": style, "fillcolor": "gainsboro", "color": nodeColor, "fontcolor": "darkslategray", "fontsize": fontSize}); err != nil { - return fmt.Errorf("failed to add node: %w", err) - } + basicLabel := fmt.Sprintf("\"%s -> %s\n %s\"", from, to, call.CommonData.Method) + extraLabel := fmt.Sprintf("\"Inputs: %s\nOutputs: %s\"", formatMapForLabel(call.CommonData.Input, defaultTruncateTo), formatMapForLabel(call.CommonData.Output, defaultTruncateTo)) - subGraphName := "cluster_" + strconv.Itoa(callID) - if err := g.AddSubGraph("G", subGraphName, subgraphAttrs); err != nil { - return fmt.Errorf("failed to add node: %w", err) + isMajorNode := false + for _, path := range shortestPath { + if path == call.Signature { + isMajorNode = true + break } + } - if err := g.AddNode(subGraphName, basicNodeID, nil); err != nil { - return fmt.Errorf("failed to add node: %w", err) - } - if err := g.AddNode(subGraphName, extraNodeID, map[string]string{"rank": "same"}); err != nil { - return fmt.Errorf("failed to add node: %w", err) - } + style := "filled" + nodeColor := "darkslategray" + fontSize := "14.0" + if !isMajorNode { + style = "dashed" + fontSize = "9.0" + nodeColor = "lightslategray" + } - if idx == 0 { - if err := g.AddEdge("start", basicNodeID, true, nil); err != nil { - return fmt.Errorf("failed to add edge: %w", err) - } + var subgraphAttrs map[string]string + subgraphAttrs = map[string]string{"color": "darkslategray"} + if call.Error != "" { + subgraphAttrs = map[string]string{"color": "lightcoral"} + nodeColor = "lightcoral" + } + + if err := g.AddNode("G", basicNodeID, map[string]string{"label": basicLabel, "shape": "box", "style": style, "fillcolor": "ivory", "color": nodeColor, "fontcolor": "darkslategray", "fontsize": fontSize, "tooltip": formatTooltip(call)}); err != nil { + return fmt.Errorf("failed to add node: %w", err) + } + if err := g.AddNode("G", extraNodeID, map[string]string{"label": extraLabel, "shape": "box", "style": style, "fillcolor": "gainsboro", "color": nodeColor, "fontcolor": "darkslategray", "fontsize": fontSize}); err != nil { + return fmt.Errorf("failed to add node: %w", err) + } + + subGraphName := "cluster_" + strconv.Itoa(callID) + if err := g.AddSubGraph("G", subGraphName, subgraphAttrs); err != nil { + return fmt.Errorf("failed to add node: %w", err) + } + + if err := g.AddNode(subGraphName, basicNodeID, nil); err != nil { + return fmt.Errorf("failed to add node: %w", err) + } + if err := g.AddNode(subGraphName, extraNodeID, map[string]string{"rank": "same"}); err != nil { + return fmt.Errorf("failed to add node: %w", err) + } + + if idx == 0 { + if err := g.AddEdge("start", basicNodeID, true, nil); err != nil { + return fmt.Errorf("failed to add edge: %w", err) } + } + + if call.CommonData.ParentSignature != "" { + for _, parentCall := range calls { + if parentCall.CommonData.Signature == call.CommonData.ParentSignature { + parentHash := hashCall(parentCall) + parentID := callHashToID[parentHash] + parentBasicNodeID := "node" + strconv.Itoa(parentID) + "_basic" + attrs := map[string]string{"fontsize": fontSize, "label": fmt.Sprintf(" \"(%s)\"", ordinalNumber(idx))} + if call.Error != "" { + attrs["color"] = "lightcoral" + attrs["fontcolor"] = "lightcoral" + } else { + attrs["color"] = "darkslategray" + attrs["fontcolor"] = "darkslategray" + } - if call.CommonData.ParentSignature != "" { - for _, parentCall := range calls { - if parentCall.CommonData.Signature == call.CommonData.ParentSignature { - parentHash := hashCall(parentCall) - parentID := callHashToID[parentHash] - parentBasicNodeID := "node" + strconv.Itoa(parentID) + "_basic" - attrs := map[string]string{"fontsize": fontSize, "label": fmt.Sprintf(" \"(%s)\"", ordinalNumber(idx))} - if call.Error != "" { - attrs["color"] = "lightcoral" - attrs["fontcolor"] = "lightcoral" - } else { - attrs["color"] = "darkslategray" - attrs["fontcolor"] = "darkslategray" - } - - if err := g.AddEdge(parentBasicNodeID, basicNodeID, true, attrs); err != nil { - return fmt.Errorf("failed to add edge: %w", err) - } - break + if err := g.AddEdge(parentBasicNodeID, basicNodeID, true, attrs); err != nil { + return fmt.Errorf("failed to add edge: %w", err) } + break } } - } else { - // This could be also valid if the same call is present twice in the trace, but in typical scenarios that should not happen - L.Warn().Msg("The same call was present twice. This should not happen and might indicate a bug in the tracer. Check debug log for details") - marshalled, err := json.Marshal(call) - if err == nil { - L.Debug().Msgf("Call: %v", marshalled) - } - continue } } diff --git a/seth/examples_wasp/client_main_test.go b/seth/examples_wasp/client_main_test.go index 2838523ff..f74f94174 100644 --- a/seth/examples_wasp/client_main_test.go +++ b/seth/examples_wasp/client_main_test.go @@ -45,7 +45,7 @@ func NewDebugContractSetup() ( if err != nil { return nil, nil, common.Address{}, common.Address{}, nil, err } - cs, err := seth.NewContractStore(cfg.ABIDir, cfg.BINDir) + cs, err := seth.NewContractStore(cfg.ABIDir, cfg.BINDir, nil) if err != nil { return nil, nil, common.Address{}, common.Address{}, nil, err } diff --git a/seth/examples_wasp/client_wasp_test.go b/seth/examples_wasp/client_wasp_test.go index 808458e98..4a6429492 100644 --- a/seth/examples_wasp/client_wasp_test.go +++ b/seth/examples_wasp/client_wasp_test.go @@ -25,7 +25,7 @@ func NewExampleHTTPGun(client *seth.Client) *ExampleGun { } } -func (m *ExampleGun) Call(l *wasp.Generator) *wasp.Response { +func (m *ExampleGun) Call(_ *wasp.Generator) *wasp.Response { _, err := m.client.Decode( TestEnv.DebugContract.AddCounter(m.client.NewTXKeyOpts(m.client.AnySyncedKey()), big.NewInt(0), big.NewInt(1)), ) diff --git a/seth/keyfile.go b/seth/keyfile.go index e0241b63d..6c29e3983 100644 --- a/seth/keyfile.go +++ b/seth/keyfile.go @@ -28,6 +28,7 @@ func NewAddress() (string, string, error) { L.Info(). Str("Addr", address). Msg("New address created") + return address, hexutil.Encode(privateKeyBytes)[2:], nil } diff --git a/seth/seth.toml b/seth/seth.toml index 208ee2967..9124f3fe7 100644 --- a/seth/seth.toml +++ b/seth/seth.toml @@ -3,6 +3,10 @@ abi_dir = "contracts/abi" # contract bytecodes are optional, but necessary if we want to deploy them via Contract Store bin_dir = "contracts/bin" +# Seth will walk through all the files in the directories and load ABIs from them, if they are valid Geth wrappers +# Files that are not geth wrappers will be ignored. Invalid or empty ABIs will cause Seth to fail to initialise +# geth_wrappers_dirs = ["contracts/bind"] + # Uncomment if you want to load (address -> ABI_name) mapping from a file # It will also save any new contract deployment (address -> ABI_name) mapping there. # This functionality is not used for simulated networks. diff --git a/seth/shell.nix b/seth/shell.nix index f484a8708..5fd6325a1 100644 --- a/seth/shell.nix +++ b/seth/shell.nix @@ -8,7 +8,6 @@ pkgs.mkShell { go gopls delve - golangci-lint gotools jq ]; @@ -17,5 +16,11 @@ pkgs.mkShell { shellHook = '' solc-select install 0.8.19 solc-select use 0.8.19 + # setup go bin for nix + export GOBIN=$HOME/.nix-go/bin + mkdir -p $GOBIN + export PATH=$GOBIN:$PATH + # workaround to install newer golangci-lint, so that we don't have to update all dependencies + go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.57.2 ''; } diff --git a/seth/test_utils/client.go b/seth/test_utils/client.go index ef905679f..12280f925 100644 --- a/seth/test_utils/client.go +++ b/seth/test_utils/client.go @@ -14,61 +14,6 @@ import ( var zero int64 -// -//// NewClientWithEphemeralAddresses creates a new Seth client with the given number of addresses. Each address is funded with the -//// calculated with the amount of ETH calculated by dividing the total balance of root key by the number of addresses (minus root key buffer amount). -//func NewClientWithEphemeralAddresses(t *testing.T, addressCount int) *seth.Client { -// cfg, err := seth.ReadConfig() -// require.NoError(t, err, "failed to read config") -// -// cfg.EphemeralAddrs = &zero -// -// c, err := seth.NewClientWithConfig(cfg) -// require.NoError(t, err, "failed to initialize seth") -// -// var privateKeys []string -// var addresses []string -// for i := 0; i < addressCount; i++ { -// addr, pk, err := seth.NewAddress() -// require.NoError(t, err, "failed to generate new address") -// -// privateKeys = append(privateKeys, pk) -// addresses = append(addresses, addr) -// } -// -// gasPrice, err := c.GetSuggestedLegacyFees(context.Background(), seth.Priority_Standard) -// if err != nil { -// gasPrice = big.NewInt(c.Cfg.Network.GasPrice) -// } -// -// bd, err := c.CalculateSubKeyFunding(int64(addressCount), gasPrice.Int64(), *cfg.RootKeyFundsBuffer) -// require.NoError(t, err, "failed to calculate subkey funding") -// -// ctx, cancel := context.WithCancel(context.Background()) -// defer cancel() -// eg, egCtx := errgroup.WithContext(ctx) -// // root key is element 0 in ephemeral -// for _, addr := range addresses { -// addr := addr -// eg.Go(func() error { -// return c.TransferETHFromKey(egCtx, 0, addr, bd.AddrFunding, gasPrice) -// }) -// } -// err = eg.Wait() -// require.NoError(t, err, "failed to transfer funds to subkeys") -// -// // Add root private key to the list of private keys -// pksToUse := []string{cfg.Network.PrivateKeys[0]} -// pksToUse = append(pksToUse, privateKeys...) -// // Set funded private keys in config and create a new Seth client to simulate a situation, in which PKs were passed in config to a new client -// cfg.Network.PrivateKeys = pksToUse -// -// newClient, err := seth.NewClientWithConfig(cfg) -// require.NoError(t, err, "failed to initialize new Seth with private keys") -// -// return newClient -//} - // NewClientWithAddresses creates a new Seth client with the given number of addresses. Each address is funded with the given amount of native tokens. // If funding is `nil` then each address is funded with the calculated with the amount of ETH calculated by dividing the total balance of root key by the number of addresses (minus root key buffer amount). func NewClientWithAddresses(t *testing.T, addressCount int, funding *big.Int) *seth.Client { diff --git a/shell.nix b/shell.nix index 038c714b5..b5f5ca692 100644 --- a/shell.nix +++ b/shell.nix @@ -33,7 +33,6 @@ mkShell' { gotools gopls delve - golangci-lint github-cli jq dasel @@ -70,5 +69,7 @@ mkShell' { export PATH=$GOBIN:$PATH # install gotestloghelper go install github.com/smartcontractkit/chainlink-testing-framework/tools/gotestloghelper@latest + # workaround to install newer golangci-lint, so that we don't have to update all dependencies + go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.57.2 ''; }