github.com/diadata-org/diadata@v1.4.593/pkg/dia/scraper/exchange-scrapers/anyswap/anyswaproutereth.go (about)

     1  // Code generated - DO NOT EDIT.
     2  // This file is a generated binding and any manual changes will be lost.
     3  
     4  package anyswaproutereth
     5  
     6  import (
     7  	"errors"
     8  	"math/big"
     9  	"strings"
    10  
    11  	ethereum "github.com/ethereum/go-ethereum"
    12  	"github.com/ethereum/go-ethereum/accounts/abi"
    13  	"github.com/ethereum/go-ethereum/accounts/abi/bind"
    14  	"github.com/ethereum/go-ethereum/common"
    15  	"github.com/ethereum/go-ethereum/core/types"
    16  	"github.com/ethereum/go-ethereum/event"
    17  )
    18  
    19  // Reference imports to suppress errors if they are not otherwise used.
    20  var (
    21  	_ = errors.New
    22  	_ = big.NewInt
    23  	_ = strings.NewReader
    24  	_ = ethereum.NotFound
    25  	_ = bind.Bind
    26  	_ = common.Big1
    27  	_ = types.BloomLookup
    28  	_ = event.NewSubscription
    29  )
    30  
    31  // AnyswapV1ERC20MetaData contains all meta data concerning the AnyswapV1ERC20 contract.
    32  var AnyswapV1ERC20MetaData = &bind.MetaData{
    33  	ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newVault\",\"type\":\"address\"}],\"name\":\"changeVault\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"depositVault\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"underlying\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"withdrawVault\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
    34  	Sigs: map[string]string{
    35  		"9dc29fac": "burn(address,uint256)",
    36  		"60e232a9": "changeVault(address)",
    37  		"bebbf4d0": "depositVault(uint256,address)",
    38  		"40c10f19": "mint(address,uint256)",
    39  		"6f307dc3": "underlying()",
    40  		"0039d6ec": "withdrawVault(address,uint256,address)",
    41  	},
    42  }
    43  
    44  // AnyswapV1ERC20ABI is the input ABI used to generate the binding from.
    45  // Deprecated: Use AnyswapV1ERC20MetaData.ABI instead.
    46  var AnyswapV1ERC20ABI = AnyswapV1ERC20MetaData.ABI
    47  
    48  // Deprecated: Use AnyswapV1ERC20MetaData.Sigs instead.
    49  // AnyswapV1ERC20FuncSigs maps the 4-byte function signature to its string representation.
    50  var AnyswapV1ERC20FuncSigs = AnyswapV1ERC20MetaData.Sigs
    51  
    52  // AnyswapV1ERC20 is an auto generated Go binding around an Ethereum contract.
    53  type AnyswapV1ERC20 struct {
    54  	AnyswapV1ERC20Caller     // Read-only binding to the contract
    55  	AnyswapV1ERC20Transactor // Write-only binding to the contract
    56  	AnyswapV1ERC20Filterer   // Log filterer for contract events
    57  }
    58  
    59  // AnyswapV1ERC20Caller is an auto generated read-only Go binding around an Ethereum contract.
    60  type AnyswapV1ERC20Caller struct {
    61  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    62  }
    63  
    64  // AnyswapV1ERC20Transactor is an auto generated write-only Go binding around an Ethereum contract.
    65  type AnyswapV1ERC20Transactor struct {
    66  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    67  }
    68  
    69  // AnyswapV1ERC20Filterer is an auto generated log filtering Go binding around an Ethereum contract events.
    70  type AnyswapV1ERC20Filterer struct {
    71  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    72  }
    73  
    74  // AnyswapV1ERC20Session is an auto generated Go binding around an Ethereum contract,
    75  // with pre-set call and transact options.
    76  type AnyswapV1ERC20Session struct {
    77  	Contract     *AnyswapV1ERC20   // Generic contract binding to set the session for
    78  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    79  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    80  }
    81  
    82  // AnyswapV1ERC20CallerSession is an auto generated read-only Go binding around an Ethereum contract,
    83  // with pre-set call options.
    84  type AnyswapV1ERC20CallerSession struct {
    85  	Contract *AnyswapV1ERC20Caller // Generic contract caller binding to set the session for
    86  	CallOpts bind.CallOpts         // Call options to use throughout this session
    87  }
    88  
    89  // AnyswapV1ERC20TransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    90  // with pre-set transact options.
    91  type AnyswapV1ERC20TransactorSession struct {
    92  	Contract     *AnyswapV1ERC20Transactor // Generic contract transactor binding to set the session for
    93  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
    94  }
    95  
    96  // AnyswapV1ERC20Raw is an auto generated low-level Go binding around an Ethereum contract.
    97  type AnyswapV1ERC20Raw struct {
    98  	Contract *AnyswapV1ERC20 // Generic contract binding to access the raw methods on
    99  }
   100  
   101  // AnyswapV1ERC20CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   102  type AnyswapV1ERC20CallerRaw struct {
   103  	Contract *AnyswapV1ERC20Caller // Generic read-only contract binding to access the raw methods on
   104  }
   105  
   106  // AnyswapV1ERC20TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   107  type AnyswapV1ERC20TransactorRaw struct {
   108  	Contract *AnyswapV1ERC20Transactor // Generic write-only contract binding to access the raw methods on
   109  }
   110  
   111  // NewAnyswapV1ERC20 creates a new instance of AnyswapV1ERC20, bound to a specific deployed contract.
   112  func NewAnyswapV1ERC20(address common.Address, backend bind.ContractBackend) (*AnyswapV1ERC20, error) {
   113  	contract, err := bindAnyswapV1ERC20(address, backend, backend, backend)
   114  	if err != nil {
   115  		return nil, err
   116  	}
   117  	return &AnyswapV1ERC20{AnyswapV1ERC20Caller: AnyswapV1ERC20Caller{contract: contract}, AnyswapV1ERC20Transactor: AnyswapV1ERC20Transactor{contract: contract}, AnyswapV1ERC20Filterer: AnyswapV1ERC20Filterer{contract: contract}}, nil
   118  }
   119  
   120  // NewAnyswapV1ERC20Caller creates a new read-only instance of AnyswapV1ERC20, bound to a specific deployed contract.
   121  func NewAnyswapV1ERC20Caller(address common.Address, caller bind.ContractCaller) (*AnyswapV1ERC20Caller, error) {
   122  	contract, err := bindAnyswapV1ERC20(address, caller, nil, nil)
   123  	if err != nil {
   124  		return nil, err
   125  	}
   126  	return &AnyswapV1ERC20Caller{contract: contract}, nil
   127  }
   128  
   129  // NewAnyswapV1ERC20Transactor creates a new write-only instance of AnyswapV1ERC20, bound to a specific deployed contract.
   130  func NewAnyswapV1ERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*AnyswapV1ERC20Transactor, error) {
   131  	contract, err := bindAnyswapV1ERC20(address, nil, transactor, nil)
   132  	if err != nil {
   133  		return nil, err
   134  	}
   135  	return &AnyswapV1ERC20Transactor{contract: contract}, nil
   136  }
   137  
   138  // NewAnyswapV1ERC20Filterer creates a new log filterer instance of AnyswapV1ERC20, bound to a specific deployed contract.
   139  func NewAnyswapV1ERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*AnyswapV1ERC20Filterer, error) {
   140  	contract, err := bindAnyswapV1ERC20(address, nil, nil, filterer)
   141  	if err != nil {
   142  		return nil, err
   143  	}
   144  	return &AnyswapV1ERC20Filterer{contract: contract}, nil
   145  }
   146  
   147  // bindAnyswapV1ERC20 binds a generic wrapper to an already deployed contract.
   148  func bindAnyswapV1ERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   149  	parsed, err := abi.JSON(strings.NewReader(AnyswapV1ERC20ABI))
   150  	if err != nil {
   151  		return nil, err
   152  	}
   153  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   154  }
   155  
   156  // Call invokes the (constant) contract method with params as input values and
   157  // sets the output to result. The result type might be a single field for simple
   158  // returns, a slice of interfaces for anonymous returns and a struct for named
   159  // returns.
   160  func (_AnyswapV1ERC20 *AnyswapV1ERC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   161  	return _AnyswapV1ERC20.Contract.AnyswapV1ERC20Caller.contract.Call(opts, result, method, params...)
   162  }
   163  
   164  // Transfer initiates a plain transaction to move funds to the contract, calling
   165  // its default method if one is available.
   166  func (_AnyswapV1ERC20 *AnyswapV1ERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   167  	return _AnyswapV1ERC20.Contract.AnyswapV1ERC20Transactor.contract.Transfer(opts)
   168  }
   169  
   170  // Transact invokes the (paid) contract method with params as input values.
   171  func (_AnyswapV1ERC20 *AnyswapV1ERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   172  	return _AnyswapV1ERC20.Contract.AnyswapV1ERC20Transactor.contract.Transact(opts, method, params...)
   173  }
   174  
   175  // Call invokes the (constant) contract method with params as input values and
   176  // sets the output to result. The result type might be a single field for simple
   177  // returns, a slice of interfaces for anonymous returns and a struct for named
   178  // returns.
   179  func (_AnyswapV1ERC20 *AnyswapV1ERC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   180  	return _AnyswapV1ERC20.Contract.contract.Call(opts, result, method, params...)
   181  }
   182  
   183  // Transfer initiates a plain transaction to move funds to the contract, calling
   184  // its default method if one is available.
   185  func (_AnyswapV1ERC20 *AnyswapV1ERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   186  	return _AnyswapV1ERC20.Contract.contract.Transfer(opts)
   187  }
   188  
   189  // Transact invokes the (paid) contract method with params as input values.
   190  func (_AnyswapV1ERC20 *AnyswapV1ERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   191  	return _AnyswapV1ERC20.Contract.contract.Transact(opts, method, params...)
   192  }
   193  
   194  // Underlying is a free data retrieval call binding the contract method 0x6f307dc3.
   195  //
   196  // Solidity: function underlying() view returns(address)
   197  func (_AnyswapV1ERC20 *AnyswapV1ERC20Caller) Underlying(opts *bind.CallOpts) (common.Address, error) {
   198  	var out []interface{}
   199  	err := _AnyswapV1ERC20.contract.Call(opts, &out, "underlying")
   200  
   201  	if err != nil {
   202  		return *new(common.Address), err
   203  	}
   204  
   205  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   206  
   207  	return out0, err
   208  
   209  }
   210  
   211  // Underlying is a free data retrieval call binding the contract method 0x6f307dc3.
   212  //
   213  // Solidity: function underlying() view returns(address)
   214  func (_AnyswapV1ERC20 *AnyswapV1ERC20Session) Underlying() (common.Address, error) {
   215  	return _AnyswapV1ERC20.Contract.Underlying(&_AnyswapV1ERC20.CallOpts)
   216  }
   217  
   218  // Underlying is a free data retrieval call binding the contract method 0x6f307dc3.
   219  //
   220  // Solidity: function underlying() view returns(address)
   221  func (_AnyswapV1ERC20 *AnyswapV1ERC20CallerSession) Underlying() (common.Address, error) {
   222  	return _AnyswapV1ERC20.Contract.Underlying(&_AnyswapV1ERC20.CallOpts)
   223  }
   224  
   225  // Burn is a paid mutator transaction binding the contract method 0x9dc29fac.
   226  //
   227  // Solidity: function burn(address from, uint256 amount) returns(bool)
   228  func (_AnyswapV1ERC20 *AnyswapV1ERC20Transactor) Burn(opts *bind.TransactOpts, from common.Address, amount *big.Int) (*types.Transaction, error) {
   229  	return _AnyswapV1ERC20.contract.Transact(opts, "burn", from, amount)
   230  }
   231  
   232  // Burn is a paid mutator transaction binding the contract method 0x9dc29fac.
   233  //
   234  // Solidity: function burn(address from, uint256 amount) returns(bool)
   235  func (_AnyswapV1ERC20 *AnyswapV1ERC20Session) Burn(from common.Address, amount *big.Int) (*types.Transaction, error) {
   236  	return _AnyswapV1ERC20.Contract.Burn(&_AnyswapV1ERC20.TransactOpts, from, amount)
   237  }
   238  
   239  // Burn is a paid mutator transaction binding the contract method 0x9dc29fac.
   240  //
   241  // Solidity: function burn(address from, uint256 amount) returns(bool)
   242  func (_AnyswapV1ERC20 *AnyswapV1ERC20TransactorSession) Burn(from common.Address, amount *big.Int) (*types.Transaction, error) {
   243  	return _AnyswapV1ERC20.Contract.Burn(&_AnyswapV1ERC20.TransactOpts, from, amount)
   244  }
   245  
   246  // ChangeVault is a paid mutator transaction binding the contract method 0x60e232a9.
   247  //
   248  // Solidity: function changeVault(address newVault) returns(bool)
   249  func (_AnyswapV1ERC20 *AnyswapV1ERC20Transactor) ChangeVault(opts *bind.TransactOpts, newVault common.Address) (*types.Transaction, error) {
   250  	return _AnyswapV1ERC20.contract.Transact(opts, "changeVault", newVault)
   251  }
   252  
   253  // ChangeVault is a paid mutator transaction binding the contract method 0x60e232a9.
   254  //
   255  // Solidity: function changeVault(address newVault) returns(bool)
   256  func (_AnyswapV1ERC20 *AnyswapV1ERC20Session) ChangeVault(newVault common.Address) (*types.Transaction, error) {
   257  	return _AnyswapV1ERC20.Contract.ChangeVault(&_AnyswapV1ERC20.TransactOpts, newVault)
   258  }
   259  
   260  // ChangeVault is a paid mutator transaction binding the contract method 0x60e232a9.
   261  //
   262  // Solidity: function changeVault(address newVault) returns(bool)
   263  func (_AnyswapV1ERC20 *AnyswapV1ERC20TransactorSession) ChangeVault(newVault common.Address) (*types.Transaction, error) {
   264  	return _AnyswapV1ERC20.Contract.ChangeVault(&_AnyswapV1ERC20.TransactOpts, newVault)
   265  }
   266  
   267  // DepositVault is a paid mutator transaction binding the contract method 0xbebbf4d0.
   268  //
   269  // Solidity: function depositVault(uint256 amount, address to) returns(uint256)
   270  func (_AnyswapV1ERC20 *AnyswapV1ERC20Transactor) DepositVault(opts *bind.TransactOpts, amount *big.Int, to common.Address) (*types.Transaction, error) {
   271  	return _AnyswapV1ERC20.contract.Transact(opts, "depositVault", amount, to)
   272  }
   273  
   274  // DepositVault is a paid mutator transaction binding the contract method 0xbebbf4d0.
   275  //
   276  // Solidity: function depositVault(uint256 amount, address to) returns(uint256)
   277  func (_AnyswapV1ERC20 *AnyswapV1ERC20Session) DepositVault(amount *big.Int, to common.Address) (*types.Transaction, error) {
   278  	return _AnyswapV1ERC20.Contract.DepositVault(&_AnyswapV1ERC20.TransactOpts, amount, to)
   279  }
   280  
   281  // DepositVault is a paid mutator transaction binding the contract method 0xbebbf4d0.
   282  //
   283  // Solidity: function depositVault(uint256 amount, address to) returns(uint256)
   284  func (_AnyswapV1ERC20 *AnyswapV1ERC20TransactorSession) DepositVault(amount *big.Int, to common.Address) (*types.Transaction, error) {
   285  	return _AnyswapV1ERC20.Contract.DepositVault(&_AnyswapV1ERC20.TransactOpts, amount, to)
   286  }
   287  
   288  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
   289  //
   290  // Solidity: function mint(address to, uint256 amount) returns(bool)
   291  func (_AnyswapV1ERC20 *AnyswapV1ERC20Transactor) Mint(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) {
   292  	return _AnyswapV1ERC20.contract.Transact(opts, "mint", to, amount)
   293  }
   294  
   295  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
   296  //
   297  // Solidity: function mint(address to, uint256 amount) returns(bool)
   298  func (_AnyswapV1ERC20 *AnyswapV1ERC20Session) Mint(to common.Address, amount *big.Int) (*types.Transaction, error) {
   299  	return _AnyswapV1ERC20.Contract.Mint(&_AnyswapV1ERC20.TransactOpts, to, amount)
   300  }
   301  
   302  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
   303  //
   304  // Solidity: function mint(address to, uint256 amount) returns(bool)
   305  func (_AnyswapV1ERC20 *AnyswapV1ERC20TransactorSession) Mint(to common.Address, amount *big.Int) (*types.Transaction, error) {
   306  	return _AnyswapV1ERC20.Contract.Mint(&_AnyswapV1ERC20.TransactOpts, to, amount)
   307  }
   308  
   309  // WithdrawVault is a paid mutator transaction binding the contract method 0x0039d6ec.
   310  //
   311  // Solidity: function withdrawVault(address from, uint256 amount, address to) returns(uint256)
   312  func (_AnyswapV1ERC20 *AnyswapV1ERC20Transactor) WithdrawVault(opts *bind.TransactOpts, from common.Address, amount *big.Int, to common.Address) (*types.Transaction, error) {
   313  	return _AnyswapV1ERC20.contract.Transact(opts, "withdrawVault", from, amount, to)
   314  }
   315  
   316  // WithdrawVault is a paid mutator transaction binding the contract method 0x0039d6ec.
   317  //
   318  // Solidity: function withdrawVault(address from, uint256 amount, address to) returns(uint256)
   319  func (_AnyswapV1ERC20 *AnyswapV1ERC20Session) WithdrawVault(from common.Address, amount *big.Int, to common.Address) (*types.Transaction, error) {
   320  	return _AnyswapV1ERC20.Contract.WithdrawVault(&_AnyswapV1ERC20.TransactOpts, from, amount, to)
   321  }
   322  
   323  // WithdrawVault is a paid mutator transaction binding the contract method 0x0039d6ec.
   324  //
   325  // Solidity: function withdrawVault(address from, uint256 amount, address to) returns(uint256)
   326  func (_AnyswapV1ERC20 *AnyswapV1ERC20TransactorSession) WithdrawVault(from common.Address, amount *big.Int, to common.Address) (*types.Transaction, error) {
   327  	return _AnyswapV1ERC20.Contract.WithdrawVault(&_AnyswapV1ERC20.TransactOpts, from, amount, to)
   328  }
   329  
   330  // AnyswapV4RouterMetaData contains all meta data concerning the AnyswapV4Router contract.
   331  var AnyswapV4RouterMetaData = &bind.MetaData{
   332  	ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wNATIVE\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mpc\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txhash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fromChainID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"toChainID\",\"type\":\"uint256\"}],\"name\":\"LogAnySwapIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fromChainID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"toChainID\",\"type\":\"uint256\"}],\"name\":\"LogAnySwapOut\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fromChainID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"toChainID\",\"type\":\"uint256\"}],\"name\":\"LogAnySwapTradeTokensForNative\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fromChainID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"toChainID\",\"type\":\"uint256\"}],\"name\":\"LogAnySwapTradeTokensForTokens\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldMPC\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newMPC\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"effectiveTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"name\":\"LogChangeMPC\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldRouter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newRouter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"name\":\"LogChangeRouter\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"anySwapFeeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"txs\",\"type\":\"bytes32[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"fromChainIDs\",\"type\":\"uint256[]\"}],\"name\":\"anySwapIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txs\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fromChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txs\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fromChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapInAuto\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txs\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fromChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapInExactTokensForNative\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txs\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fromChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapInExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txs\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fromChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapInUnderlying\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"toChainIDs\",\"type\":\"uint256[]\"}],\"name\":\"anySwapOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapOutExactTokensForNative\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapOutExactTokensForNativeUnderlying\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"toChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapOutExactTokensForNativeUnderlyingWithPermit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"toChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapOutExactTokensForNativeUnderlyingWithTransferPermit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapOutExactTokensForTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapOutExactTokensForTokensUnderlying\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"toChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapOutExactTokensForTokensUnderlyingWithPermit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"toChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapOutExactTokensForTokensUnderlyingWithTransferPermit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapOutUnderlying\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"toChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapOutUnderlyingWithPermit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"toChainID\",\"type\":\"uint256\"}],\"name\":\"anySwapOutUnderlyingWithTransferPermit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMPC\",\"type\":\"address\"}],\"name\":\"changeMPC\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newVault\",\"type\":\"address\"}],\"name\":\"changeVault\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsIn\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mpc\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveB\",\"type\":\"uint256\"}],\"name\":\"quote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wNATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]",
   333  	Sigs: map[string]string{
   334  		"87cc6e2f": "anySwapFeeTo(address,uint256)",
   335  		"825bb13c": "anySwapIn(bytes32,address,address,uint256,uint256)",
   336  		"25121b76": "anySwapIn(bytes32[],address[],address[],uint256[],uint256[])",
   337  		"0175b1c4": "anySwapInAuto(bytes32,address,address,uint256,uint256)",
   338  		"52a397d5": "anySwapInExactTokensForNative(bytes32,uint256,uint256,address[],address,uint256,uint256)",
   339  		"2fc1e728": "anySwapInExactTokensForTokens(bytes32,uint256,uint256,address[],address,uint256,uint256)",
   340  		"3f88de89": "anySwapInUnderlying(bytes32,address,address,uint256,uint256)",
   341  		"241dc2df": "anySwapOut(address,address,uint256,uint256)",
   342  		"dcfb77b1": "anySwapOut(address[],address[],uint256[],uint256[])",
   343  		"65782f56": "anySwapOutExactTokensForNative(uint256,uint256,address[],address,uint256,uint256)",
   344  		"6a453972": "anySwapOutExactTokensForNativeUnderlying(uint256,uint256,address[],address,uint256,uint256)",
   345  		"4d93bb94": "anySwapOutExactTokensForNativeUnderlyingWithPermit(address,uint256,uint256,address[],address,uint256,uint8,bytes32,bytes32,uint256)",
   346  		"c8e174f6": "anySwapOutExactTokensForNativeUnderlyingWithTransferPermit(address,uint256,uint256,address[],address,uint256,uint8,bytes32,bytes32,uint256)",
   347  		"0bb57203": "anySwapOutExactTokensForTokens(uint256,uint256,address[],address,uint256,uint256)",
   348  		"d8b9f610": "anySwapOutExactTokensForTokensUnderlying(uint256,uint256,address[],address,uint256,uint256)",
   349  		"99cd84b5": "anySwapOutExactTokensForTokensUnderlyingWithPermit(address,uint256,uint256,address[],address,uint256,uint8,bytes32,bytes32,uint256)",
   350  		"9aa1ac61": "anySwapOutExactTokensForTokensUnderlyingWithTransferPermit(address,uint256,uint256,address[],address,uint256,uint8,bytes32,bytes32,uint256)",
   351  		"edbdf5e2": "anySwapOutUnderlying(address,address,uint256,uint256)",
   352  		"8d7d3eea": "anySwapOutUnderlyingWithPermit(address,address,address,uint256,uint256,uint8,bytes32,bytes32,uint256)",
   353  		"1b91a934": "anySwapOutUnderlyingWithTransferPermit(address,address,address,uint256,uint256,uint8,bytes32,bytes32,uint256)",
   354  		"99a2f2d7": "cID()",
   355  		"5b7b018c": "changeMPC(address)",
   356  		"456862aa": "changeVault(address,address)",
   357  		"c45a0155": "factory()",
   358  		"85f8c259": "getAmountIn(uint256,uint256,uint256)",
   359  		"054d50d4": "getAmountOut(uint256,uint256,uint256)",
   360  		"1f00ca74": "getAmountsIn(uint256,address[])",
   361  		"d06ca61f": "getAmountsOut(uint256,address[])",
   362  		"f75c2664": "mpc()",
   363  		"ad615dec": "quote(uint256,uint256,uint256)",
   364  		"8fd903f5": "wNATIVE()",
   365  	},
   366  	Bin: "0x60c06040523480156200001157600080fd5b506040516200499738038062004997833981016040819052620000349162000095565b600180546001600160a01b039092166001600160a01b0319909216919091179055426002556001600160601b0319606092831b8116608052911b1660a052620000de565b80516001600160a01b03811681146200009057600080fd5b919050565b600080600060608486031215620000aa578283fd5b620000b58462000078565b9250620000c56020850162000078565b9150620000d56040850162000078565b90509250925092565b60805160601c60a05160601c61484762000150600039600081816101ec01528181611499015281816116380152611e3d015260008181610aef01528181610cda01528181610dc8015281816115230152818161254b015281816128a701528181613322015261338001526148476000f3fe6080604052600436106101dc5760003560e01c8063825bb13c11610102578063ad615dec11610095578063d8b9f61011610064578063d8b9f610146105aa578063dcfb77b1146105ca578063edbdf5e2146105ea578063f75c26641461060a57610229565b8063ad615dec14610535578063c45a015514610555578063c8e174f61461056a578063d06ca61f1461058a57610229565b80638fd903f5116100d15780638fd903f5146104be57806399a2f2d7146104e057806399cd84b5146104f55780639aa1ac611461051557610229565b8063825bb13c1461043e57806385f8c2591461045e57806387cc6e2f1461047e5780638d7d3eea1461049e57610229565b80632fc1e7281161017a57806352a397d51161014957806352a397d5146103be5780635b7b018c146103de57806365782f56146103fe5780636a4539721461041e57610229565b80632fc1e728146103315780633f88de8914610351578063456862aa146103715780634d93bb941461039e57610229565b80631b91a934116101b65780631b91a934146102a45780631f00ca74146102c4578063241dc2df146102f157806325121b761461031157610229565b80630175b1c41461022e578063054d50d41461024e5780630bb572031461028457610229565b3661022957336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461022757634e487b7160e01b600052600160045260246000fd5b005b600080fd5b34801561023a57600080fd5b50610227610249366004613d21565b61061f565b34801561025a57600080fd5b5061026e610269366004613fa3565b61080b565b60405161027b919061465b565b60405180910390f35b34801561029057600080fd5b5061022761029f366004613f28565b610820565b3480156102b057600080fd5b506102276102bf3660046139aa565b610954565b3480156102d057600080fd5b506102e46102df366004613e5b565b610ae8565b60405161027b91906141ee565b3480156102fd57600080fd5b5061022761030c366004613a34565b610b1e565b34801561031d57600080fd5b5061022761032c366004613c16565b610b31565b34801561033d57600080fd5b506102e461034c366004613d72565b610c7a565b34801561035d57600080fd5b5061022761036c366004613d21565b610ed3565b34801561037d57600080fd5b5061039161038c366004613972565b610fa0565b60405161027b9190614232565b3480156103aa57600080fd5b506102276103b9366004613aa4565b61107e565b3480156103ca57600080fd5b506102e46103d9366004613d72565b611434565b3480156103ea57600080fd5b506103916103f9366004613933565b611726565b34801561040a57600080fd5b50610227610419366004613f28565b611829565b34801561042a57600080fd5b50610227610439366004613f28565b611938565b34801561044a57600080fd5b50610227610459366004613d21565b611b16565b34801561046a57600080fd5b5061026e610479366004613fa3565b611b62565b34801561048a57600080fd5b50610227610499366004613a79565b611b6f565b3480156104aa57600080fd5b506102276104b93660046139aa565b611cb5565b3480156104ca57600080fd5b506104d3611e3b565b60405161027b9190614067565b3480156104ec57600080fd5b5061026e611e5f565b34801561050157600080fd5b50610227610510366004613aa4565b611e63565b34801561052157600080fd5b50610227610530366004613aa4565b6121e0565b34801561054157600080fd5b5061026e610550366004613fa3565b61253c565b34801561056157600080fd5b506104d3612549565b34801561057657600080fd5b50610227610585366004613aa4565b61256d565b34801561059657600080fd5b506102e46105a5366004613e5b565b6128a0565b3480156105b657600080fd5b506102276105c5366004613f28565b6128cd565b3480156105d657600080fd5b506102276105e5366004613b57565b6129e9565b3480156105f657600080fd5b50610227610605366004613a34565b612ac7565b34801561061657600080fd5b506104d3612bd1565b610627612bd1565b6001600160a01b0316336001600160a01b0316146106605760405162461bcd60e51b81526004016106579061444d565b60405180910390fd5b61066d8585858585612bff565b60008490506000816001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b1580156106ad57600080fd5b505afa1580156106c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e59190613956565b90506001600160a01b0381161580159061077b57506040516370a0823160e01b815284906001600160a01b038316906370a0823190610728908a90600401614067565b60206040518083038186803b15801561074057600080fd5b505afa158015610754573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107789190613e43565b10155b1561080257604051620e75bb60e21b81526001600160a01b038316906239d6ec906107ae908890889082906004016140f9565b602060405180830381600087803b1580156107c857600080fd5b505af11580156107dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108009190613e43565b505b50505050505050565b6000610818848484612cde565b949350505050565b81428110156108415760405162461bcd60e51b815260040161065790614570565b8585600081811061086257634e487b7160e01b600052603260045260246000fd5b90506020020160208101906108779190613933565b6001600160a01b0316639dc29fac338a6040518363ffffffff1660e01b81526004016108a49291906140e0565b602060405180830381600087803b1580156108be57600080fd5b505af11580156108d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f69190613d01565b506001600160a01b038416337ffea6abdf4fd32f20966dff7619354cd82cd43dc78a3bee479f04c74dbfc585b388888c8c61092f611e5f565b896040516109429695949392919061411c565b60405180910390a35050505050505050565b876001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561098d57600080fd5b505afa1580156109a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c59190613956565b6001600160a01b031663605629d68a8a89898989896040518863ffffffff1660e01b81526004016109fc979695949392919061409f565b602060405180830381600087803b158015610a1657600080fd5b505af1158015610a2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4e9190613d01565b50604051630bebbf4d60e41b81526001600160a01b0389169063bebbf4d090610a7d9089908d90600401614664565b602060405180830381600087803b158015610a9757600080fd5b505af1158015610aab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acf9190613e43565b50610add8989898985612d78565b505050505050505050565b6060610b157f00000000000000000000000000000000000000000000000000000000000000008484612e51565b90505b92915050565b610b2b3385858585612d78565b50505050565b610b39612bd1565b6001600160a01b0316336001600160a01b031614610b695760405162461bcd60e51b81526004016106579061444d565b60005b87811015610c6d57610c5b8b8b83818110610b9757634e487b7160e01b600052603260045260246000fd5b905060200201358a8a84818110610bbe57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610bd39190613933565b898985818110610bf357634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610c089190613933565b888886818110610c2857634e487b7160e01b600052603260045260246000fd5b90506020020135878787818110610c4f57634e487b7160e01b600052603260045260246000fd5b90506020020135612bff565b80610c6581614792565b915050610b6c565b5050505050505050505050565b6060610c84612bd1565b6001600160a01b0316336001600160a01b031614610cb45760405162461bcd60e51b81526004016106579061444d565b8242811015610cd55760405162461bcd60e51b815260040161065790614570565b610d337f00000000000000000000000000000000000000000000000000000000000000008a89898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061300b92505050565b9150878260018451610d459190614738565b81518110610d6357634e487b7160e01b600052603260045260246000fd5b60200260200101511015610d895760405162461bcd60e51b8152600401610657906143ba565b610e878a88886000818110610dae57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610dc39190613933565b610e587f00000000000000000000000000000000000000000000000000000000000000008b8b6000818110610e0857634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610e1d9190613933565b8c8c6001818110610e3e57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610e539190613933565b6131a5565b85600081518110610e7957634e487b7160e01b600052603260045260246000fd5b602002602001015187612bff565b610ec6828888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508a9250613215915050565b5098975050505050505050565b610edb612bd1565b6001600160a01b0316336001600160a01b031614610f0b5760405162461bcd60e51b81526004016106579061444d565b610f188585858585612bff565b604051620e75bb60e21b81526001600160a01b038516906239d6ec90610f46908690869082906004016140f9565b602060405180830381600087803b158015610f6057600080fd5b505af1158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f989190613e43565b505050505050565b6000610faa612bd1565b6001600160a01b0316336001600160a01b031614610fda5760405162461bcd60e51b81526004016106579061444d565b6001600160a01b0382166110005760405162461bcd60e51b8152600401610657906142eb565b6040516360e232a960e01b81526001600160a01b038416906360e232a99061102c908590600401614067565b602060405180830381600087803b15801561104657600080fd5b505af115801561105a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190613d01565b844281101561109f5760405162461bcd60e51b815260040161065790614570565b6000898960008181106110c257634e487b7160e01b600052603260045260246000fd5b90506020020160208101906110d79190613933565b6001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561110f57600080fd5b505afa158015611123573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111479190613956565b9050806001600160a01b031663d505accf8e308f8b8b8b8b6040518863ffffffff1660e01b8152600401611181979695949392919061409f565b600060405180830381600087803b15801561119b57600080fd5b505af11580156111af573d6000803e3d6000fd5b505050506111f4818e8c8c60008181106111d957634e487b7160e01b600052603260045260246000fd5b90506020020160208101906111ee9190613933565b8f61344f565b8989600081811061121557634e487b7160e01b600052603260045260246000fd5b905060200201602081019061122a9190613933565b6001600160a01b031663bebbf4d08d8f6040518363ffffffff1660e01b8152600401611257929190614664565b602060405180830381600087803b15801561127157600080fd5b505af1158015611285573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a99190613e43565b50898960008181106112cb57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906112e09190613933565b6001600160a01b0316639dc29fac8e8e6040518363ffffffff1660e01b815260040161130d9291906140e0565b602060405180830381600087803b15801561132757600080fd5b505af115801561133b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135f9190613d01565b5060008a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050905060008e905060008a905060008f905060008f905060006113c4611e5f565b90506000899050846001600160a01b0316866001600160a01b03167f278277e0209c347189add7bd92411973b5f6b8644f7ac62ea1be984ce993f8f48987878787604051611416959493929190614186565b60405180910390a35050505050505050505050505050505050505050565b606061143e612bd1565b6001600160a01b0316336001600160a01b03161461146e5760405162461bcd60e51b81526004016106579061444d565b824281101561148f5760405162461bcd60e51b815260040161065790614570565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001687876114c6600182614738565b8181106114e357634e487b7160e01b600052603260045260246000fd5b90506020020160208101906114f89190613933565b6001600160a01b03161461151e5760405162461bcd60e51b8152600401610657906144b9565b61157c7f00000000000000000000000000000000000000000000000000000000000000008a89898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061300b92505050565b915087826001845161158e9190614738565b815181106115ac57634e487b7160e01b600052603260045260246000fd5b602002602001015110156115d25760405162461bcd60e51b8152600401610657906144f0565b6115f78a88886000818110610dae57634e487b7160e01b600052603260045260246000fd5b61163682888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613215915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d83600185516116749190614738565b8151811061169257634e487b7160e01b600052603260045260246000fd5b60200260200101516040518263ffffffff1660e01b81526004016116b6919061465b565b600060405180830381600087803b1580156116d057600080fd5b505af11580156116e4573d6000803e3d6000fd5b50505050610ec68583600185516116fb9190614738565b8151811061171957634e487b7160e01b600052603260045260246000fd5b6020026020010151613537565b6000611730612bd1565b6001600160a01b0316336001600160a01b0316146117605760405162461bcd60e51b81526004016106579061444d565b6001600160a01b0382166117865760405162461bcd60e51b8152600401610657906142eb565b61178e612bd1565b600080546001600160a01b03199081166001600160a01b0393841617909155600180549091169184169190911790556117ca426202a3006146e1565b60028190556001546000546001600160a01b0391821691167fcda32bc39904597666dfa9f9c845714756e1ffffad55b52e0d344673a219812161180b611e5f565b604051611818919061465b565b60405180910390a45060015b919050565b814281101561184a5760405162461bcd60e51b815260040161065790614570565b8585600081811061186b57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906118809190613933565b6001600160a01b0316639dc29fac338a6040518363ffffffff1660e01b81526004016118ad9291906140e0565b602060405180830381600087803b1580156118c757600080fd5b505af11580156118db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ff9190613d01565b506001600160a01b038416337f278277e0209c347189add7bd92411973b5f6b8644f7ac62ea1be984ce993f8f488888c8c61092f611e5f565b81428110156119595760405162461bcd60e51b815260040161065790614570565b611a3f8686600081811061197d57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906119929190613933565b6001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b1580156119ca57600080fd5b505afa1580156119de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a029190613956565b3388886000818110611a2457634e487b7160e01b600052603260045260246000fd5b9050602002016020810190611a399190613933565b8b61344f565b85856000818110611a6057634e487b7160e01b600052603260045260246000fd5b9050602002016020810190611a759190613933565b6001600160a01b031663bebbf4d089336040518363ffffffff1660e01b8152600401611aa2929190614664565b602060405180830381600087803b158015611abc57600080fd5b505af1158015611ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af49190613e43565b508585600081811061186b57634e487b7160e01b600052603260045260246000fd5b611b1e612bd1565b6001600160a01b0316336001600160a01b031614611b4e5760405162461bcd60e51b81526004016106579061444d565b611b5b8585858585612bff565b5050505050565b60006108188484846135c9565b611b77612bd1565b6001600160a01b0316336001600160a01b031614611ba75760405162461bcd60e51b81526004016106579061444d565b6000611bb1612bd1565b6040516340c10f1960e01b81529091506001600160a01b038416906340c10f1990611be290849086906004016140e0565b602060405180830381600087803b158015611bfc57600080fd5b505af1158015611c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c349190613d01565b50604051620e75bb60e21b81526001600160a01b038416906239d6ec90611c63908490869082906004016140f9565b602060405180830381600087803b158015611c7d57600080fd5b505af1158015611c91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2b9190613e43565b6000886001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b158015611cf057600080fd5b505afa158015611d04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d289190613956565b60405163d505accf60e01b81529091506001600160a01b0382169063d505accf90611d63908d9030908c908c908c908c908c9060040161409f565b600060405180830381600087803b158015611d7d57600080fd5b505af1158015611d91573d6000803e3d6000fd5b50505050611da1818b8b8a61344f565b604051630bebbf4d60e41b81526001600160a01b038a169063bebbf4d090611dcf908a908e90600401614664565b602060405180830381600087803b158015611de957600080fd5b505af1158015611dfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e219190613e43565b50611e2f8a8a8a8a86612d78565b50505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b4690565b8442811015611e845760405162461bcd60e51b815260040161065790614570565b600089896000818110611ea757634e487b7160e01b600052603260045260246000fd5b9050602002016020810190611ebc9190613933565b6001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b158015611ef457600080fd5b505afa158015611f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2c9190613956565b9050806001600160a01b031663d505accf8e308f8b8b8b8b6040518863ffffffff1660e01b8152600401611f66979695949392919061409f565b600060405180830381600087803b158015611f8057600080fd5b505af1158015611f94573d6000803e3d6000fd5b50505050611fbe818e8c8c60008181106111d957634e487b7160e01b600052603260045260246000fd5b89896000818110611fdf57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190611ff49190613933565b6001600160a01b031663bebbf4d08d8f6040518363ffffffff1660e01b8152600401612021929190614664565b602060405180830381600087803b15801561203b57600080fd5b505af115801561204f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120739190613e43565b508989600081811061209557634e487b7160e01b600052603260045260246000fd5b90506020020160208101906120aa9190613933565b6001600160a01b0316639dc29fac8e8e6040518363ffffffff1660e01b81526004016120d79291906140e0565b602060405180830381600087803b1580156120f157600080fd5b505af1158015612105573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121299190613d01565b5060008a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050905060008e905060008a905060008f905060008f9050600061218e611e5f565b90506000899050846001600160a01b0316866001600160a01b03167ffea6abdf4fd32f20966dff7619354cd82cd43dc78a3bee479f04c74dbfc585b38987878787604051611416959493929190614186565b84428110156122015760405162461bcd60e51b815260040161065790614570565b8888600081811061222257634e487b7160e01b600052603260045260246000fd5b90506020020160208101906122379190613933565b6001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561226f57600080fd5b505afa158015612283573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a79190613956565b6001600160a01b031663605629d68d8b8b60008181106122d757634e487b7160e01b600052603260045260246000fd5b90506020020160208101906122ec9190613933565b8e8a8a8a8a6040518863ffffffff1660e01b8152600401612313979695949392919061409f565b602060405180830381600087803b15801561232d57600080fd5b505af1158015612341573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123659190613d01565b508888600081811061238757634e487b7160e01b600052603260045260246000fd5b905060200201602081019061239c9190613933565b6001600160a01b031663bebbf4d08c8e6040518363ffffffff1660e01b81526004016123c9929190614664565b602060405180830381600087803b1580156123e357600080fd5b505af11580156123f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241b9190613e43565b508888600081811061243d57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906124529190613933565b6001600160a01b0316639dc29fac8d8d6040518363ffffffff1660e01b815260040161247f9291906140e0565b602060405180830381600087803b15801561249957600080fd5b505af11580156124ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124d19190613d01565b50866001600160a01b03168c6001600160a01b03167ffea6abdf4fd32f20966dff7619354cd82cd43dc78a3bee479f04c74dbfc585b38b8b8f8f612513611e5f565b896040516125269695949392919061411c565b60405180910390a3505050505050505050505050565b600061081884848461365d565b7f000000000000000000000000000000000000000000000000000000000000000081565b844281101561258e5760405162461bcd60e51b815260040161065790614570565b888860008181106125af57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906125c49190613933565b6001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b1580156125fc57600080fd5b505afa158015612610573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126349190613956565b6001600160a01b031663605629d68d8b8b600081811061266457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906126799190613933565b8e8a8a8a8a6040518863ffffffff1660e01b81526004016126a0979695949392919061409f565b602060405180830381600087803b1580156126ba57600080fd5b505af11580156126ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f29190613d01565b508888600081811061271457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906127299190613933565b6001600160a01b031663bebbf4d08c8e6040518363ffffffff1660e01b8152600401612756929190614664565b602060405180830381600087803b15801561277057600080fd5b505af1158015612784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a89190613e43565b50888860008181106127ca57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906127df9190613933565b6001600160a01b0316639dc29fac8d8d6040518363ffffffff1660e01b815260040161280c9291906140e0565b602060405180830381600087803b15801561282657600080fd5b505af115801561283a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061285e9190613d01565b50866001600160a01b03168c6001600160a01b03167f278277e0209c347189add7bd92411973b5f6b8644f7ac62ea1be984ce993f8f48b8b8f8f612513611e5f565b6060610b157f0000000000000000000000000000000000000000000000000000000000000000848461300b565b81428110156128ee5760405162461bcd60e51b815260040161065790614570565b6129128686600081811061197d57634e487b7160e01b600052603260045260246000fd5b8585600081811061293357634e487b7160e01b600052603260045260246000fd5b90506020020160208101906129489190613933565b6001600160a01b031663bebbf4d089336040518363ffffffff1660e01b8152600401612975929190614664565b602060405180830381600087803b15801561298f57600080fd5b505af11580156129a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129c79190613e43565b508585600081811061086257634e487b7160e01b600052603260045260246000fd5b60005b87811015610add57612ab5338a8a84818110612a1857634e487b7160e01b600052603260045260246000fd5b9050602002016020810190612a2d9190613933565b898985818110612a4d57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190612a629190613933565b888886818110612a8257634e487b7160e01b600052603260045260246000fd5b90506020020135878787818110612aa957634e487b7160e01b600052603260045260246000fd5b90506020020135612d78565b80612abf81614792565b9150506129ec565b612b43846001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b158015612b0357600080fd5b505afa158015612b17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3b9190613956565b33868561344f565b604051630bebbf4d60e41b81526001600160a01b0385169063bebbf4d090612b719085903390600401614664565b602060405180830381600087803b158015612b8b57600080fd5b505af1158015612b9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc39190613e43565b50610b2b3385858585612d78565b60006002544210612bee57506001546001600160a01b0316612bfc565b506000546001600160a01b03165b90565b6040516340c10f1960e01b81526001600160a01b038516906340c10f1990612c2d90869086906004016140e0565b602060405180830381600087803b158015612c4757600080fd5b505af1158015612c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c7f9190613d01565b50826001600160a01b0316846001600160a01b0316867faac9ce45fe3adf5143598c4f18a369591a20a3384aedaf1b525d29127e1fcd558585612cc0611e5f565b604051612ccf939291906146cb565b60405180910390a45050505050565b6000808411612cff5760405162461bcd60e51b8152600401610657906145a7565b600083118015612d0f5750600082115b612d2b5760405162461bcd60e51b81526004016106579061423d565b6000612d39856103e56136bf565b90506000612d4782856136bf565b90506000612d6183612d5b886103e86136bf565b906136ff565b9050612d6d81836146f9565b979650505050505050565b604051632770a7eb60e21b81526001600160a01b03851690639dc29fac90612da690889086906004016140e0565b602060405180830381600087803b158015612dc057600080fd5b505af1158015612dd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612df89190613d01565b50826001600160a01b0316856001600160a01b0316856001600160a01b03167f97116cf6cd4f6412bb47914d6db18da9e16ab2142f543b86e207c24fbd16b23a85612e41611e5f565b86604051612ccf939291906146cb565b6060600282511015612e755760405162461bcd60e51b815260040161065790614626565b815167ffffffffffffffff811115612e9d57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612ec6578160200160208202803683370190505b509050828160018351612ed99190614738565b81518110612ef757634e487b7160e01b600052603260045260246000fd5b602002602001018181525050600060018351612f139190614738565b90505b801561300357600080612f828786612f2f600187614738565b81518110612f4d57634e487b7160e01b600052603260045260246000fd5b6020026020010151878681518110612f7557634e487b7160e01b600052603260045260246000fd5b602002602001015161372d565b91509150612fb8848481518110612fa957634e487b7160e01b600052603260045260246000fd5b602002602001015183836135c9565b84612fc4600186614738565b81518110612fe257634e487b7160e01b600052603260045260246000fd5b60200260200101818152505050508080612ffb9061477b565b915050612f16565b509392505050565b606060028251101561302f5760405162461bcd60e51b815260040161065790614626565b815167ffffffffffffffff81111561305757634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613080578160200160208202803683370190505b50905082816000815181106130a557634e487b7160e01b600052603260045260246000fd5b60200260200101818152505060005b600183516130c29190614738565b81101561300357600080613124878685815181106130f057634e487b7160e01b600052603260045260246000fd5b60200260200101518786600161310691906146e1565b81518110612f7557634e487b7160e01b600052603260045260246000fd5b9150915061315a84848151811061314b57634e487b7160e01b600052603260045260246000fd5b60200260200101518383612cde565b846131668560016146e1565b8151811061318457634e487b7160e01b600052603260045260246000fd5b6020026020010181815250505050808061319d90614792565b9150506130b4565b60008060006131b48585613806565b915091508582826040516020016131cc929190613fce565b604051602081830303815290604052805190602001206040516020016131f3929190614011565b60408051601f1981840301815291905280516020909101209695505050505050565b60005b600183516132269190614738565b811015610b2b5760008084838151811061325057634e487b7160e01b600052603260045260246000fd5b60200260200101518584600161326691906146e1565b8151811061328457634e487b7160e01b600052603260045260246000fd5b602002602001015191509150600061329c8383613806565b5090506000876132ad8660016146e1565b815181106132cb57634e487b7160e01b600052603260045260246000fd5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146132f9578260006132fd565b6000835b91509150600060028a516133119190614738565b881061331d5788613379565b6133797f0000000000000000000000000000000000000000000000000000000000000000878c61334e8c60026146e1565b8151811061336c57634e487b7160e01b600052603260045260246000fd5b60200260200101516131a5565b90506133a67f000000000000000000000000000000000000000000000000000000000000000088886131a5565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156133e3576020820181803683370190505b506040518563ffffffff1660e01b8152600401613403949392919061467b565b600060405180830381600087803b15801561341d57600080fd5b505af1158015613431573d6000803e3d6000fd5b5050505050505050505050808061344790614792565b915050613218565b600080856001600160a01b03166323b872dd8686866040516024016134769392919061407b565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516134af9190613ff5565b6000604051808303816000865af19150503d80600081146134ec576040519150601f19603f3d011682016040523d82523d6000602084013e6134f1565b606091505b509150915081801561351b57508051158061351b57508080602001905181019061351b9190613d01565b610f985760405162461bcd60e51b8152600401610657906145e2565b604080516000808252602082019092526001600160a01b0384169083906040516135619190613ff5565b60006040518083038185875af1925050503d806000811461359e576040519150601f19603f3d011682016040523d82523d6000602084013e6135a3565b606091505b50509050806135c45760405162461bcd60e51b815260040161065790614407565b505050565b60008084116135ea5760405162461bcd60e51b815260040161065790614350565b6000831180156135fa5750600082115b6136165760405162461bcd60e51b81526004016106579061423d565b600061362e6103e861362886886136bf565b906136bf565b905060006136426103e56136288689613890565b90506136536001612d5b83856146f9565b9695505050505050565b600080841161367e5760405162461bcd60e51b81526004016106579061453b565b60008311801561368e5750600082115b6136aa5760405162461bcd60e51b81526004016106579061423d565b826136b585846136bf565b61081891906146f9565b60008115806136e3575082826136d58183614719565b92506136e190836146f9565b145b610b185760405162461bcd60e51b815260040161065790614322565b60008261370c83826146e1565b9150811015610b185760405162461bcd60e51b81526004016106579061438c565b600080600061373c8585613806565b50905060008061374d8888886131a5565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561378557600080fd5b505afa158015613799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137bd9190613df5565b506001600160701b031691506001600160701b03169150826001600160a01b0316876001600160a01b0316146137f45780826137f7565b81815b90999098509650505050505050565b600080826001600160a01b0316846001600160a01b0316141561383b5760405162461bcd60e51b8152600401610657906142a4565b826001600160a01b0316846001600160a01b03161061385b57828461385e565b83835b90925090506001600160a01b0382166138895760405162461bcd60e51b815260040161065790614484565b9250929050565b60008261389d8382614738565b9150811115610b185760405162461bcd60e51b815260040161065790614275565b8035611824816147d9565b60008083601f8401126138da578081fd5b50813567ffffffffffffffff8111156138f1578182fd5b602083019150836020808302850101111561388957600080fd5b80516001600160701b038116811461182457600080fd5b803560ff8116811461182457600080fd5b600060208284031215613944578081fd5b813561394f816147d9565b9392505050565b600060208284031215613967578081fd5b815161394f816147d9565b60008060408385031215613984578081fd5b823561398f816147d9565b9150602083013561399f816147d9565b809150509250929050565b60008060008060008060008060006101208a8c0312156139c8578485fd5b89356139d3816147d9565b985060208a01356139e3816147d9565b975060408a01356139f3816147d9565b965060608a0135955060808a01359450613a0f60a08b01613922565b935060c08a0135925060e08a013591506101008a013590509295985092959850929598565b60008060008060808587031215613a49578384fd5b8435613a54816147d9565b93506020850135613a64816147d9565b93969395505050506040820135916060013590565b60008060408385031215613a8b578182fd5b8235613a96816147d9565b946020939093013593505050565b60008060008060008060008060008060006101408c8e031215613ac5578182fd5b8b35613ad0816147d9565b9a5060208c0135995060408c0135985060608c013567ffffffffffffffff811115613af9578283fd5b613b058e828f016138c9565b90995097505060808c0135613b19816147d9565b955060a08c01359450613b2e60c08d01613922565b935060e08c013592506101008c013591506101208c013590509295989b509295989b9093969950565b6000806000806000806000806080898b031215613b72578182fd5b883567ffffffffffffffff80821115613b89578384fd5b613b958c838d016138c9565b909a50985060208b0135915080821115613bad578384fd5b613bb98c838d016138c9565b909850965060408b0135915080821115613bd1578384fd5b613bdd8c838d016138c9565b909650945060608b0135915080821115613bf5578384fd5b50613c028b828c016138c9565b999c989b5096995094979396929594505050565b60008060008060008060008060008060a08b8d031215613c34578384fd5b8a3567ffffffffffffffff80821115613c4b578586fd5b613c578e838f016138c9565b909c509a5060208d0135915080821115613c6f578586fd5b613c7b8e838f016138c9565b909a50985060408d0135915080821115613c93578586fd5b613c9f8e838f016138c9565b909850965060608d0135915080821115613cb7578586fd5b613cc38e838f016138c9565b909650945060808d0135915080821115613cdb578384fd5b50613ce88d828e016138c9565b915080935050809150509295989b9194979a5092959850565b600060208284031215613d12578081fd5b8151801515811461394f578182fd5b600080600080600060a08688031215613d38578283fd5b853594506020860135613d4a816147d9565b93506040860135613d5a816147d9565b94979396509394606081013594506080013592915050565b60008060008060008060008060e0898b031215613d8d578182fd5b883597506020890135965060408901359550606089013567ffffffffffffffff811115613db8578283fd5b613dc48b828c016138c9565b9096509450506080890135613dd8816147d9565b979a969950949793969295929450505060a08201359160c0013590565b600080600060608486031215613e09578081fd5b613e128461390b565b9250613e206020850161390b565b9150604084015163ffffffff81168114613e38578182fd5b809150509250925092565b600060208284031215613e54578081fd5b5051919050565b60008060408385031215613e6d578182fd5b8235915060208084013567ffffffffffffffff80821115613e8c578384fd5b818601915086601f830112613e9f578384fd5b813581811115613eb157613eb16147c3565b83810260405185828201018181108582111715613ed057613ed06147c3565b604052828152858101935084860182860187018b1015613eee578788fd5b8795505b83861015613f1757613f03816138be565b855260019590950194938601938601613ef2565b508096505050505050509250929050565b600080600080600080600060c0888a031215613f42578081fd5b8735965060208801359550604088013567ffffffffffffffff811115613f66578182fd5b613f728a828b016138c9565b9096509450506060880135613f86816147d9565b969995985093969295946080840135945060a09093013592915050565b600080600060608486031215613fb7578081fd5b505081359360208301359350604090920135919050565b6bffffffffffffffffffffffff19606093841b811682529190921b16601482015260280190565b6000825161400781846020870161474f565b9190910192915050565b6001600160f81b0319815260609290921b6bffffffffffffffffffffffff1916600183015260158201527fe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303603582015260550190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0393841681526020810192909252909116604082015260600190565b60a0808252810186905260008760c08301825b8981101561415f578235614142816147d9565b6001600160a01b031682526020928301929091019060010161412f565b50602084019790975250506040810193909352606083019190915260809091015292915050565b60a0808252865190820181905260009060209060c0840190828a01845b828110156141c85781516001600160a01b0316845292840192908401906001016141a3565b505050908301969096525060408101939093526060830191909152608090910152919050565b6020808252825182820181905260009190848201906040850190845b818110156142265783518352928401929184019160010161420a565b50909695505050505050565b901515815260200190565b6020808252602a908201526000805160206147f28339815191526040820152695f4c495155494449545960b01b606082015260800190565b60208082526015908201527464732d6d6174682d7375622d756e646572666c6f7760581b604082015260600190565b60208082526027908201527f53757368697377617056324c6962726172793a204944454e544943414c5f41446040820152664452455353455360c81b606082015260800190565b6020808252601d908201527f416e79737761705633526f757465723a20616464726573732830783029000000604082015260600190565b60208082526014908201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604082015260600190565b6020808252602e908201526000805160206147f283398151915260408201526d17d3d55514155517d05353d5539560921b606082015260800190565b60208082526014908201527364732d6d6174682d6164642d6f766572666c6f7760601b604082015260600190565b6020808252602d908201527f5375736869737761705632526f757465723a20494e53554646494349454e545f60408201526c13d55514155517d05353d55395609a1b606082015260800190565b60208082526026908201527f5472616e7366657248656c7065723a204e41544956455f5452414e534645525f60408201526511905253115160d21b606082015260800190565b6020808252601a908201527f416e79737761705633526f757465723a20464f5242494444454e000000000000604082015260600190565b6020808252818101527f53757368697377617056324c6962726172793a205a45524f5f41444452455353604082015260600190565b6020808252601d908201527f416e79737761705633526f757465723a20494e56414c49445f50415448000000604082015260600190565b6020808252602b908201527f416e79737761705633526f757465723a20494e53554646494349454e545f4f5560408201526a1514155517d05353d5539560aa1b606082015260800190565b60208082526027908201526000805160206147f283398151915260408201526617d05353d5539560ca1b606082015260800190565b60208082526018908201527f416e79737761705633526f757465723a20455850495245440000000000000000604082015260600190565b6020808252602d908201526000805160206147f283398151915260408201526c17d25394155517d05353d55395609a1b606082015260800190565b60208082526024908201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f46416040820152631253115160e21b606082015260800190565b6020808252818101527f53757368697377617056324c6962726172793a20494e56414c49445f50415448604082015260600190565b90815260200190565b9182526001600160a01b0316602082015260400190565b600085825284602083015260018060a01b03841660408301526080606083015282518060808401526146b48160a085016020870161474f565b601f01601f19169190910160a00195945050505050565b9283526020830191909152604082015260600190565b600082198211156146f4576146f46147ad565b500190565b60008261471457634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615614733576147336147ad565b500290565b60008282101561474a5761474a6147ad565b500390565b60005b8381101561476a578181015183820152602001614752565b83811115610b2b5750506000910152565b60008161478a5761478a6147ad565b506000190190565b60006000198214156147a6576147a66147ad565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146147ee57600080fd5b5056fe53757368697377617056324c6962726172793a20494e53554646494349454e54a2646970667358221220de1914e149706ef357f25f9b6190d0f0338da3e138dd279073255dca43af219464736f6c63430008000033",
   367  }
   368  
   369  // AnyswapV4RouterABI is the input ABI used to generate the binding from.
   370  // Deprecated: Use AnyswapV4RouterMetaData.ABI instead.
   371  var AnyswapV4RouterABI = AnyswapV4RouterMetaData.ABI
   372  
   373  // Deprecated: Use AnyswapV4RouterMetaData.Sigs instead.
   374  // AnyswapV4RouterFuncSigs maps the 4-byte function signature to its string representation.
   375  var AnyswapV4RouterFuncSigs = AnyswapV4RouterMetaData.Sigs
   376  
   377  // AnyswapV4RouterBin is the compiled bytecode used for deploying new contracts.
   378  // Deprecated: Use AnyswapV4RouterMetaData.Bin instead.
   379  var AnyswapV4RouterBin = AnyswapV4RouterMetaData.Bin
   380  
   381  // DeployAnyswapV4Router deploys a new Ethereum contract, binding an instance of AnyswapV4Router to it.
   382  func DeployAnyswapV4Router(auth *bind.TransactOpts, backend bind.ContractBackend, _factory common.Address, _wNATIVE common.Address, _mpc common.Address) (common.Address, *types.Transaction, *AnyswapV4Router, error) {
   383  	parsed, err := AnyswapV4RouterMetaData.GetAbi()
   384  	if err != nil {
   385  		return common.Address{}, nil, nil, err
   386  	}
   387  	if parsed == nil {
   388  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
   389  	}
   390  
   391  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(AnyswapV4RouterBin), backend, _factory, _wNATIVE, _mpc)
   392  	if err != nil {
   393  		return common.Address{}, nil, nil, err
   394  	}
   395  	return address, tx, &AnyswapV4Router{AnyswapV4RouterCaller: AnyswapV4RouterCaller{contract: contract}, AnyswapV4RouterTransactor: AnyswapV4RouterTransactor{contract: contract}, AnyswapV4RouterFilterer: AnyswapV4RouterFilterer{contract: contract}}, nil
   396  }
   397  
   398  // AnyswapV4Router is an auto generated Go binding around an Ethereum contract.
   399  type AnyswapV4Router struct {
   400  	AnyswapV4RouterCaller     // Read-only binding to the contract
   401  	AnyswapV4RouterTransactor // Write-only binding to the contract
   402  	AnyswapV4RouterFilterer   // Log filterer for contract events
   403  }
   404  
   405  // AnyswapV4RouterCaller is an auto generated read-only Go binding around an Ethereum contract.
   406  type AnyswapV4RouterCaller struct {
   407  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   408  }
   409  
   410  // AnyswapV4RouterTransactor is an auto generated write-only Go binding around an Ethereum contract.
   411  type AnyswapV4RouterTransactor struct {
   412  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   413  }
   414  
   415  // AnyswapV4RouterFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
   416  type AnyswapV4RouterFilterer struct {
   417  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   418  }
   419  
   420  // AnyswapV4RouterSession is an auto generated Go binding around an Ethereum contract,
   421  // with pre-set call and transact options.
   422  type AnyswapV4RouterSession struct {
   423  	Contract     *AnyswapV4Router  // Generic contract binding to set the session for
   424  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   425  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   426  }
   427  
   428  // AnyswapV4RouterCallerSession is an auto generated read-only Go binding around an Ethereum contract,
   429  // with pre-set call options.
   430  type AnyswapV4RouterCallerSession struct {
   431  	Contract *AnyswapV4RouterCaller // Generic contract caller binding to set the session for
   432  	CallOpts bind.CallOpts          // Call options to use throughout this session
   433  }
   434  
   435  // AnyswapV4RouterTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
   436  // with pre-set transact options.
   437  type AnyswapV4RouterTransactorSession struct {
   438  	Contract     *AnyswapV4RouterTransactor // Generic contract transactor binding to set the session for
   439  	TransactOpts bind.TransactOpts          // Transaction auth options to use throughout this session
   440  }
   441  
   442  // AnyswapV4RouterRaw is an auto generated low-level Go binding around an Ethereum contract.
   443  type AnyswapV4RouterRaw struct {
   444  	Contract *AnyswapV4Router // Generic contract binding to access the raw methods on
   445  }
   446  
   447  // AnyswapV4RouterCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   448  type AnyswapV4RouterCallerRaw struct {
   449  	Contract *AnyswapV4RouterCaller // Generic read-only contract binding to access the raw methods on
   450  }
   451  
   452  // AnyswapV4RouterTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   453  type AnyswapV4RouterTransactorRaw struct {
   454  	Contract *AnyswapV4RouterTransactor // Generic write-only contract binding to access the raw methods on
   455  }
   456  
   457  // NewAnyswapV4Router creates a new instance of AnyswapV4Router, bound to a specific deployed contract.
   458  func NewAnyswapV4Router(address common.Address, backend bind.ContractBackend) (*AnyswapV4Router, error) {
   459  	contract, err := bindAnyswapV4Router(address, backend, backend, backend)
   460  	if err != nil {
   461  		return nil, err
   462  	}
   463  	return &AnyswapV4Router{AnyswapV4RouterCaller: AnyswapV4RouterCaller{contract: contract}, AnyswapV4RouterTransactor: AnyswapV4RouterTransactor{contract: contract}, AnyswapV4RouterFilterer: AnyswapV4RouterFilterer{contract: contract}}, nil
   464  }
   465  
   466  // NewAnyswapV4RouterCaller creates a new read-only instance of AnyswapV4Router, bound to a specific deployed contract.
   467  func NewAnyswapV4RouterCaller(address common.Address, caller bind.ContractCaller) (*AnyswapV4RouterCaller, error) {
   468  	contract, err := bindAnyswapV4Router(address, caller, nil, nil)
   469  	if err != nil {
   470  		return nil, err
   471  	}
   472  	return &AnyswapV4RouterCaller{contract: contract}, nil
   473  }
   474  
   475  // NewAnyswapV4RouterTransactor creates a new write-only instance of AnyswapV4Router, bound to a specific deployed contract.
   476  func NewAnyswapV4RouterTransactor(address common.Address, transactor bind.ContractTransactor) (*AnyswapV4RouterTransactor, error) {
   477  	contract, err := bindAnyswapV4Router(address, nil, transactor, nil)
   478  	if err != nil {
   479  		return nil, err
   480  	}
   481  	return &AnyswapV4RouterTransactor{contract: contract}, nil
   482  }
   483  
   484  // NewAnyswapV4RouterFilterer creates a new log filterer instance of AnyswapV4Router, bound to a specific deployed contract.
   485  func NewAnyswapV4RouterFilterer(address common.Address, filterer bind.ContractFilterer) (*AnyswapV4RouterFilterer, error) {
   486  	contract, err := bindAnyswapV4Router(address, nil, nil, filterer)
   487  	if err != nil {
   488  		return nil, err
   489  	}
   490  	return &AnyswapV4RouterFilterer{contract: contract}, nil
   491  }
   492  
   493  // bindAnyswapV4Router binds a generic wrapper to an already deployed contract.
   494  func bindAnyswapV4Router(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   495  	parsed, err := abi.JSON(strings.NewReader(AnyswapV4RouterABI))
   496  	if err != nil {
   497  		return nil, err
   498  	}
   499  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   500  }
   501  
   502  // Call invokes the (constant) contract method with params as input values and
   503  // sets the output to result. The result type might be a single field for simple
   504  // returns, a slice of interfaces for anonymous returns and a struct for named
   505  // returns.
   506  func (_AnyswapV4Router *AnyswapV4RouterRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   507  	return _AnyswapV4Router.Contract.AnyswapV4RouterCaller.contract.Call(opts, result, method, params...)
   508  }
   509  
   510  // Transfer initiates a plain transaction to move funds to the contract, calling
   511  // its default method if one is available.
   512  func (_AnyswapV4Router *AnyswapV4RouterRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   513  	return _AnyswapV4Router.Contract.AnyswapV4RouterTransactor.contract.Transfer(opts)
   514  }
   515  
   516  // Transact invokes the (paid) contract method with params as input values.
   517  func (_AnyswapV4Router *AnyswapV4RouterRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   518  	return _AnyswapV4Router.Contract.AnyswapV4RouterTransactor.contract.Transact(opts, method, params...)
   519  }
   520  
   521  // Call invokes the (constant) contract method with params as input values and
   522  // sets the output to result. The result type might be a single field for simple
   523  // returns, a slice of interfaces for anonymous returns and a struct for named
   524  // returns.
   525  func (_AnyswapV4Router *AnyswapV4RouterCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   526  	return _AnyswapV4Router.Contract.contract.Call(opts, result, method, params...)
   527  }
   528  
   529  // Transfer initiates a plain transaction to move funds to the contract, calling
   530  // its default method if one is available.
   531  func (_AnyswapV4Router *AnyswapV4RouterTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   532  	return _AnyswapV4Router.Contract.contract.Transfer(opts)
   533  }
   534  
   535  // Transact invokes the (paid) contract method with params as input values.
   536  func (_AnyswapV4Router *AnyswapV4RouterTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   537  	return _AnyswapV4Router.Contract.contract.Transact(opts, method, params...)
   538  }
   539  
   540  // CID is a free data retrieval call binding the contract method 0x99a2f2d7.
   541  //
   542  // Solidity: function cID() view returns(uint256 id)
   543  func (_AnyswapV4Router *AnyswapV4RouterCaller) CID(opts *bind.CallOpts) (*big.Int, error) {
   544  	var out []interface{}
   545  	err := _AnyswapV4Router.contract.Call(opts, &out, "cID")
   546  
   547  	if err != nil {
   548  		return *new(*big.Int), err
   549  	}
   550  
   551  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   552  
   553  	return out0, err
   554  
   555  }
   556  
   557  // CID is a free data retrieval call binding the contract method 0x99a2f2d7.
   558  //
   559  // Solidity: function cID() view returns(uint256 id)
   560  func (_AnyswapV4Router *AnyswapV4RouterSession) CID() (*big.Int, error) {
   561  	return _AnyswapV4Router.Contract.CID(&_AnyswapV4Router.CallOpts)
   562  }
   563  
   564  // CID is a free data retrieval call binding the contract method 0x99a2f2d7.
   565  //
   566  // Solidity: function cID() view returns(uint256 id)
   567  func (_AnyswapV4Router *AnyswapV4RouterCallerSession) CID() (*big.Int, error) {
   568  	return _AnyswapV4Router.Contract.CID(&_AnyswapV4Router.CallOpts)
   569  }
   570  
   571  // Factory is a free data retrieval call binding the contract method 0xc45a0155.
   572  //
   573  // Solidity: function factory() view returns(address)
   574  func (_AnyswapV4Router *AnyswapV4RouterCaller) Factory(opts *bind.CallOpts) (common.Address, error) {
   575  	var out []interface{}
   576  	err := _AnyswapV4Router.contract.Call(opts, &out, "factory")
   577  
   578  	if err != nil {
   579  		return *new(common.Address), err
   580  	}
   581  
   582  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   583  
   584  	return out0, err
   585  
   586  }
   587  
   588  // Factory is a free data retrieval call binding the contract method 0xc45a0155.
   589  //
   590  // Solidity: function factory() view returns(address)
   591  func (_AnyswapV4Router *AnyswapV4RouterSession) Factory() (common.Address, error) {
   592  	return _AnyswapV4Router.Contract.Factory(&_AnyswapV4Router.CallOpts)
   593  }
   594  
   595  // Factory is a free data retrieval call binding the contract method 0xc45a0155.
   596  //
   597  // Solidity: function factory() view returns(address)
   598  func (_AnyswapV4Router *AnyswapV4RouterCallerSession) Factory() (common.Address, error) {
   599  	return _AnyswapV4Router.Contract.Factory(&_AnyswapV4Router.CallOpts)
   600  }
   601  
   602  // GetAmountIn is a free data retrieval call binding the contract method 0x85f8c259.
   603  //
   604  // Solidity: function getAmountIn(uint256 amountOut, uint256 reserveIn, uint256 reserveOut) pure returns(uint256 amountIn)
   605  func (_AnyswapV4Router *AnyswapV4RouterCaller) GetAmountIn(opts *bind.CallOpts, amountOut *big.Int, reserveIn *big.Int, reserveOut *big.Int) (*big.Int, error) {
   606  	var out []interface{}
   607  	err := _AnyswapV4Router.contract.Call(opts, &out, "getAmountIn", amountOut, reserveIn, reserveOut)
   608  
   609  	if err != nil {
   610  		return *new(*big.Int), err
   611  	}
   612  
   613  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   614  
   615  	return out0, err
   616  
   617  }
   618  
   619  // GetAmountIn is a free data retrieval call binding the contract method 0x85f8c259.
   620  //
   621  // Solidity: function getAmountIn(uint256 amountOut, uint256 reserveIn, uint256 reserveOut) pure returns(uint256 amountIn)
   622  func (_AnyswapV4Router *AnyswapV4RouterSession) GetAmountIn(amountOut *big.Int, reserveIn *big.Int, reserveOut *big.Int) (*big.Int, error) {
   623  	return _AnyswapV4Router.Contract.GetAmountIn(&_AnyswapV4Router.CallOpts, amountOut, reserveIn, reserveOut)
   624  }
   625  
   626  // GetAmountIn is a free data retrieval call binding the contract method 0x85f8c259.
   627  //
   628  // Solidity: function getAmountIn(uint256 amountOut, uint256 reserveIn, uint256 reserveOut) pure returns(uint256 amountIn)
   629  func (_AnyswapV4Router *AnyswapV4RouterCallerSession) GetAmountIn(amountOut *big.Int, reserveIn *big.Int, reserveOut *big.Int) (*big.Int, error) {
   630  	return _AnyswapV4Router.Contract.GetAmountIn(&_AnyswapV4Router.CallOpts, amountOut, reserveIn, reserveOut)
   631  }
   632  
   633  // GetAmountOut is a free data retrieval call binding the contract method 0x054d50d4.
   634  //
   635  // Solidity: function getAmountOut(uint256 amountIn, uint256 reserveIn, uint256 reserveOut) pure returns(uint256 amountOut)
   636  func (_AnyswapV4Router *AnyswapV4RouterCaller) GetAmountOut(opts *bind.CallOpts, amountIn *big.Int, reserveIn *big.Int, reserveOut *big.Int) (*big.Int, error) {
   637  	var out []interface{}
   638  	err := _AnyswapV4Router.contract.Call(opts, &out, "getAmountOut", amountIn, reserveIn, reserveOut)
   639  
   640  	if err != nil {
   641  		return *new(*big.Int), err
   642  	}
   643  
   644  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   645  
   646  	return out0, err
   647  
   648  }
   649  
   650  // GetAmountOut is a free data retrieval call binding the contract method 0x054d50d4.
   651  //
   652  // Solidity: function getAmountOut(uint256 amountIn, uint256 reserveIn, uint256 reserveOut) pure returns(uint256 amountOut)
   653  func (_AnyswapV4Router *AnyswapV4RouterSession) GetAmountOut(amountIn *big.Int, reserveIn *big.Int, reserveOut *big.Int) (*big.Int, error) {
   654  	return _AnyswapV4Router.Contract.GetAmountOut(&_AnyswapV4Router.CallOpts, amountIn, reserveIn, reserveOut)
   655  }
   656  
   657  // GetAmountOut is a free data retrieval call binding the contract method 0x054d50d4.
   658  //
   659  // Solidity: function getAmountOut(uint256 amountIn, uint256 reserveIn, uint256 reserveOut) pure returns(uint256 amountOut)
   660  func (_AnyswapV4Router *AnyswapV4RouterCallerSession) GetAmountOut(amountIn *big.Int, reserveIn *big.Int, reserveOut *big.Int) (*big.Int, error) {
   661  	return _AnyswapV4Router.Contract.GetAmountOut(&_AnyswapV4Router.CallOpts, amountIn, reserveIn, reserveOut)
   662  }
   663  
   664  // GetAmountsIn is a free data retrieval call binding the contract method 0x1f00ca74.
   665  //
   666  // Solidity: function getAmountsIn(uint256 amountOut, address[] path) view returns(uint256[] amounts)
   667  func (_AnyswapV4Router *AnyswapV4RouterCaller) GetAmountsIn(opts *bind.CallOpts, amountOut *big.Int, path []common.Address) ([]*big.Int, error) {
   668  	var out []interface{}
   669  	err := _AnyswapV4Router.contract.Call(opts, &out, "getAmountsIn", amountOut, path)
   670  
   671  	if err != nil {
   672  		return *new([]*big.Int), err
   673  	}
   674  
   675  	out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int)
   676  
   677  	return out0, err
   678  
   679  }
   680  
   681  // GetAmountsIn is a free data retrieval call binding the contract method 0x1f00ca74.
   682  //
   683  // Solidity: function getAmountsIn(uint256 amountOut, address[] path) view returns(uint256[] amounts)
   684  func (_AnyswapV4Router *AnyswapV4RouterSession) GetAmountsIn(amountOut *big.Int, path []common.Address) ([]*big.Int, error) {
   685  	return _AnyswapV4Router.Contract.GetAmountsIn(&_AnyswapV4Router.CallOpts, amountOut, path)
   686  }
   687  
   688  // GetAmountsIn is a free data retrieval call binding the contract method 0x1f00ca74.
   689  //
   690  // Solidity: function getAmountsIn(uint256 amountOut, address[] path) view returns(uint256[] amounts)
   691  func (_AnyswapV4Router *AnyswapV4RouterCallerSession) GetAmountsIn(amountOut *big.Int, path []common.Address) ([]*big.Int, error) {
   692  	return _AnyswapV4Router.Contract.GetAmountsIn(&_AnyswapV4Router.CallOpts, amountOut, path)
   693  }
   694  
   695  // GetAmountsOut is a free data retrieval call binding the contract method 0xd06ca61f.
   696  //
   697  // Solidity: function getAmountsOut(uint256 amountIn, address[] path) view returns(uint256[] amounts)
   698  func (_AnyswapV4Router *AnyswapV4RouterCaller) GetAmountsOut(opts *bind.CallOpts, amountIn *big.Int, path []common.Address) ([]*big.Int, error) {
   699  	var out []interface{}
   700  	err := _AnyswapV4Router.contract.Call(opts, &out, "getAmountsOut", amountIn, path)
   701  
   702  	if err != nil {
   703  		return *new([]*big.Int), err
   704  	}
   705  
   706  	out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int)
   707  
   708  	return out0, err
   709  
   710  }
   711  
   712  // GetAmountsOut is a free data retrieval call binding the contract method 0xd06ca61f.
   713  //
   714  // Solidity: function getAmountsOut(uint256 amountIn, address[] path) view returns(uint256[] amounts)
   715  func (_AnyswapV4Router *AnyswapV4RouterSession) GetAmountsOut(amountIn *big.Int, path []common.Address) ([]*big.Int, error) {
   716  	return _AnyswapV4Router.Contract.GetAmountsOut(&_AnyswapV4Router.CallOpts, amountIn, path)
   717  }
   718  
   719  // GetAmountsOut is a free data retrieval call binding the contract method 0xd06ca61f.
   720  //
   721  // Solidity: function getAmountsOut(uint256 amountIn, address[] path) view returns(uint256[] amounts)
   722  func (_AnyswapV4Router *AnyswapV4RouterCallerSession) GetAmountsOut(amountIn *big.Int, path []common.Address) ([]*big.Int, error) {
   723  	return _AnyswapV4Router.Contract.GetAmountsOut(&_AnyswapV4Router.CallOpts, amountIn, path)
   724  }
   725  
   726  // Mpc is a free data retrieval call binding the contract method 0xf75c2664.
   727  //
   728  // Solidity: function mpc() view returns(address)
   729  func (_AnyswapV4Router *AnyswapV4RouterCaller) Mpc(opts *bind.CallOpts) (common.Address, error) {
   730  	var out []interface{}
   731  	err := _AnyswapV4Router.contract.Call(opts, &out, "mpc")
   732  
   733  	if err != nil {
   734  		return *new(common.Address), err
   735  	}
   736  
   737  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   738  
   739  	return out0, err
   740  
   741  }
   742  
   743  // Mpc is a free data retrieval call binding the contract method 0xf75c2664.
   744  //
   745  // Solidity: function mpc() view returns(address)
   746  func (_AnyswapV4Router *AnyswapV4RouterSession) Mpc() (common.Address, error) {
   747  	return _AnyswapV4Router.Contract.Mpc(&_AnyswapV4Router.CallOpts)
   748  }
   749  
   750  // Mpc is a free data retrieval call binding the contract method 0xf75c2664.
   751  //
   752  // Solidity: function mpc() view returns(address)
   753  func (_AnyswapV4Router *AnyswapV4RouterCallerSession) Mpc() (common.Address, error) {
   754  	return _AnyswapV4Router.Contract.Mpc(&_AnyswapV4Router.CallOpts)
   755  }
   756  
   757  // Quote is a free data retrieval call binding the contract method 0xad615dec.
   758  //
   759  // Solidity: function quote(uint256 amountA, uint256 reserveA, uint256 reserveB) pure returns(uint256 amountB)
   760  func (_AnyswapV4Router *AnyswapV4RouterCaller) Quote(opts *bind.CallOpts, amountA *big.Int, reserveA *big.Int, reserveB *big.Int) (*big.Int, error) {
   761  	var out []interface{}
   762  	err := _AnyswapV4Router.contract.Call(opts, &out, "quote", amountA, reserveA, reserveB)
   763  
   764  	if err != nil {
   765  		return *new(*big.Int), err
   766  	}
   767  
   768  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   769  
   770  	return out0, err
   771  
   772  }
   773  
   774  // Quote is a free data retrieval call binding the contract method 0xad615dec.
   775  //
   776  // Solidity: function quote(uint256 amountA, uint256 reserveA, uint256 reserveB) pure returns(uint256 amountB)
   777  func (_AnyswapV4Router *AnyswapV4RouterSession) Quote(amountA *big.Int, reserveA *big.Int, reserveB *big.Int) (*big.Int, error) {
   778  	return _AnyswapV4Router.Contract.Quote(&_AnyswapV4Router.CallOpts, amountA, reserveA, reserveB)
   779  }
   780  
   781  // Quote is a free data retrieval call binding the contract method 0xad615dec.
   782  //
   783  // Solidity: function quote(uint256 amountA, uint256 reserveA, uint256 reserveB) pure returns(uint256 amountB)
   784  func (_AnyswapV4Router *AnyswapV4RouterCallerSession) Quote(amountA *big.Int, reserveA *big.Int, reserveB *big.Int) (*big.Int, error) {
   785  	return _AnyswapV4Router.Contract.Quote(&_AnyswapV4Router.CallOpts, amountA, reserveA, reserveB)
   786  }
   787  
   788  // WNATIVE is a free data retrieval call binding the contract method 0x8fd903f5.
   789  //
   790  // Solidity: function wNATIVE() view returns(address)
   791  func (_AnyswapV4Router *AnyswapV4RouterCaller) WNATIVE(opts *bind.CallOpts) (common.Address, error) {
   792  	var out []interface{}
   793  	err := _AnyswapV4Router.contract.Call(opts, &out, "wNATIVE")
   794  
   795  	if err != nil {
   796  		return *new(common.Address), err
   797  	}
   798  
   799  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   800  
   801  	return out0, err
   802  
   803  }
   804  
   805  // WNATIVE is a free data retrieval call binding the contract method 0x8fd903f5.
   806  //
   807  // Solidity: function wNATIVE() view returns(address)
   808  func (_AnyswapV4Router *AnyswapV4RouterSession) WNATIVE() (common.Address, error) {
   809  	return _AnyswapV4Router.Contract.WNATIVE(&_AnyswapV4Router.CallOpts)
   810  }
   811  
   812  // WNATIVE is a free data retrieval call binding the contract method 0x8fd903f5.
   813  //
   814  // Solidity: function wNATIVE() view returns(address)
   815  func (_AnyswapV4Router *AnyswapV4RouterCallerSession) WNATIVE() (common.Address, error) {
   816  	return _AnyswapV4Router.Contract.WNATIVE(&_AnyswapV4Router.CallOpts)
   817  }
   818  
   819  // AnySwapFeeTo is a paid mutator transaction binding the contract method 0x87cc6e2f.
   820  //
   821  // Solidity: function anySwapFeeTo(address token, uint256 amount) returns()
   822  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapFeeTo(opts *bind.TransactOpts, token common.Address, amount *big.Int) (*types.Transaction, error) {
   823  	return _AnyswapV4Router.contract.Transact(opts, "anySwapFeeTo", token, amount)
   824  }
   825  
   826  // AnySwapFeeTo is a paid mutator transaction binding the contract method 0x87cc6e2f.
   827  //
   828  // Solidity: function anySwapFeeTo(address token, uint256 amount) returns()
   829  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapFeeTo(token common.Address, amount *big.Int) (*types.Transaction, error) {
   830  	return _AnyswapV4Router.Contract.AnySwapFeeTo(&_AnyswapV4Router.TransactOpts, token, amount)
   831  }
   832  
   833  // AnySwapFeeTo is a paid mutator transaction binding the contract method 0x87cc6e2f.
   834  //
   835  // Solidity: function anySwapFeeTo(address token, uint256 amount) returns()
   836  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapFeeTo(token common.Address, amount *big.Int) (*types.Transaction, error) {
   837  	return _AnyswapV4Router.Contract.AnySwapFeeTo(&_AnyswapV4Router.TransactOpts, token, amount)
   838  }
   839  
   840  // AnySwapIn is a paid mutator transaction binding the contract method 0x25121b76.
   841  //
   842  // Solidity: function anySwapIn(bytes32[] txs, address[] tokens, address[] to, uint256[] amounts, uint256[] fromChainIDs) returns()
   843  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapIn(opts *bind.TransactOpts, txs [][32]byte, tokens []common.Address, to []common.Address, amounts []*big.Int, fromChainIDs []*big.Int) (*types.Transaction, error) {
   844  	return _AnyswapV4Router.contract.Transact(opts, "anySwapIn", txs, tokens, to, amounts, fromChainIDs)
   845  }
   846  
   847  // AnySwapIn is a paid mutator transaction binding the contract method 0x25121b76.
   848  //
   849  // Solidity: function anySwapIn(bytes32[] txs, address[] tokens, address[] to, uint256[] amounts, uint256[] fromChainIDs) returns()
   850  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapIn(txs [][32]byte, tokens []common.Address, to []common.Address, amounts []*big.Int, fromChainIDs []*big.Int) (*types.Transaction, error) {
   851  	return _AnyswapV4Router.Contract.AnySwapIn(&_AnyswapV4Router.TransactOpts, txs, tokens, to, amounts, fromChainIDs)
   852  }
   853  
   854  // AnySwapIn is a paid mutator transaction binding the contract method 0x25121b76.
   855  //
   856  // Solidity: function anySwapIn(bytes32[] txs, address[] tokens, address[] to, uint256[] amounts, uint256[] fromChainIDs) returns()
   857  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapIn(txs [][32]byte, tokens []common.Address, to []common.Address, amounts []*big.Int, fromChainIDs []*big.Int) (*types.Transaction, error) {
   858  	return _AnyswapV4Router.Contract.AnySwapIn(&_AnyswapV4Router.TransactOpts, txs, tokens, to, amounts, fromChainIDs)
   859  }
   860  
   861  // AnySwapIn0 is a paid mutator transaction binding the contract method 0x825bb13c.
   862  //
   863  // Solidity: function anySwapIn(bytes32 txs, address token, address to, uint256 amount, uint256 fromChainID) returns()
   864  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapIn0(opts *bind.TransactOpts, txs [32]byte, token common.Address, to common.Address, amount *big.Int, fromChainID *big.Int) (*types.Transaction, error) {
   865  	return _AnyswapV4Router.contract.Transact(opts, "anySwapIn0", txs, token, to, amount, fromChainID)
   866  }
   867  
   868  // AnySwapIn0 is a paid mutator transaction binding the contract method 0x825bb13c.
   869  //
   870  // Solidity: function anySwapIn(bytes32 txs, address token, address to, uint256 amount, uint256 fromChainID) returns()
   871  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapIn0(txs [32]byte, token common.Address, to common.Address, amount *big.Int, fromChainID *big.Int) (*types.Transaction, error) {
   872  	return _AnyswapV4Router.Contract.AnySwapIn0(&_AnyswapV4Router.TransactOpts, txs, token, to, amount, fromChainID)
   873  }
   874  
   875  // AnySwapIn0 is a paid mutator transaction binding the contract method 0x825bb13c.
   876  //
   877  // Solidity: function anySwapIn(bytes32 txs, address token, address to, uint256 amount, uint256 fromChainID) returns()
   878  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapIn0(txs [32]byte, token common.Address, to common.Address, amount *big.Int, fromChainID *big.Int) (*types.Transaction, error) {
   879  	return _AnyswapV4Router.Contract.AnySwapIn0(&_AnyswapV4Router.TransactOpts, txs, token, to, amount, fromChainID)
   880  }
   881  
   882  // AnySwapInAuto is a paid mutator transaction binding the contract method 0x0175b1c4.
   883  //
   884  // Solidity: function anySwapInAuto(bytes32 txs, address token, address to, uint256 amount, uint256 fromChainID) returns()
   885  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapInAuto(opts *bind.TransactOpts, txs [32]byte, token common.Address, to common.Address, amount *big.Int, fromChainID *big.Int) (*types.Transaction, error) {
   886  	return _AnyswapV4Router.contract.Transact(opts, "anySwapInAuto", txs, token, to, amount, fromChainID)
   887  }
   888  
   889  // AnySwapInAuto is a paid mutator transaction binding the contract method 0x0175b1c4.
   890  //
   891  // Solidity: function anySwapInAuto(bytes32 txs, address token, address to, uint256 amount, uint256 fromChainID) returns()
   892  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapInAuto(txs [32]byte, token common.Address, to common.Address, amount *big.Int, fromChainID *big.Int) (*types.Transaction, error) {
   893  	return _AnyswapV4Router.Contract.AnySwapInAuto(&_AnyswapV4Router.TransactOpts, txs, token, to, amount, fromChainID)
   894  }
   895  
   896  // AnySwapInAuto is a paid mutator transaction binding the contract method 0x0175b1c4.
   897  //
   898  // Solidity: function anySwapInAuto(bytes32 txs, address token, address to, uint256 amount, uint256 fromChainID) returns()
   899  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapInAuto(txs [32]byte, token common.Address, to common.Address, amount *big.Int, fromChainID *big.Int) (*types.Transaction, error) {
   900  	return _AnyswapV4Router.Contract.AnySwapInAuto(&_AnyswapV4Router.TransactOpts, txs, token, to, amount, fromChainID)
   901  }
   902  
   903  // AnySwapInExactTokensForNative is a paid mutator transaction binding the contract method 0x52a397d5.
   904  //
   905  // Solidity: function anySwapInExactTokensForNative(bytes32 txs, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 fromChainID) returns(uint256[] amounts)
   906  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapInExactTokensForNative(opts *bind.TransactOpts, txs [32]byte, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, fromChainID *big.Int) (*types.Transaction, error) {
   907  	return _AnyswapV4Router.contract.Transact(opts, "anySwapInExactTokensForNative", txs, amountIn, amountOutMin, path, to, deadline, fromChainID)
   908  }
   909  
   910  // AnySwapInExactTokensForNative is a paid mutator transaction binding the contract method 0x52a397d5.
   911  //
   912  // Solidity: function anySwapInExactTokensForNative(bytes32 txs, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 fromChainID) returns(uint256[] amounts)
   913  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapInExactTokensForNative(txs [32]byte, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, fromChainID *big.Int) (*types.Transaction, error) {
   914  	return _AnyswapV4Router.Contract.AnySwapInExactTokensForNative(&_AnyswapV4Router.TransactOpts, txs, amountIn, amountOutMin, path, to, deadline, fromChainID)
   915  }
   916  
   917  // AnySwapInExactTokensForNative is a paid mutator transaction binding the contract method 0x52a397d5.
   918  //
   919  // Solidity: function anySwapInExactTokensForNative(bytes32 txs, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 fromChainID) returns(uint256[] amounts)
   920  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapInExactTokensForNative(txs [32]byte, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, fromChainID *big.Int) (*types.Transaction, error) {
   921  	return _AnyswapV4Router.Contract.AnySwapInExactTokensForNative(&_AnyswapV4Router.TransactOpts, txs, amountIn, amountOutMin, path, to, deadline, fromChainID)
   922  }
   923  
   924  // AnySwapInExactTokensForTokens is a paid mutator transaction binding the contract method 0x2fc1e728.
   925  //
   926  // Solidity: function anySwapInExactTokensForTokens(bytes32 txs, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 fromChainID) returns(uint256[] amounts)
   927  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapInExactTokensForTokens(opts *bind.TransactOpts, txs [32]byte, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, fromChainID *big.Int) (*types.Transaction, error) {
   928  	return _AnyswapV4Router.contract.Transact(opts, "anySwapInExactTokensForTokens", txs, amountIn, amountOutMin, path, to, deadline, fromChainID)
   929  }
   930  
   931  // AnySwapInExactTokensForTokens is a paid mutator transaction binding the contract method 0x2fc1e728.
   932  //
   933  // Solidity: function anySwapInExactTokensForTokens(bytes32 txs, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 fromChainID) returns(uint256[] amounts)
   934  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapInExactTokensForTokens(txs [32]byte, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, fromChainID *big.Int) (*types.Transaction, error) {
   935  	return _AnyswapV4Router.Contract.AnySwapInExactTokensForTokens(&_AnyswapV4Router.TransactOpts, txs, amountIn, amountOutMin, path, to, deadline, fromChainID)
   936  }
   937  
   938  // AnySwapInExactTokensForTokens is a paid mutator transaction binding the contract method 0x2fc1e728.
   939  //
   940  // Solidity: function anySwapInExactTokensForTokens(bytes32 txs, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 fromChainID) returns(uint256[] amounts)
   941  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapInExactTokensForTokens(txs [32]byte, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, fromChainID *big.Int) (*types.Transaction, error) {
   942  	return _AnyswapV4Router.Contract.AnySwapInExactTokensForTokens(&_AnyswapV4Router.TransactOpts, txs, amountIn, amountOutMin, path, to, deadline, fromChainID)
   943  }
   944  
   945  // AnySwapInUnderlying is a paid mutator transaction binding the contract method 0x3f88de89.
   946  //
   947  // Solidity: function anySwapInUnderlying(bytes32 txs, address token, address to, uint256 amount, uint256 fromChainID) returns()
   948  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapInUnderlying(opts *bind.TransactOpts, txs [32]byte, token common.Address, to common.Address, amount *big.Int, fromChainID *big.Int) (*types.Transaction, error) {
   949  	return _AnyswapV4Router.contract.Transact(opts, "anySwapInUnderlying", txs, token, to, amount, fromChainID)
   950  }
   951  
   952  // AnySwapInUnderlying is a paid mutator transaction binding the contract method 0x3f88de89.
   953  //
   954  // Solidity: function anySwapInUnderlying(bytes32 txs, address token, address to, uint256 amount, uint256 fromChainID) returns()
   955  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapInUnderlying(txs [32]byte, token common.Address, to common.Address, amount *big.Int, fromChainID *big.Int) (*types.Transaction, error) {
   956  	return _AnyswapV4Router.Contract.AnySwapInUnderlying(&_AnyswapV4Router.TransactOpts, txs, token, to, amount, fromChainID)
   957  }
   958  
   959  // AnySwapInUnderlying is a paid mutator transaction binding the contract method 0x3f88de89.
   960  //
   961  // Solidity: function anySwapInUnderlying(bytes32 txs, address token, address to, uint256 amount, uint256 fromChainID) returns()
   962  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapInUnderlying(txs [32]byte, token common.Address, to common.Address, amount *big.Int, fromChainID *big.Int) (*types.Transaction, error) {
   963  	return _AnyswapV4Router.Contract.AnySwapInUnderlying(&_AnyswapV4Router.TransactOpts, txs, token, to, amount, fromChainID)
   964  }
   965  
   966  // AnySwapOut is a paid mutator transaction binding the contract method 0x241dc2df.
   967  //
   968  // Solidity: function anySwapOut(address token, address to, uint256 amount, uint256 toChainID) returns()
   969  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapOut(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, toChainID *big.Int) (*types.Transaction, error) {
   970  	return _AnyswapV4Router.contract.Transact(opts, "anySwapOut", token, to, amount, toChainID)
   971  }
   972  
   973  // AnySwapOut is a paid mutator transaction binding the contract method 0x241dc2df.
   974  //
   975  // Solidity: function anySwapOut(address token, address to, uint256 amount, uint256 toChainID) returns()
   976  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapOut(token common.Address, to common.Address, amount *big.Int, toChainID *big.Int) (*types.Transaction, error) {
   977  	return _AnyswapV4Router.Contract.AnySwapOut(&_AnyswapV4Router.TransactOpts, token, to, amount, toChainID)
   978  }
   979  
   980  // AnySwapOut is a paid mutator transaction binding the contract method 0x241dc2df.
   981  //
   982  // Solidity: function anySwapOut(address token, address to, uint256 amount, uint256 toChainID) returns()
   983  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapOut(token common.Address, to common.Address, amount *big.Int, toChainID *big.Int) (*types.Transaction, error) {
   984  	return _AnyswapV4Router.Contract.AnySwapOut(&_AnyswapV4Router.TransactOpts, token, to, amount, toChainID)
   985  }
   986  
   987  // AnySwapOut0 is a paid mutator transaction binding the contract method 0xdcfb77b1.
   988  //
   989  // Solidity: function anySwapOut(address[] tokens, address[] to, uint256[] amounts, uint256[] toChainIDs) returns()
   990  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapOut0(opts *bind.TransactOpts, tokens []common.Address, to []common.Address, amounts []*big.Int, toChainIDs []*big.Int) (*types.Transaction, error) {
   991  	return _AnyswapV4Router.contract.Transact(opts, "anySwapOut0", tokens, to, amounts, toChainIDs)
   992  }
   993  
   994  // AnySwapOut0 is a paid mutator transaction binding the contract method 0xdcfb77b1.
   995  //
   996  // Solidity: function anySwapOut(address[] tokens, address[] to, uint256[] amounts, uint256[] toChainIDs) returns()
   997  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapOut0(tokens []common.Address, to []common.Address, amounts []*big.Int, toChainIDs []*big.Int) (*types.Transaction, error) {
   998  	return _AnyswapV4Router.Contract.AnySwapOut0(&_AnyswapV4Router.TransactOpts, tokens, to, amounts, toChainIDs)
   999  }
  1000  
  1001  // AnySwapOut0 is a paid mutator transaction binding the contract method 0xdcfb77b1.
  1002  //
  1003  // Solidity: function anySwapOut(address[] tokens, address[] to, uint256[] amounts, uint256[] toChainIDs) returns()
  1004  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapOut0(tokens []common.Address, to []common.Address, amounts []*big.Int, toChainIDs []*big.Int) (*types.Transaction, error) {
  1005  	return _AnyswapV4Router.Contract.AnySwapOut0(&_AnyswapV4Router.TransactOpts, tokens, to, amounts, toChainIDs)
  1006  }
  1007  
  1008  // AnySwapOutExactTokensForNative is a paid mutator transaction binding the contract method 0x65782f56.
  1009  //
  1010  // Solidity: function anySwapOutExactTokensForNative(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 toChainID) returns()
  1011  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapOutExactTokensForNative(opts *bind.TransactOpts, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, toChainID *big.Int) (*types.Transaction, error) {
  1012  	return _AnyswapV4Router.contract.Transact(opts, "anySwapOutExactTokensForNative", amountIn, amountOutMin, path, to, deadline, toChainID)
  1013  }
  1014  
  1015  // AnySwapOutExactTokensForNative is a paid mutator transaction binding the contract method 0x65782f56.
  1016  //
  1017  // Solidity: function anySwapOutExactTokensForNative(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 toChainID) returns()
  1018  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapOutExactTokensForNative(amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, toChainID *big.Int) (*types.Transaction, error) {
  1019  	return _AnyswapV4Router.Contract.AnySwapOutExactTokensForNative(&_AnyswapV4Router.TransactOpts, amountIn, amountOutMin, path, to, deadline, toChainID)
  1020  }
  1021  
  1022  // AnySwapOutExactTokensForNative is a paid mutator transaction binding the contract method 0x65782f56.
  1023  //
  1024  // Solidity: function anySwapOutExactTokensForNative(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 toChainID) returns()
  1025  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapOutExactTokensForNative(amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, toChainID *big.Int) (*types.Transaction, error) {
  1026  	return _AnyswapV4Router.Contract.AnySwapOutExactTokensForNative(&_AnyswapV4Router.TransactOpts, amountIn, amountOutMin, path, to, deadline, toChainID)
  1027  }
  1028  
  1029  // AnySwapOutExactTokensForNativeUnderlying is a paid mutator transaction binding the contract method 0x6a453972.
  1030  //
  1031  // Solidity: function anySwapOutExactTokensForNativeUnderlying(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 toChainID) returns()
  1032  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapOutExactTokensForNativeUnderlying(opts *bind.TransactOpts, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, toChainID *big.Int) (*types.Transaction, error) {
  1033  	return _AnyswapV4Router.contract.Transact(opts, "anySwapOutExactTokensForNativeUnderlying", amountIn, amountOutMin, path, to, deadline, toChainID)
  1034  }
  1035  
  1036  // AnySwapOutExactTokensForNativeUnderlying is a paid mutator transaction binding the contract method 0x6a453972.
  1037  //
  1038  // Solidity: function anySwapOutExactTokensForNativeUnderlying(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 toChainID) returns()
  1039  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapOutExactTokensForNativeUnderlying(amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, toChainID *big.Int) (*types.Transaction, error) {
  1040  	return _AnyswapV4Router.Contract.AnySwapOutExactTokensForNativeUnderlying(&_AnyswapV4Router.TransactOpts, amountIn, amountOutMin, path, to, deadline, toChainID)
  1041  }
  1042  
  1043  // AnySwapOutExactTokensForNativeUnderlying is a paid mutator transaction binding the contract method 0x6a453972.
  1044  //
  1045  // Solidity: function anySwapOutExactTokensForNativeUnderlying(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 toChainID) returns()
  1046  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapOutExactTokensForNativeUnderlying(amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, toChainID *big.Int) (*types.Transaction, error) {
  1047  	return _AnyswapV4Router.Contract.AnySwapOutExactTokensForNativeUnderlying(&_AnyswapV4Router.TransactOpts, amountIn, amountOutMin, path, to, deadline, toChainID)
  1048  }
  1049  
  1050  // AnySwapOutExactTokensForNativeUnderlyingWithPermit is a paid mutator transaction binding the contract method 0x4d93bb94.
  1051  //
  1052  // Solidity: function anySwapOutExactTokensForNativeUnderlyingWithPermit(address from, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1053  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapOutExactTokensForNativeUnderlyingWithPermit(opts *bind.TransactOpts, from common.Address, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1054  	return _AnyswapV4Router.contract.Transact(opts, "anySwapOutExactTokensForNativeUnderlyingWithPermit", from, amountIn, amountOutMin, path, to, deadline, v, r, s, toChainID)
  1055  }
  1056  
  1057  // AnySwapOutExactTokensForNativeUnderlyingWithPermit is a paid mutator transaction binding the contract method 0x4d93bb94.
  1058  //
  1059  // Solidity: function anySwapOutExactTokensForNativeUnderlyingWithPermit(address from, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1060  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapOutExactTokensForNativeUnderlyingWithPermit(from common.Address, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1061  	return _AnyswapV4Router.Contract.AnySwapOutExactTokensForNativeUnderlyingWithPermit(&_AnyswapV4Router.TransactOpts, from, amountIn, amountOutMin, path, to, deadline, v, r, s, toChainID)
  1062  }
  1063  
  1064  // AnySwapOutExactTokensForNativeUnderlyingWithPermit is a paid mutator transaction binding the contract method 0x4d93bb94.
  1065  //
  1066  // Solidity: function anySwapOutExactTokensForNativeUnderlyingWithPermit(address from, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1067  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapOutExactTokensForNativeUnderlyingWithPermit(from common.Address, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1068  	return _AnyswapV4Router.Contract.AnySwapOutExactTokensForNativeUnderlyingWithPermit(&_AnyswapV4Router.TransactOpts, from, amountIn, amountOutMin, path, to, deadline, v, r, s, toChainID)
  1069  }
  1070  
  1071  // AnySwapOutExactTokensForNativeUnderlyingWithTransferPermit is a paid mutator transaction binding the contract method 0xc8e174f6.
  1072  //
  1073  // Solidity: function anySwapOutExactTokensForNativeUnderlyingWithTransferPermit(address from, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1074  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapOutExactTokensForNativeUnderlyingWithTransferPermit(opts *bind.TransactOpts, from common.Address, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1075  	return _AnyswapV4Router.contract.Transact(opts, "anySwapOutExactTokensForNativeUnderlyingWithTransferPermit", from, amountIn, amountOutMin, path, to, deadline, v, r, s, toChainID)
  1076  }
  1077  
  1078  // AnySwapOutExactTokensForNativeUnderlyingWithTransferPermit is a paid mutator transaction binding the contract method 0xc8e174f6.
  1079  //
  1080  // Solidity: function anySwapOutExactTokensForNativeUnderlyingWithTransferPermit(address from, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1081  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapOutExactTokensForNativeUnderlyingWithTransferPermit(from common.Address, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1082  	return _AnyswapV4Router.Contract.AnySwapOutExactTokensForNativeUnderlyingWithTransferPermit(&_AnyswapV4Router.TransactOpts, from, amountIn, amountOutMin, path, to, deadline, v, r, s, toChainID)
  1083  }
  1084  
  1085  // AnySwapOutExactTokensForNativeUnderlyingWithTransferPermit is a paid mutator transaction binding the contract method 0xc8e174f6.
  1086  //
  1087  // Solidity: function anySwapOutExactTokensForNativeUnderlyingWithTransferPermit(address from, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1088  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapOutExactTokensForNativeUnderlyingWithTransferPermit(from common.Address, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1089  	return _AnyswapV4Router.Contract.AnySwapOutExactTokensForNativeUnderlyingWithTransferPermit(&_AnyswapV4Router.TransactOpts, from, amountIn, amountOutMin, path, to, deadline, v, r, s, toChainID)
  1090  }
  1091  
  1092  // AnySwapOutExactTokensForTokens is a paid mutator transaction binding the contract method 0x0bb57203.
  1093  //
  1094  // Solidity: function anySwapOutExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 toChainID) returns()
  1095  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapOutExactTokensForTokens(opts *bind.TransactOpts, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, toChainID *big.Int) (*types.Transaction, error) {
  1096  	return _AnyswapV4Router.contract.Transact(opts, "anySwapOutExactTokensForTokens", amountIn, amountOutMin, path, to, deadline, toChainID)
  1097  }
  1098  
  1099  // AnySwapOutExactTokensForTokens is a paid mutator transaction binding the contract method 0x0bb57203.
  1100  //
  1101  // Solidity: function anySwapOutExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 toChainID) returns()
  1102  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapOutExactTokensForTokens(amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, toChainID *big.Int) (*types.Transaction, error) {
  1103  	return _AnyswapV4Router.Contract.AnySwapOutExactTokensForTokens(&_AnyswapV4Router.TransactOpts, amountIn, amountOutMin, path, to, deadline, toChainID)
  1104  }
  1105  
  1106  // AnySwapOutExactTokensForTokens is a paid mutator transaction binding the contract method 0x0bb57203.
  1107  //
  1108  // Solidity: function anySwapOutExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 toChainID) returns()
  1109  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapOutExactTokensForTokens(amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, toChainID *big.Int) (*types.Transaction, error) {
  1110  	return _AnyswapV4Router.Contract.AnySwapOutExactTokensForTokens(&_AnyswapV4Router.TransactOpts, amountIn, amountOutMin, path, to, deadline, toChainID)
  1111  }
  1112  
  1113  // AnySwapOutExactTokensForTokensUnderlying is a paid mutator transaction binding the contract method 0xd8b9f610.
  1114  //
  1115  // Solidity: function anySwapOutExactTokensForTokensUnderlying(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 toChainID) returns()
  1116  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapOutExactTokensForTokensUnderlying(opts *bind.TransactOpts, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, toChainID *big.Int) (*types.Transaction, error) {
  1117  	return _AnyswapV4Router.contract.Transact(opts, "anySwapOutExactTokensForTokensUnderlying", amountIn, amountOutMin, path, to, deadline, toChainID)
  1118  }
  1119  
  1120  // AnySwapOutExactTokensForTokensUnderlying is a paid mutator transaction binding the contract method 0xd8b9f610.
  1121  //
  1122  // Solidity: function anySwapOutExactTokensForTokensUnderlying(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 toChainID) returns()
  1123  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapOutExactTokensForTokensUnderlying(amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, toChainID *big.Int) (*types.Transaction, error) {
  1124  	return _AnyswapV4Router.Contract.AnySwapOutExactTokensForTokensUnderlying(&_AnyswapV4Router.TransactOpts, amountIn, amountOutMin, path, to, deadline, toChainID)
  1125  }
  1126  
  1127  // AnySwapOutExactTokensForTokensUnderlying is a paid mutator transaction binding the contract method 0xd8b9f610.
  1128  //
  1129  // Solidity: function anySwapOutExactTokensForTokensUnderlying(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint256 toChainID) returns()
  1130  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapOutExactTokensForTokensUnderlying(amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, toChainID *big.Int) (*types.Transaction, error) {
  1131  	return _AnyswapV4Router.Contract.AnySwapOutExactTokensForTokensUnderlying(&_AnyswapV4Router.TransactOpts, amountIn, amountOutMin, path, to, deadline, toChainID)
  1132  }
  1133  
  1134  // AnySwapOutExactTokensForTokensUnderlyingWithPermit is a paid mutator transaction binding the contract method 0x99cd84b5.
  1135  //
  1136  // Solidity: function anySwapOutExactTokensForTokensUnderlyingWithPermit(address from, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1137  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapOutExactTokensForTokensUnderlyingWithPermit(opts *bind.TransactOpts, from common.Address, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1138  	return _AnyswapV4Router.contract.Transact(opts, "anySwapOutExactTokensForTokensUnderlyingWithPermit", from, amountIn, amountOutMin, path, to, deadline, v, r, s, toChainID)
  1139  }
  1140  
  1141  // AnySwapOutExactTokensForTokensUnderlyingWithPermit is a paid mutator transaction binding the contract method 0x99cd84b5.
  1142  //
  1143  // Solidity: function anySwapOutExactTokensForTokensUnderlyingWithPermit(address from, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1144  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapOutExactTokensForTokensUnderlyingWithPermit(from common.Address, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1145  	return _AnyswapV4Router.Contract.AnySwapOutExactTokensForTokensUnderlyingWithPermit(&_AnyswapV4Router.TransactOpts, from, amountIn, amountOutMin, path, to, deadline, v, r, s, toChainID)
  1146  }
  1147  
  1148  // AnySwapOutExactTokensForTokensUnderlyingWithPermit is a paid mutator transaction binding the contract method 0x99cd84b5.
  1149  //
  1150  // Solidity: function anySwapOutExactTokensForTokensUnderlyingWithPermit(address from, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1151  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapOutExactTokensForTokensUnderlyingWithPermit(from common.Address, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1152  	return _AnyswapV4Router.Contract.AnySwapOutExactTokensForTokensUnderlyingWithPermit(&_AnyswapV4Router.TransactOpts, from, amountIn, amountOutMin, path, to, deadline, v, r, s, toChainID)
  1153  }
  1154  
  1155  // AnySwapOutExactTokensForTokensUnderlyingWithTransferPermit is a paid mutator transaction binding the contract method 0x9aa1ac61.
  1156  //
  1157  // Solidity: function anySwapOutExactTokensForTokensUnderlyingWithTransferPermit(address from, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1158  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapOutExactTokensForTokensUnderlyingWithTransferPermit(opts *bind.TransactOpts, from common.Address, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1159  	return _AnyswapV4Router.contract.Transact(opts, "anySwapOutExactTokensForTokensUnderlyingWithTransferPermit", from, amountIn, amountOutMin, path, to, deadline, v, r, s, toChainID)
  1160  }
  1161  
  1162  // AnySwapOutExactTokensForTokensUnderlyingWithTransferPermit is a paid mutator transaction binding the contract method 0x9aa1ac61.
  1163  //
  1164  // Solidity: function anySwapOutExactTokensForTokensUnderlyingWithTransferPermit(address from, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1165  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapOutExactTokensForTokensUnderlyingWithTransferPermit(from common.Address, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1166  	return _AnyswapV4Router.Contract.AnySwapOutExactTokensForTokensUnderlyingWithTransferPermit(&_AnyswapV4Router.TransactOpts, from, amountIn, amountOutMin, path, to, deadline, v, r, s, toChainID)
  1167  }
  1168  
  1169  // AnySwapOutExactTokensForTokensUnderlyingWithTransferPermit is a paid mutator transaction binding the contract method 0x9aa1ac61.
  1170  //
  1171  // Solidity: function anySwapOutExactTokensForTokensUnderlyingWithTransferPermit(address from, uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1172  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapOutExactTokensForTokensUnderlyingWithTransferPermit(from common.Address, amountIn *big.Int, amountOutMin *big.Int, path []common.Address, to common.Address, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1173  	return _AnyswapV4Router.Contract.AnySwapOutExactTokensForTokensUnderlyingWithTransferPermit(&_AnyswapV4Router.TransactOpts, from, amountIn, amountOutMin, path, to, deadline, v, r, s, toChainID)
  1174  }
  1175  
  1176  // AnySwapOutUnderlying is a paid mutator transaction binding the contract method 0xedbdf5e2.
  1177  //
  1178  // Solidity: function anySwapOutUnderlying(address token, address to, uint256 amount, uint256 toChainID) returns()
  1179  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapOutUnderlying(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, toChainID *big.Int) (*types.Transaction, error) {
  1180  	return _AnyswapV4Router.contract.Transact(opts, "anySwapOutUnderlying", token, to, amount, toChainID)
  1181  }
  1182  
  1183  // AnySwapOutUnderlying is a paid mutator transaction binding the contract method 0xedbdf5e2.
  1184  //
  1185  // Solidity: function anySwapOutUnderlying(address token, address to, uint256 amount, uint256 toChainID) returns()
  1186  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapOutUnderlying(token common.Address, to common.Address, amount *big.Int, toChainID *big.Int) (*types.Transaction, error) {
  1187  	return _AnyswapV4Router.Contract.AnySwapOutUnderlying(&_AnyswapV4Router.TransactOpts, token, to, amount, toChainID)
  1188  }
  1189  
  1190  // AnySwapOutUnderlying is a paid mutator transaction binding the contract method 0xedbdf5e2.
  1191  //
  1192  // Solidity: function anySwapOutUnderlying(address token, address to, uint256 amount, uint256 toChainID) returns()
  1193  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapOutUnderlying(token common.Address, to common.Address, amount *big.Int, toChainID *big.Int) (*types.Transaction, error) {
  1194  	return _AnyswapV4Router.Contract.AnySwapOutUnderlying(&_AnyswapV4Router.TransactOpts, token, to, amount, toChainID)
  1195  }
  1196  
  1197  // AnySwapOutUnderlyingWithPermit is a paid mutator transaction binding the contract method 0x8d7d3eea.
  1198  //
  1199  // Solidity: function anySwapOutUnderlyingWithPermit(address from, address token, address to, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1200  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapOutUnderlyingWithPermit(opts *bind.TransactOpts, from common.Address, token common.Address, to common.Address, amount *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1201  	return _AnyswapV4Router.contract.Transact(opts, "anySwapOutUnderlyingWithPermit", from, token, to, amount, deadline, v, r, s, toChainID)
  1202  }
  1203  
  1204  // AnySwapOutUnderlyingWithPermit is a paid mutator transaction binding the contract method 0x8d7d3eea.
  1205  //
  1206  // Solidity: function anySwapOutUnderlyingWithPermit(address from, address token, address to, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1207  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapOutUnderlyingWithPermit(from common.Address, token common.Address, to common.Address, amount *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1208  	return _AnyswapV4Router.Contract.AnySwapOutUnderlyingWithPermit(&_AnyswapV4Router.TransactOpts, from, token, to, amount, deadline, v, r, s, toChainID)
  1209  }
  1210  
  1211  // AnySwapOutUnderlyingWithPermit is a paid mutator transaction binding the contract method 0x8d7d3eea.
  1212  //
  1213  // Solidity: function anySwapOutUnderlyingWithPermit(address from, address token, address to, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1214  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapOutUnderlyingWithPermit(from common.Address, token common.Address, to common.Address, amount *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1215  	return _AnyswapV4Router.Contract.AnySwapOutUnderlyingWithPermit(&_AnyswapV4Router.TransactOpts, from, token, to, amount, deadline, v, r, s, toChainID)
  1216  }
  1217  
  1218  // AnySwapOutUnderlyingWithTransferPermit is a paid mutator transaction binding the contract method 0x1b91a934.
  1219  //
  1220  // Solidity: function anySwapOutUnderlyingWithTransferPermit(address from, address token, address to, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1221  func (_AnyswapV4Router *AnyswapV4RouterTransactor) AnySwapOutUnderlyingWithTransferPermit(opts *bind.TransactOpts, from common.Address, token common.Address, to common.Address, amount *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1222  	return _AnyswapV4Router.contract.Transact(opts, "anySwapOutUnderlyingWithTransferPermit", from, token, to, amount, deadline, v, r, s, toChainID)
  1223  }
  1224  
  1225  // AnySwapOutUnderlyingWithTransferPermit is a paid mutator transaction binding the contract method 0x1b91a934.
  1226  //
  1227  // Solidity: function anySwapOutUnderlyingWithTransferPermit(address from, address token, address to, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1228  func (_AnyswapV4Router *AnyswapV4RouterSession) AnySwapOutUnderlyingWithTransferPermit(from common.Address, token common.Address, to common.Address, amount *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1229  	return _AnyswapV4Router.Contract.AnySwapOutUnderlyingWithTransferPermit(&_AnyswapV4Router.TransactOpts, from, token, to, amount, deadline, v, r, s, toChainID)
  1230  }
  1231  
  1232  // AnySwapOutUnderlyingWithTransferPermit is a paid mutator transaction binding the contract method 0x1b91a934.
  1233  //
  1234  // Solidity: function anySwapOutUnderlyingWithTransferPermit(address from, address token, address to, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 toChainID) returns()
  1235  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) AnySwapOutUnderlyingWithTransferPermit(from common.Address, token common.Address, to common.Address, amount *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte, toChainID *big.Int) (*types.Transaction, error) {
  1236  	return _AnyswapV4Router.Contract.AnySwapOutUnderlyingWithTransferPermit(&_AnyswapV4Router.TransactOpts, from, token, to, amount, deadline, v, r, s, toChainID)
  1237  }
  1238  
  1239  // ChangeMPC is a paid mutator transaction binding the contract method 0x5b7b018c.
  1240  //
  1241  // Solidity: function changeMPC(address newMPC) returns(bool)
  1242  func (_AnyswapV4Router *AnyswapV4RouterTransactor) ChangeMPC(opts *bind.TransactOpts, newMPC common.Address) (*types.Transaction, error) {
  1243  	return _AnyswapV4Router.contract.Transact(opts, "changeMPC", newMPC)
  1244  }
  1245  
  1246  // ChangeMPC is a paid mutator transaction binding the contract method 0x5b7b018c.
  1247  //
  1248  // Solidity: function changeMPC(address newMPC) returns(bool)
  1249  func (_AnyswapV4Router *AnyswapV4RouterSession) ChangeMPC(newMPC common.Address) (*types.Transaction, error) {
  1250  	return _AnyswapV4Router.Contract.ChangeMPC(&_AnyswapV4Router.TransactOpts, newMPC)
  1251  }
  1252  
  1253  // ChangeMPC is a paid mutator transaction binding the contract method 0x5b7b018c.
  1254  //
  1255  // Solidity: function changeMPC(address newMPC) returns(bool)
  1256  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) ChangeMPC(newMPC common.Address) (*types.Transaction, error) {
  1257  	return _AnyswapV4Router.Contract.ChangeMPC(&_AnyswapV4Router.TransactOpts, newMPC)
  1258  }
  1259  
  1260  // ChangeVault is a paid mutator transaction binding the contract method 0x456862aa.
  1261  //
  1262  // Solidity: function changeVault(address token, address newVault) returns(bool)
  1263  func (_AnyswapV4Router *AnyswapV4RouterTransactor) ChangeVault(opts *bind.TransactOpts, token common.Address, newVault common.Address) (*types.Transaction, error) {
  1264  	return _AnyswapV4Router.contract.Transact(opts, "changeVault", token, newVault)
  1265  }
  1266  
  1267  // ChangeVault is a paid mutator transaction binding the contract method 0x456862aa.
  1268  //
  1269  // Solidity: function changeVault(address token, address newVault) returns(bool)
  1270  func (_AnyswapV4Router *AnyswapV4RouterSession) ChangeVault(token common.Address, newVault common.Address) (*types.Transaction, error) {
  1271  	return _AnyswapV4Router.Contract.ChangeVault(&_AnyswapV4Router.TransactOpts, token, newVault)
  1272  }
  1273  
  1274  // ChangeVault is a paid mutator transaction binding the contract method 0x456862aa.
  1275  //
  1276  // Solidity: function changeVault(address token, address newVault) returns(bool)
  1277  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) ChangeVault(token common.Address, newVault common.Address) (*types.Transaction, error) {
  1278  	return _AnyswapV4Router.Contract.ChangeVault(&_AnyswapV4Router.TransactOpts, token, newVault)
  1279  }
  1280  
  1281  // Receive is a paid mutator transaction binding the contract receive function.
  1282  //
  1283  // Solidity: receive() payable returns()
  1284  func (_AnyswapV4Router *AnyswapV4RouterTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) {
  1285  	return _AnyswapV4Router.contract.RawTransact(opts, nil) // calldata is disallowed for receive function
  1286  }
  1287  
  1288  // Receive is a paid mutator transaction binding the contract receive function.
  1289  //
  1290  // Solidity: receive() payable returns()
  1291  func (_AnyswapV4Router *AnyswapV4RouterSession) Receive() (*types.Transaction, error) {
  1292  	return _AnyswapV4Router.Contract.Receive(&_AnyswapV4Router.TransactOpts)
  1293  }
  1294  
  1295  // Receive is a paid mutator transaction binding the contract receive function.
  1296  //
  1297  // Solidity: receive() payable returns()
  1298  func (_AnyswapV4Router *AnyswapV4RouterTransactorSession) Receive() (*types.Transaction, error) {
  1299  	return _AnyswapV4Router.Contract.Receive(&_AnyswapV4Router.TransactOpts)
  1300  }
  1301  
  1302  // AnyswapV4RouterLogAnySwapInIterator is returned from FilterLogAnySwapIn and is used to iterate over the raw logs and unpacked data for LogAnySwapIn events raised by the AnyswapV4Router contract.
  1303  type AnyswapV4RouterLogAnySwapInIterator struct {
  1304  	Event *AnyswapV4RouterLogAnySwapIn // Event containing the contract specifics and raw log
  1305  
  1306  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1307  	event    string              // Event name to use for unpacking event data
  1308  
  1309  	logs chan types.Log        // Log channel receiving the found contract events
  1310  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1311  	done bool                  // Whether the subscription completed delivering logs
  1312  	fail error                 // Occurred error to stop iteration
  1313  }
  1314  
  1315  // Next advances the iterator to the subsequent event, returning whether there
  1316  // are any more events found. In case of a retrieval or parsing error, false is
  1317  // returned and Error() can be queried for the exact failure.
  1318  func (it *AnyswapV4RouterLogAnySwapInIterator) Next() bool {
  1319  	// If the iterator failed, stop iterating
  1320  	if it.fail != nil {
  1321  		return false
  1322  	}
  1323  	// If the iterator completed, deliver directly whatever's available
  1324  	if it.done {
  1325  		select {
  1326  		case log := <-it.logs:
  1327  			it.Event = new(AnyswapV4RouterLogAnySwapIn)
  1328  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1329  				it.fail = err
  1330  				return false
  1331  			}
  1332  			it.Event.Raw = log
  1333  			return true
  1334  
  1335  		default:
  1336  			return false
  1337  		}
  1338  	}
  1339  	// Iterator still in progress, wait for either a data or an error event
  1340  	select {
  1341  	case log := <-it.logs:
  1342  		it.Event = new(AnyswapV4RouterLogAnySwapIn)
  1343  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1344  			it.fail = err
  1345  			return false
  1346  		}
  1347  		it.Event.Raw = log
  1348  		return true
  1349  
  1350  	case err := <-it.sub.Err():
  1351  		it.done = true
  1352  		it.fail = err
  1353  		return it.Next()
  1354  	}
  1355  }
  1356  
  1357  // Error returns any retrieval or parsing error occurred during filtering.
  1358  func (it *AnyswapV4RouterLogAnySwapInIterator) Error() error {
  1359  	return it.fail
  1360  }
  1361  
  1362  // Close terminates the iteration process, releasing any pending underlying
  1363  // resources.
  1364  func (it *AnyswapV4RouterLogAnySwapInIterator) Close() error {
  1365  	it.sub.Unsubscribe()
  1366  	return nil
  1367  }
  1368  
  1369  // AnyswapV4RouterLogAnySwapIn represents a LogAnySwapIn event raised by the AnyswapV4Router contract.
  1370  type AnyswapV4RouterLogAnySwapIn struct {
  1371  	Txhash      [32]byte
  1372  	Token       common.Address
  1373  	To          common.Address
  1374  	Amount      *big.Int
  1375  	FromChainID *big.Int
  1376  	ToChainID   *big.Int
  1377  	Raw         types.Log // Blockchain specific contextual infos
  1378  }
  1379  
  1380  // FilterLogAnySwapIn is a free log retrieval operation binding the contract event 0xaac9ce45fe3adf5143598c4f18a369591a20a3384aedaf1b525d29127e1fcd55.
  1381  //
  1382  // Solidity: event LogAnySwapIn(bytes32 indexed txhash, address indexed token, address indexed to, uint256 amount, uint256 fromChainID, uint256 toChainID)
  1383  func (_AnyswapV4Router *AnyswapV4RouterFilterer) FilterLogAnySwapIn(opts *bind.FilterOpts, txhash [][32]byte, token []common.Address, to []common.Address) (*AnyswapV4RouterLogAnySwapInIterator, error) {
  1384  
  1385  	var txhashRule []interface{}
  1386  	for _, txhashItem := range txhash {
  1387  		txhashRule = append(txhashRule, txhashItem)
  1388  	}
  1389  	var tokenRule []interface{}
  1390  	for _, tokenItem := range token {
  1391  		tokenRule = append(tokenRule, tokenItem)
  1392  	}
  1393  	var toRule []interface{}
  1394  	for _, toItem := range to {
  1395  		toRule = append(toRule, toItem)
  1396  	}
  1397  
  1398  	logs, sub, err := _AnyswapV4Router.contract.FilterLogs(opts, "LogAnySwapIn", txhashRule, tokenRule, toRule)
  1399  	if err != nil {
  1400  		return nil, err
  1401  	}
  1402  	return &AnyswapV4RouterLogAnySwapInIterator{contract: _AnyswapV4Router.contract, event: "LogAnySwapIn", logs: logs, sub: sub}, nil
  1403  }
  1404  
  1405  // WatchLogAnySwapIn is a free log subscription operation binding the contract event 0xaac9ce45fe3adf5143598c4f18a369591a20a3384aedaf1b525d29127e1fcd55.
  1406  //
  1407  // Solidity: event LogAnySwapIn(bytes32 indexed txhash, address indexed token, address indexed to, uint256 amount, uint256 fromChainID, uint256 toChainID)
  1408  func (_AnyswapV4Router *AnyswapV4RouterFilterer) WatchLogAnySwapIn(opts *bind.WatchOpts, sink chan<- *AnyswapV4RouterLogAnySwapIn, txhash [][32]byte, token []common.Address, to []common.Address) (event.Subscription, error) {
  1409  
  1410  	var txhashRule []interface{}
  1411  	for _, txhashItem := range txhash {
  1412  		txhashRule = append(txhashRule, txhashItem)
  1413  	}
  1414  	var tokenRule []interface{}
  1415  	for _, tokenItem := range token {
  1416  		tokenRule = append(tokenRule, tokenItem)
  1417  	}
  1418  	var toRule []interface{}
  1419  	for _, toItem := range to {
  1420  		toRule = append(toRule, toItem)
  1421  	}
  1422  
  1423  	logs, sub, err := _AnyswapV4Router.contract.WatchLogs(opts, "LogAnySwapIn", txhashRule, tokenRule, toRule)
  1424  	if err != nil {
  1425  		return nil, err
  1426  	}
  1427  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1428  		defer sub.Unsubscribe()
  1429  		for {
  1430  			select {
  1431  			case log := <-logs:
  1432  				// New log arrived, parse the event and forward to the user
  1433  				event := new(AnyswapV4RouterLogAnySwapIn)
  1434  				if err := _AnyswapV4Router.contract.UnpackLog(event, "LogAnySwapIn", log); err != nil {
  1435  					return err
  1436  				}
  1437  				event.Raw = log
  1438  
  1439  				select {
  1440  				case sink <- event:
  1441  				case err := <-sub.Err():
  1442  					return err
  1443  				case <-quit:
  1444  					return nil
  1445  				}
  1446  			case err := <-sub.Err():
  1447  				return err
  1448  			case <-quit:
  1449  				return nil
  1450  			}
  1451  		}
  1452  	}), nil
  1453  }
  1454  
  1455  // ParseLogAnySwapIn is a log parse operation binding the contract event 0xaac9ce45fe3adf5143598c4f18a369591a20a3384aedaf1b525d29127e1fcd55.
  1456  //
  1457  // Solidity: event LogAnySwapIn(bytes32 indexed txhash, address indexed token, address indexed to, uint256 amount, uint256 fromChainID, uint256 toChainID)
  1458  func (_AnyswapV4Router *AnyswapV4RouterFilterer) ParseLogAnySwapIn(log types.Log) (*AnyswapV4RouterLogAnySwapIn, error) {
  1459  	event := new(AnyswapV4RouterLogAnySwapIn)
  1460  	if err := _AnyswapV4Router.contract.UnpackLog(event, "LogAnySwapIn", log); err != nil {
  1461  		return nil, err
  1462  	}
  1463  	event.Raw = log
  1464  	return event, nil
  1465  }
  1466  
  1467  // AnyswapV4RouterLogAnySwapOutIterator is returned from FilterLogAnySwapOut and is used to iterate over the raw logs and unpacked data for LogAnySwapOut events raised by the AnyswapV4Router contract.
  1468  type AnyswapV4RouterLogAnySwapOutIterator struct {
  1469  	Event *AnyswapV4RouterLogAnySwapOut // Event containing the contract specifics and raw log
  1470  
  1471  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1472  	event    string              // Event name to use for unpacking event data
  1473  
  1474  	logs chan types.Log        // Log channel receiving the found contract events
  1475  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1476  	done bool                  // Whether the subscription completed delivering logs
  1477  	fail error                 // Occurred error to stop iteration
  1478  }
  1479  
  1480  // Next advances the iterator to the subsequent event, returning whether there
  1481  // are any more events found. In case of a retrieval or parsing error, false is
  1482  // returned and Error() can be queried for the exact failure.
  1483  func (it *AnyswapV4RouterLogAnySwapOutIterator) Next() bool {
  1484  	// If the iterator failed, stop iterating
  1485  	if it.fail != nil {
  1486  		return false
  1487  	}
  1488  	// If the iterator completed, deliver directly whatever's available
  1489  	if it.done {
  1490  		select {
  1491  		case log := <-it.logs:
  1492  			it.Event = new(AnyswapV4RouterLogAnySwapOut)
  1493  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1494  				it.fail = err
  1495  				return false
  1496  			}
  1497  			it.Event.Raw = log
  1498  			return true
  1499  
  1500  		default:
  1501  			return false
  1502  		}
  1503  	}
  1504  	// Iterator still in progress, wait for either a data or an error event
  1505  	select {
  1506  	case log := <-it.logs:
  1507  		it.Event = new(AnyswapV4RouterLogAnySwapOut)
  1508  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1509  			it.fail = err
  1510  			return false
  1511  		}
  1512  		it.Event.Raw = log
  1513  		return true
  1514  
  1515  	case err := <-it.sub.Err():
  1516  		it.done = true
  1517  		it.fail = err
  1518  		return it.Next()
  1519  	}
  1520  }
  1521  
  1522  // Error returns any retrieval or parsing error occurred during filtering.
  1523  func (it *AnyswapV4RouterLogAnySwapOutIterator) Error() error {
  1524  	return it.fail
  1525  }
  1526  
  1527  // Close terminates the iteration process, releasing any pending underlying
  1528  // resources.
  1529  func (it *AnyswapV4RouterLogAnySwapOutIterator) Close() error {
  1530  	it.sub.Unsubscribe()
  1531  	return nil
  1532  }
  1533  
  1534  // AnyswapV4RouterLogAnySwapOut represents a LogAnySwapOut event raised by the AnyswapV4Router contract.
  1535  type AnyswapV4RouterLogAnySwapOut struct {
  1536  	Token       common.Address
  1537  	From        common.Address
  1538  	To          common.Address
  1539  	Amount      *big.Int
  1540  	FromChainID *big.Int
  1541  	ToChainID   *big.Int
  1542  	Raw         types.Log // Blockchain specific contextual infos
  1543  }
  1544  
  1545  // FilterLogAnySwapOut is a free log retrieval operation binding the contract event 0x97116cf6cd4f6412bb47914d6db18da9e16ab2142f543b86e207c24fbd16b23a.
  1546  //
  1547  // Solidity: event LogAnySwapOut(address indexed token, address indexed from, address indexed to, uint256 amount, uint256 fromChainID, uint256 toChainID)
  1548  func (_AnyswapV4Router *AnyswapV4RouterFilterer) FilterLogAnySwapOut(opts *bind.FilterOpts, token []common.Address, from []common.Address, to []common.Address) (*AnyswapV4RouterLogAnySwapOutIterator, error) {
  1549  
  1550  	var tokenRule []interface{}
  1551  	for _, tokenItem := range token {
  1552  		tokenRule = append(tokenRule, tokenItem)
  1553  	}
  1554  	var fromRule []interface{}
  1555  	for _, fromItem := range from {
  1556  		fromRule = append(fromRule, fromItem)
  1557  	}
  1558  	var toRule []interface{}
  1559  	for _, toItem := range to {
  1560  		toRule = append(toRule, toItem)
  1561  	}
  1562  
  1563  	logs, sub, err := _AnyswapV4Router.contract.FilterLogs(opts, "LogAnySwapOut", tokenRule, fromRule, toRule)
  1564  	if err != nil {
  1565  		return nil, err
  1566  	}
  1567  	return &AnyswapV4RouterLogAnySwapOutIterator{contract: _AnyswapV4Router.contract, event: "LogAnySwapOut", logs: logs, sub: sub}, nil
  1568  }
  1569  
  1570  // WatchLogAnySwapOut is a free log subscription operation binding the contract event 0x97116cf6cd4f6412bb47914d6db18da9e16ab2142f543b86e207c24fbd16b23a.
  1571  //
  1572  // Solidity: event LogAnySwapOut(address indexed token, address indexed from, address indexed to, uint256 amount, uint256 fromChainID, uint256 toChainID)
  1573  func (_AnyswapV4Router *AnyswapV4RouterFilterer) WatchLogAnySwapOut(opts *bind.WatchOpts, sink chan<- *AnyswapV4RouterLogAnySwapOut, token []common.Address, from []common.Address, to []common.Address) (event.Subscription, error) {
  1574  
  1575  	var tokenRule []interface{}
  1576  	for _, tokenItem := range token {
  1577  		tokenRule = append(tokenRule, tokenItem)
  1578  	}
  1579  	var fromRule []interface{}
  1580  	for _, fromItem := range from {
  1581  		fromRule = append(fromRule, fromItem)
  1582  	}
  1583  	var toRule []interface{}
  1584  	for _, toItem := range to {
  1585  		toRule = append(toRule, toItem)
  1586  	}
  1587  
  1588  	logs, sub, err := _AnyswapV4Router.contract.WatchLogs(opts, "LogAnySwapOut", tokenRule, fromRule, toRule)
  1589  	if err != nil {
  1590  		return nil, err
  1591  	}
  1592  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1593  		defer sub.Unsubscribe()
  1594  		for {
  1595  			select {
  1596  			case log := <-logs:
  1597  				// New log arrived, parse the event and forward to the user
  1598  				event := new(AnyswapV4RouterLogAnySwapOut)
  1599  				if err := _AnyswapV4Router.contract.UnpackLog(event, "LogAnySwapOut", log); err != nil {
  1600  					return err
  1601  				}
  1602  				event.Raw = log
  1603  
  1604  				select {
  1605  				case sink <- event:
  1606  				case err := <-sub.Err():
  1607  					return err
  1608  				case <-quit:
  1609  					return nil
  1610  				}
  1611  			case err := <-sub.Err():
  1612  				return err
  1613  			case <-quit:
  1614  				return nil
  1615  			}
  1616  		}
  1617  	}), nil
  1618  }
  1619  
  1620  // ParseLogAnySwapOut is a log parse operation binding the contract event 0x97116cf6cd4f6412bb47914d6db18da9e16ab2142f543b86e207c24fbd16b23a.
  1621  //
  1622  // Solidity: event LogAnySwapOut(address indexed token, address indexed from, address indexed to, uint256 amount, uint256 fromChainID, uint256 toChainID)
  1623  func (_AnyswapV4Router *AnyswapV4RouterFilterer) ParseLogAnySwapOut(log types.Log) (*AnyswapV4RouterLogAnySwapOut, error) {
  1624  	event := new(AnyswapV4RouterLogAnySwapOut)
  1625  	if err := _AnyswapV4Router.contract.UnpackLog(event, "LogAnySwapOut", log); err != nil {
  1626  		return nil, err
  1627  	}
  1628  	event.Raw = log
  1629  	return event, nil
  1630  }
  1631  
  1632  // AnyswapV4RouterLogAnySwapTradeTokensForNativeIterator is returned from FilterLogAnySwapTradeTokensForNative and is used to iterate over the raw logs and unpacked data for LogAnySwapTradeTokensForNative events raised by the AnyswapV4Router contract.
  1633  type AnyswapV4RouterLogAnySwapTradeTokensForNativeIterator struct {
  1634  	Event *AnyswapV4RouterLogAnySwapTradeTokensForNative // Event containing the contract specifics and raw log
  1635  
  1636  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1637  	event    string              // Event name to use for unpacking event data
  1638  
  1639  	logs chan types.Log        // Log channel receiving the found contract events
  1640  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1641  	done bool                  // Whether the subscription completed delivering logs
  1642  	fail error                 // Occurred error to stop iteration
  1643  }
  1644  
  1645  // Next advances the iterator to the subsequent event, returning whether there
  1646  // are any more events found. In case of a retrieval or parsing error, false is
  1647  // returned and Error() can be queried for the exact failure.
  1648  func (it *AnyswapV4RouterLogAnySwapTradeTokensForNativeIterator) Next() bool {
  1649  	// If the iterator failed, stop iterating
  1650  	if it.fail != nil {
  1651  		return false
  1652  	}
  1653  	// If the iterator completed, deliver directly whatever's available
  1654  	if it.done {
  1655  		select {
  1656  		case log := <-it.logs:
  1657  			it.Event = new(AnyswapV4RouterLogAnySwapTradeTokensForNative)
  1658  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1659  				it.fail = err
  1660  				return false
  1661  			}
  1662  			it.Event.Raw = log
  1663  			return true
  1664  
  1665  		default:
  1666  			return false
  1667  		}
  1668  	}
  1669  	// Iterator still in progress, wait for either a data or an error event
  1670  	select {
  1671  	case log := <-it.logs:
  1672  		it.Event = new(AnyswapV4RouterLogAnySwapTradeTokensForNative)
  1673  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1674  			it.fail = err
  1675  			return false
  1676  		}
  1677  		it.Event.Raw = log
  1678  		return true
  1679  
  1680  	case err := <-it.sub.Err():
  1681  		it.done = true
  1682  		it.fail = err
  1683  		return it.Next()
  1684  	}
  1685  }
  1686  
  1687  // Error returns any retrieval or parsing error occurred during filtering.
  1688  func (it *AnyswapV4RouterLogAnySwapTradeTokensForNativeIterator) Error() error {
  1689  	return it.fail
  1690  }
  1691  
  1692  // Close terminates the iteration process, releasing any pending underlying
  1693  // resources.
  1694  func (it *AnyswapV4RouterLogAnySwapTradeTokensForNativeIterator) Close() error {
  1695  	it.sub.Unsubscribe()
  1696  	return nil
  1697  }
  1698  
  1699  // AnyswapV4RouterLogAnySwapTradeTokensForNative represents a LogAnySwapTradeTokensForNative event raised by the AnyswapV4Router contract.
  1700  type AnyswapV4RouterLogAnySwapTradeTokensForNative struct {
  1701  	Path         []common.Address
  1702  	From         common.Address
  1703  	To           common.Address
  1704  	AmountIn     *big.Int
  1705  	AmountOutMin *big.Int
  1706  	FromChainID  *big.Int
  1707  	ToChainID    *big.Int
  1708  	Raw          types.Log // Blockchain specific contextual infos
  1709  }
  1710  
  1711  // FilterLogAnySwapTradeTokensForNative is a free log retrieval operation binding the contract event 0x278277e0209c347189add7bd92411973b5f6b8644f7ac62ea1be984ce993f8f4.
  1712  //
  1713  // Solidity: event LogAnySwapTradeTokensForNative(address[] path, address indexed from, address indexed to, uint256 amountIn, uint256 amountOutMin, uint256 fromChainID, uint256 toChainID)
  1714  func (_AnyswapV4Router *AnyswapV4RouterFilterer) FilterLogAnySwapTradeTokensForNative(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*AnyswapV4RouterLogAnySwapTradeTokensForNativeIterator, error) {
  1715  
  1716  	var fromRule []interface{}
  1717  	for _, fromItem := range from {
  1718  		fromRule = append(fromRule, fromItem)
  1719  	}
  1720  	var toRule []interface{}
  1721  	for _, toItem := range to {
  1722  		toRule = append(toRule, toItem)
  1723  	}
  1724  
  1725  	logs, sub, err := _AnyswapV4Router.contract.FilterLogs(opts, "LogAnySwapTradeTokensForNative", fromRule, toRule)
  1726  	if err != nil {
  1727  		return nil, err
  1728  	}
  1729  	return &AnyswapV4RouterLogAnySwapTradeTokensForNativeIterator{contract: _AnyswapV4Router.contract, event: "LogAnySwapTradeTokensForNative", logs: logs, sub: sub}, nil
  1730  }
  1731  
  1732  // WatchLogAnySwapTradeTokensForNative is a free log subscription operation binding the contract event 0x278277e0209c347189add7bd92411973b5f6b8644f7ac62ea1be984ce993f8f4.
  1733  //
  1734  // Solidity: event LogAnySwapTradeTokensForNative(address[] path, address indexed from, address indexed to, uint256 amountIn, uint256 amountOutMin, uint256 fromChainID, uint256 toChainID)
  1735  func (_AnyswapV4Router *AnyswapV4RouterFilterer) WatchLogAnySwapTradeTokensForNative(opts *bind.WatchOpts, sink chan<- *AnyswapV4RouterLogAnySwapTradeTokensForNative, from []common.Address, to []common.Address) (event.Subscription, error) {
  1736  
  1737  	var fromRule []interface{}
  1738  	for _, fromItem := range from {
  1739  		fromRule = append(fromRule, fromItem)
  1740  	}
  1741  	var toRule []interface{}
  1742  	for _, toItem := range to {
  1743  		toRule = append(toRule, toItem)
  1744  	}
  1745  
  1746  	logs, sub, err := _AnyswapV4Router.contract.WatchLogs(opts, "LogAnySwapTradeTokensForNative", fromRule, toRule)
  1747  	if err != nil {
  1748  		return nil, err
  1749  	}
  1750  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1751  		defer sub.Unsubscribe()
  1752  		for {
  1753  			select {
  1754  			case log := <-logs:
  1755  				// New log arrived, parse the event and forward to the user
  1756  				event := new(AnyswapV4RouterLogAnySwapTradeTokensForNative)
  1757  				if err := _AnyswapV4Router.contract.UnpackLog(event, "LogAnySwapTradeTokensForNative", log); err != nil {
  1758  					return err
  1759  				}
  1760  				event.Raw = log
  1761  
  1762  				select {
  1763  				case sink <- event:
  1764  				case err := <-sub.Err():
  1765  					return err
  1766  				case <-quit:
  1767  					return nil
  1768  				}
  1769  			case err := <-sub.Err():
  1770  				return err
  1771  			case <-quit:
  1772  				return nil
  1773  			}
  1774  		}
  1775  	}), nil
  1776  }
  1777  
  1778  // ParseLogAnySwapTradeTokensForNative is a log parse operation binding the contract event 0x278277e0209c347189add7bd92411973b5f6b8644f7ac62ea1be984ce993f8f4.
  1779  //
  1780  // Solidity: event LogAnySwapTradeTokensForNative(address[] path, address indexed from, address indexed to, uint256 amountIn, uint256 amountOutMin, uint256 fromChainID, uint256 toChainID)
  1781  func (_AnyswapV4Router *AnyswapV4RouterFilterer) ParseLogAnySwapTradeTokensForNative(log types.Log) (*AnyswapV4RouterLogAnySwapTradeTokensForNative, error) {
  1782  	event := new(AnyswapV4RouterLogAnySwapTradeTokensForNative)
  1783  	if err := _AnyswapV4Router.contract.UnpackLog(event, "LogAnySwapTradeTokensForNative", log); err != nil {
  1784  		return nil, err
  1785  	}
  1786  	event.Raw = log
  1787  	return event, nil
  1788  }
  1789  
  1790  // AnyswapV4RouterLogAnySwapTradeTokensForTokensIterator is returned from FilterLogAnySwapTradeTokensForTokens and is used to iterate over the raw logs and unpacked data for LogAnySwapTradeTokensForTokens events raised by the AnyswapV4Router contract.
  1791  type AnyswapV4RouterLogAnySwapTradeTokensForTokensIterator struct {
  1792  	Event *AnyswapV4RouterLogAnySwapTradeTokensForTokens // Event containing the contract specifics and raw log
  1793  
  1794  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1795  	event    string              // Event name to use for unpacking event data
  1796  
  1797  	logs chan types.Log        // Log channel receiving the found contract events
  1798  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1799  	done bool                  // Whether the subscription completed delivering logs
  1800  	fail error                 // Occurred error to stop iteration
  1801  }
  1802  
  1803  // Next advances the iterator to the subsequent event, returning whether there
  1804  // are any more events found. In case of a retrieval or parsing error, false is
  1805  // returned and Error() can be queried for the exact failure.
  1806  func (it *AnyswapV4RouterLogAnySwapTradeTokensForTokensIterator) Next() bool {
  1807  	// If the iterator failed, stop iterating
  1808  	if it.fail != nil {
  1809  		return false
  1810  	}
  1811  	// If the iterator completed, deliver directly whatever's available
  1812  	if it.done {
  1813  		select {
  1814  		case log := <-it.logs:
  1815  			it.Event = new(AnyswapV4RouterLogAnySwapTradeTokensForTokens)
  1816  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1817  				it.fail = err
  1818  				return false
  1819  			}
  1820  			it.Event.Raw = log
  1821  			return true
  1822  
  1823  		default:
  1824  			return false
  1825  		}
  1826  	}
  1827  	// Iterator still in progress, wait for either a data or an error event
  1828  	select {
  1829  	case log := <-it.logs:
  1830  		it.Event = new(AnyswapV4RouterLogAnySwapTradeTokensForTokens)
  1831  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1832  			it.fail = err
  1833  			return false
  1834  		}
  1835  		it.Event.Raw = log
  1836  		return true
  1837  
  1838  	case err := <-it.sub.Err():
  1839  		it.done = true
  1840  		it.fail = err
  1841  		return it.Next()
  1842  	}
  1843  }
  1844  
  1845  // Error returns any retrieval or parsing error occurred during filtering.
  1846  func (it *AnyswapV4RouterLogAnySwapTradeTokensForTokensIterator) Error() error {
  1847  	return it.fail
  1848  }
  1849  
  1850  // Close terminates the iteration process, releasing any pending underlying
  1851  // resources.
  1852  func (it *AnyswapV4RouterLogAnySwapTradeTokensForTokensIterator) Close() error {
  1853  	it.sub.Unsubscribe()
  1854  	return nil
  1855  }
  1856  
  1857  // AnyswapV4RouterLogAnySwapTradeTokensForTokens represents a LogAnySwapTradeTokensForTokens event raised by the AnyswapV4Router contract.
  1858  type AnyswapV4RouterLogAnySwapTradeTokensForTokens struct {
  1859  	Path         []common.Address
  1860  	From         common.Address
  1861  	To           common.Address
  1862  	AmountIn     *big.Int
  1863  	AmountOutMin *big.Int
  1864  	FromChainID  *big.Int
  1865  	ToChainID    *big.Int
  1866  	Raw          types.Log // Blockchain specific contextual infos
  1867  }
  1868  
  1869  // FilterLogAnySwapTradeTokensForTokens is a free log retrieval operation binding the contract event 0xfea6abdf4fd32f20966dff7619354cd82cd43dc78a3bee479f04c74dbfc585b3.
  1870  //
  1871  // Solidity: event LogAnySwapTradeTokensForTokens(address[] path, address indexed from, address indexed to, uint256 amountIn, uint256 amountOutMin, uint256 fromChainID, uint256 toChainID)
  1872  func (_AnyswapV4Router *AnyswapV4RouterFilterer) FilterLogAnySwapTradeTokensForTokens(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*AnyswapV4RouterLogAnySwapTradeTokensForTokensIterator, error) {
  1873  
  1874  	var fromRule []interface{}
  1875  	for _, fromItem := range from {
  1876  		fromRule = append(fromRule, fromItem)
  1877  	}
  1878  	var toRule []interface{}
  1879  	for _, toItem := range to {
  1880  		toRule = append(toRule, toItem)
  1881  	}
  1882  
  1883  	logs, sub, err := _AnyswapV4Router.contract.FilterLogs(opts, "LogAnySwapTradeTokensForTokens", fromRule, toRule)
  1884  	if err != nil {
  1885  		return nil, err
  1886  	}
  1887  	return &AnyswapV4RouterLogAnySwapTradeTokensForTokensIterator{contract: _AnyswapV4Router.contract, event: "LogAnySwapTradeTokensForTokens", logs: logs, sub: sub}, nil
  1888  }
  1889  
  1890  // WatchLogAnySwapTradeTokensForTokens is a free log subscription operation binding the contract event 0xfea6abdf4fd32f20966dff7619354cd82cd43dc78a3bee479f04c74dbfc585b3.
  1891  //
  1892  // Solidity: event LogAnySwapTradeTokensForTokens(address[] path, address indexed from, address indexed to, uint256 amountIn, uint256 amountOutMin, uint256 fromChainID, uint256 toChainID)
  1893  func (_AnyswapV4Router *AnyswapV4RouterFilterer) WatchLogAnySwapTradeTokensForTokens(opts *bind.WatchOpts, sink chan<- *AnyswapV4RouterLogAnySwapTradeTokensForTokens, from []common.Address, to []common.Address) (event.Subscription, error) {
  1894  
  1895  	var fromRule []interface{}
  1896  	for _, fromItem := range from {
  1897  		fromRule = append(fromRule, fromItem)
  1898  	}
  1899  	var toRule []interface{}
  1900  	for _, toItem := range to {
  1901  		toRule = append(toRule, toItem)
  1902  	}
  1903  
  1904  	logs, sub, err := _AnyswapV4Router.contract.WatchLogs(opts, "LogAnySwapTradeTokensForTokens", fromRule, toRule)
  1905  	if err != nil {
  1906  		return nil, err
  1907  	}
  1908  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1909  		defer sub.Unsubscribe()
  1910  		for {
  1911  			select {
  1912  			case log := <-logs:
  1913  				// New log arrived, parse the event and forward to the user
  1914  				event := new(AnyswapV4RouterLogAnySwapTradeTokensForTokens)
  1915  				if err := _AnyswapV4Router.contract.UnpackLog(event, "LogAnySwapTradeTokensForTokens", log); err != nil {
  1916  					return err
  1917  				}
  1918  				event.Raw = log
  1919  
  1920  				select {
  1921  				case sink <- event:
  1922  				case err := <-sub.Err():
  1923  					return err
  1924  				case <-quit:
  1925  					return nil
  1926  				}
  1927  			case err := <-sub.Err():
  1928  				return err
  1929  			case <-quit:
  1930  				return nil
  1931  			}
  1932  		}
  1933  	}), nil
  1934  }
  1935  
  1936  // ParseLogAnySwapTradeTokensForTokens is a log parse operation binding the contract event 0xfea6abdf4fd32f20966dff7619354cd82cd43dc78a3bee479f04c74dbfc585b3.
  1937  //
  1938  // Solidity: event LogAnySwapTradeTokensForTokens(address[] path, address indexed from, address indexed to, uint256 amountIn, uint256 amountOutMin, uint256 fromChainID, uint256 toChainID)
  1939  func (_AnyswapV4Router *AnyswapV4RouterFilterer) ParseLogAnySwapTradeTokensForTokens(log types.Log) (*AnyswapV4RouterLogAnySwapTradeTokensForTokens, error) {
  1940  	event := new(AnyswapV4RouterLogAnySwapTradeTokensForTokens)
  1941  	if err := _AnyswapV4Router.contract.UnpackLog(event, "LogAnySwapTradeTokensForTokens", log); err != nil {
  1942  		return nil, err
  1943  	}
  1944  	event.Raw = log
  1945  	return event, nil
  1946  }
  1947  
  1948  // AnyswapV4RouterLogChangeMPCIterator is returned from FilterLogChangeMPC and is used to iterate over the raw logs and unpacked data for LogChangeMPC events raised by the AnyswapV4Router contract.
  1949  type AnyswapV4RouterLogChangeMPCIterator struct {
  1950  	Event *AnyswapV4RouterLogChangeMPC // Event containing the contract specifics and raw log
  1951  
  1952  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1953  	event    string              // Event name to use for unpacking event data
  1954  
  1955  	logs chan types.Log        // Log channel receiving the found contract events
  1956  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1957  	done bool                  // Whether the subscription completed delivering logs
  1958  	fail error                 // Occurred error to stop iteration
  1959  }
  1960  
  1961  // Next advances the iterator to the subsequent event, returning whether there
  1962  // are any more events found. In case of a retrieval or parsing error, false is
  1963  // returned and Error() can be queried for the exact failure.
  1964  func (it *AnyswapV4RouterLogChangeMPCIterator) Next() bool {
  1965  	// If the iterator failed, stop iterating
  1966  	if it.fail != nil {
  1967  		return false
  1968  	}
  1969  	// If the iterator completed, deliver directly whatever's available
  1970  	if it.done {
  1971  		select {
  1972  		case log := <-it.logs:
  1973  			it.Event = new(AnyswapV4RouterLogChangeMPC)
  1974  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1975  				it.fail = err
  1976  				return false
  1977  			}
  1978  			it.Event.Raw = log
  1979  			return true
  1980  
  1981  		default:
  1982  			return false
  1983  		}
  1984  	}
  1985  	// Iterator still in progress, wait for either a data or an error event
  1986  	select {
  1987  	case log := <-it.logs:
  1988  		it.Event = new(AnyswapV4RouterLogChangeMPC)
  1989  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1990  			it.fail = err
  1991  			return false
  1992  		}
  1993  		it.Event.Raw = log
  1994  		return true
  1995  
  1996  	case err := <-it.sub.Err():
  1997  		it.done = true
  1998  		it.fail = err
  1999  		return it.Next()
  2000  	}
  2001  }
  2002  
  2003  // Error returns any retrieval or parsing error occurred during filtering.
  2004  func (it *AnyswapV4RouterLogChangeMPCIterator) Error() error {
  2005  	return it.fail
  2006  }
  2007  
  2008  // Close terminates the iteration process, releasing any pending underlying
  2009  // resources.
  2010  func (it *AnyswapV4RouterLogChangeMPCIterator) Close() error {
  2011  	it.sub.Unsubscribe()
  2012  	return nil
  2013  }
  2014  
  2015  // AnyswapV4RouterLogChangeMPC represents a LogChangeMPC event raised by the AnyswapV4Router contract.
  2016  type AnyswapV4RouterLogChangeMPC struct {
  2017  	OldMPC        common.Address
  2018  	NewMPC        common.Address
  2019  	EffectiveTime *big.Int
  2020  	ChainID       *big.Int
  2021  	Raw           types.Log // Blockchain specific contextual infos
  2022  }
  2023  
  2024  // FilterLogChangeMPC is a free log retrieval operation binding the contract event 0xcda32bc39904597666dfa9f9c845714756e1ffffad55b52e0d344673a2198121.
  2025  //
  2026  // Solidity: event LogChangeMPC(address indexed oldMPC, address indexed newMPC, uint256 indexed effectiveTime, uint256 chainID)
  2027  func (_AnyswapV4Router *AnyswapV4RouterFilterer) FilterLogChangeMPC(opts *bind.FilterOpts, oldMPC []common.Address, newMPC []common.Address, effectiveTime []*big.Int) (*AnyswapV4RouterLogChangeMPCIterator, error) {
  2028  
  2029  	var oldMPCRule []interface{}
  2030  	for _, oldMPCItem := range oldMPC {
  2031  		oldMPCRule = append(oldMPCRule, oldMPCItem)
  2032  	}
  2033  	var newMPCRule []interface{}
  2034  	for _, newMPCItem := range newMPC {
  2035  		newMPCRule = append(newMPCRule, newMPCItem)
  2036  	}
  2037  	var effectiveTimeRule []interface{}
  2038  	for _, effectiveTimeItem := range effectiveTime {
  2039  		effectiveTimeRule = append(effectiveTimeRule, effectiveTimeItem)
  2040  	}
  2041  
  2042  	logs, sub, err := _AnyswapV4Router.contract.FilterLogs(opts, "LogChangeMPC", oldMPCRule, newMPCRule, effectiveTimeRule)
  2043  	if err != nil {
  2044  		return nil, err
  2045  	}
  2046  	return &AnyswapV4RouterLogChangeMPCIterator{contract: _AnyswapV4Router.contract, event: "LogChangeMPC", logs: logs, sub: sub}, nil
  2047  }
  2048  
  2049  // WatchLogChangeMPC is a free log subscription operation binding the contract event 0xcda32bc39904597666dfa9f9c845714756e1ffffad55b52e0d344673a2198121.
  2050  //
  2051  // Solidity: event LogChangeMPC(address indexed oldMPC, address indexed newMPC, uint256 indexed effectiveTime, uint256 chainID)
  2052  func (_AnyswapV4Router *AnyswapV4RouterFilterer) WatchLogChangeMPC(opts *bind.WatchOpts, sink chan<- *AnyswapV4RouterLogChangeMPC, oldMPC []common.Address, newMPC []common.Address, effectiveTime []*big.Int) (event.Subscription, error) {
  2053  
  2054  	var oldMPCRule []interface{}
  2055  	for _, oldMPCItem := range oldMPC {
  2056  		oldMPCRule = append(oldMPCRule, oldMPCItem)
  2057  	}
  2058  	var newMPCRule []interface{}
  2059  	for _, newMPCItem := range newMPC {
  2060  		newMPCRule = append(newMPCRule, newMPCItem)
  2061  	}
  2062  	var effectiveTimeRule []interface{}
  2063  	for _, effectiveTimeItem := range effectiveTime {
  2064  		effectiveTimeRule = append(effectiveTimeRule, effectiveTimeItem)
  2065  	}
  2066  
  2067  	logs, sub, err := _AnyswapV4Router.contract.WatchLogs(opts, "LogChangeMPC", oldMPCRule, newMPCRule, effectiveTimeRule)
  2068  	if err != nil {
  2069  		return nil, err
  2070  	}
  2071  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2072  		defer sub.Unsubscribe()
  2073  		for {
  2074  			select {
  2075  			case log := <-logs:
  2076  				// New log arrived, parse the event and forward to the user
  2077  				event := new(AnyswapV4RouterLogChangeMPC)
  2078  				if err := _AnyswapV4Router.contract.UnpackLog(event, "LogChangeMPC", log); err != nil {
  2079  					return err
  2080  				}
  2081  				event.Raw = log
  2082  
  2083  				select {
  2084  				case sink <- event:
  2085  				case err := <-sub.Err():
  2086  					return err
  2087  				case <-quit:
  2088  					return nil
  2089  				}
  2090  			case err := <-sub.Err():
  2091  				return err
  2092  			case <-quit:
  2093  				return nil
  2094  			}
  2095  		}
  2096  	}), nil
  2097  }
  2098  
  2099  // ParseLogChangeMPC is a log parse operation binding the contract event 0xcda32bc39904597666dfa9f9c845714756e1ffffad55b52e0d344673a2198121.
  2100  //
  2101  // Solidity: event LogChangeMPC(address indexed oldMPC, address indexed newMPC, uint256 indexed effectiveTime, uint256 chainID)
  2102  func (_AnyswapV4Router *AnyswapV4RouterFilterer) ParseLogChangeMPC(log types.Log) (*AnyswapV4RouterLogChangeMPC, error) {
  2103  	event := new(AnyswapV4RouterLogChangeMPC)
  2104  	if err := _AnyswapV4Router.contract.UnpackLog(event, "LogChangeMPC", log); err != nil {
  2105  		return nil, err
  2106  	}
  2107  	event.Raw = log
  2108  	return event, nil
  2109  }
  2110  
  2111  // AnyswapV4RouterLogChangeRouterIterator is returned from FilterLogChangeRouter and is used to iterate over the raw logs and unpacked data for LogChangeRouter events raised by the AnyswapV4Router contract.
  2112  type AnyswapV4RouterLogChangeRouterIterator struct {
  2113  	Event *AnyswapV4RouterLogChangeRouter // Event containing the contract specifics and raw log
  2114  
  2115  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2116  	event    string              // Event name to use for unpacking event data
  2117  
  2118  	logs chan types.Log        // Log channel receiving the found contract events
  2119  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2120  	done bool                  // Whether the subscription completed delivering logs
  2121  	fail error                 // Occurred error to stop iteration
  2122  }
  2123  
  2124  // Next advances the iterator to the subsequent event, returning whether there
  2125  // are any more events found. In case of a retrieval or parsing error, false is
  2126  // returned and Error() can be queried for the exact failure.
  2127  func (it *AnyswapV4RouterLogChangeRouterIterator) Next() bool {
  2128  	// If the iterator failed, stop iterating
  2129  	if it.fail != nil {
  2130  		return false
  2131  	}
  2132  	// If the iterator completed, deliver directly whatever's available
  2133  	if it.done {
  2134  		select {
  2135  		case log := <-it.logs:
  2136  			it.Event = new(AnyswapV4RouterLogChangeRouter)
  2137  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2138  				it.fail = err
  2139  				return false
  2140  			}
  2141  			it.Event.Raw = log
  2142  			return true
  2143  
  2144  		default:
  2145  			return false
  2146  		}
  2147  	}
  2148  	// Iterator still in progress, wait for either a data or an error event
  2149  	select {
  2150  	case log := <-it.logs:
  2151  		it.Event = new(AnyswapV4RouterLogChangeRouter)
  2152  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2153  			it.fail = err
  2154  			return false
  2155  		}
  2156  		it.Event.Raw = log
  2157  		return true
  2158  
  2159  	case err := <-it.sub.Err():
  2160  		it.done = true
  2161  		it.fail = err
  2162  		return it.Next()
  2163  	}
  2164  }
  2165  
  2166  // Error returns any retrieval or parsing error occurred during filtering.
  2167  func (it *AnyswapV4RouterLogChangeRouterIterator) Error() error {
  2168  	return it.fail
  2169  }
  2170  
  2171  // Close terminates the iteration process, releasing any pending underlying
  2172  // resources.
  2173  func (it *AnyswapV4RouterLogChangeRouterIterator) Close() error {
  2174  	it.sub.Unsubscribe()
  2175  	return nil
  2176  }
  2177  
  2178  // AnyswapV4RouterLogChangeRouter represents a LogChangeRouter event raised by the AnyswapV4Router contract.
  2179  type AnyswapV4RouterLogChangeRouter struct {
  2180  	OldRouter common.Address
  2181  	NewRouter common.Address
  2182  	ChainID   *big.Int
  2183  	Raw       types.Log // Blockchain specific contextual infos
  2184  }
  2185  
  2186  // FilterLogChangeRouter is a free log retrieval operation binding the contract event 0x7eefe162042d50d604dca716bef4ff4c5e318a056f712c0195d016f78089955a.
  2187  //
  2188  // Solidity: event LogChangeRouter(address indexed oldRouter, address indexed newRouter, uint256 chainID)
  2189  func (_AnyswapV4Router *AnyswapV4RouterFilterer) FilterLogChangeRouter(opts *bind.FilterOpts, oldRouter []common.Address, newRouter []common.Address) (*AnyswapV4RouterLogChangeRouterIterator, error) {
  2190  
  2191  	var oldRouterRule []interface{}
  2192  	for _, oldRouterItem := range oldRouter {
  2193  		oldRouterRule = append(oldRouterRule, oldRouterItem)
  2194  	}
  2195  	var newRouterRule []interface{}
  2196  	for _, newRouterItem := range newRouter {
  2197  		newRouterRule = append(newRouterRule, newRouterItem)
  2198  	}
  2199  
  2200  	logs, sub, err := _AnyswapV4Router.contract.FilterLogs(opts, "LogChangeRouter", oldRouterRule, newRouterRule)
  2201  	if err != nil {
  2202  		return nil, err
  2203  	}
  2204  	return &AnyswapV4RouterLogChangeRouterIterator{contract: _AnyswapV4Router.contract, event: "LogChangeRouter", logs: logs, sub: sub}, nil
  2205  }
  2206  
  2207  // WatchLogChangeRouter is a free log subscription operation binding the contract event 0x7eefe162042d50d604dca716bef4ff4c5e318a056f712c0195d016f78089955a.
  2208  //
  2209  // Solidity: event LogChangeRouter(address indexed oldRouter, address indexed newRouter, uint256 chainID)
  2210  func (_AnyswapV4Router *AnyswapV4RouterFilterer) WatchLogChangeRouter(opts *bind.WatchOpts, sink chan<- *AnyswapV4RouterLogChangeRouter, oldRouter []common.Address, newRouter []common.Address) (event.Subscription, error) {
  2211  
  2212  	var oldRouterRule []interface{}
  2213  	for _, oldRouterItem := range oldRouter {
  2214  		oldRouterRule = append(oldRouterRule, oldRouterItem)
  2215  	}
  2216  	var newRouterRule []interface{}
  2217  	for _, newRouterItem := range newRouter {
  2218  		newRouterRule = append(newRouterRule, newRouterItem)
  2219  	}
  2220  
  2221  	logs, sub, err := _AnyswapV4Router.contract.WatchLogs(opts, "LogChangeRouter", oldRouterRule, newRouterRule)
  2222  	if err != nil {
  2223  		return nil, err
  2224  	}
  2225  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2226  		defer sub.Unsubscribe()
  2227  		for {
  2228  			select {
  2229  			case log := <-logs:
  2230  				// New log arrived, parse the event and forward to the user
  2231  				event := new(AnyswapV4RouterLogChangeRouter)
  2232  				if err := _AnyswapV4Router.contract.UnpackLog(event, "LogChangeRouter", log); err != nil {
  2233  					return err
  2234  				}
  2235  				event.Raw = log
  2236  
  2237  				select {
  2238  				case sink <- event:
  2239  				case err := <-sub.Err():
  2240  					return err
  2241  				case <-quit:
  2242  					return nil
  2243  				}
  2244  			case err := <-sub.Err():
  2245  				return err
  2246  			case <-quit:
  2247  				return nil
  2248  			}
  2249  		}
  2250  	}), nil
  2251  }
  2252  
  2253  // ParseLogChangeRouter is a log parse operation binding the contract event 0x7eefe162042d50d604dca716bef4ff4c5e318a056f712c0195d016f78089955a.
  2254  //
  2255  // Solidity: event LogChangeRouter(address indexed oldRouter, address indexed newRouter, uint256 chainID)
  2256  func (_AnyswapV4Router *AnyswapV4RouterFilterer) ParseLogChangeRouter(log types.Log) (*AnyswapV4RouterLogChangeRouter, error) {
  2257  	event := new(AnyswapV4RouterLogChangeRouter)
  2258  	if err := _AnyswapV4Router.contract.UnpackLog(event, "LogChangeRouter", log); err != nil {
  2259  		return nil, err
  2260  	}
  2261  	event.Raw = log
  2262  	return event, nil
  2263  }
  2264  
  2265  // IERC20MetaData contains all meta data concerning the IERC20 contract.
  2266  var IERC20MetaData = &bind.MetaData{
  2267  	ABI: "[{\"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\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"transferWithPermit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
  2268  	Sigs: map[string]string{
  2269  		"dd62ed3e": "allowance(address,address)",
  2270  		"095ea7b3": "approve(address,uint256)",
  2271  		"70a08231": "balanceOf(address)",
  2272  		"d505accf": "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)",
  2273  		"18160ddd": "totalSupply()",
  2274  		"a9059cbb": "transfer(address,uint256)",
  2275  		"23b872dd": "transferFrom(address,address,uint256)",
  2276  		"605629d6": "transferWithPermit(address,address,uint256,uint256,uint8,bytes32,bytes32)",
  2277  	},
  2278  }
  2279  
  2280  // IERC20ABI is the input ABI used to generate the binding from.
  2281  // Deprecated: Use IERC20MetaData.ABI instead.
  2282  var IERC20ABI = IERC20MetaData.ABI
  2283  
  2284  // Deprecated: Use IERC20MetaData.Sigs instead.
  2285  // IERC20FuncSigs maps the 4-byte function signature to its string representation.
  2286  var IERC20FuncSigs = IERC20MetaData.Sigs
  2287  
  2288  // IERC20 is an auto generated Go binding around an Ethereum contract.
  2289  type IERC20 struct {
  2290  	IERC20Caller     // Read-only binding to the contract
  2291  	IERC20Transactor // Write-only binding to the contract
  2292  	IERC20Filterer   // Log filterer for contract events
  2293  }
  2294  
  2295  // IERC20Caller is an auto generated read-only Go binding around an Ethereum contract.
  2296  type IERC20Caller struct {
  2297  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2298  }
  2299  
  2300  // IERC20Transactor is an auto generated write-only Go binding around an Ethereum contract.
  2301  type IERC20Transactor struct {
  2302  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2303  }
  2304  
  2305  // IERC20Filterer is an auto generated log filtering Go binding around an Ethereum contract events.
  2306  type IERC20Filterer struct {
  2307  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2308  }
  2309  
  2310  // IERC20Session is an auto generated Go binding around an Ethereum contract,
  2311  // with pre-set call and transact options.
  2312  type IERC20Session struct {
  2313  	Contract     *IERC20           // Generic contract binding to set the session for
  2314  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  2315  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  2316  }
  2317  
  2318  // IERC20CallerSession is an auto generated read-only Go binding around an Ethereum contract,
  2319  // with pre-set call options.
  2320  type IERC20CallerSession struct {
  2321  	Contract *IERC20Caller // Generic contract caller binding to set the session for
  2322  	CallOpts bind.CallOpts // Call options to use throughout this session
  2323  }
  2324  
  2325  // IERC20TransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  2326  // with pre-set transact options.
  2327  type IERC20TransactorSession struct {
  2328  	Contract     *IERC20Transactor // Generic contract transactor binding to set the session for
  2329  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  2330  }
  2331  
  2332  // IERC20Raw is an auto generated low-level Go binding around an Ethereum contract.
  2333  type IERC20Raw struct {
  2334  	Contract *IERC20 // Generic contract binding to access the raw methods on
  2335  }
  2336  
  2337  // IERC20CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  2338  type IERC20CallerRaw struct {
  2339  	Contract *IERC20Caller // Generic read-only contract binding to access the raw methods on
  2340  }
  2341  
  2342  // IERC20TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  2343  type IERC20TransactorRaw struct {
  2344  	Contract *IERC20Transactor // Generic write-only contract binding to access the raw methods on
  2345  }
  2346  
  2347  // NewIERC20 creates a new instance of IERC20, bound to a specific deployed contract.
  2348  func NewIERC20(address common.Address, backend bind.ContractBackend) (*IERC20, error) {
  2349  	contract, err := bindIERC20(address, backend, backend, backend)
  2350  	if err != nil {
  2351  		return nil, err
  2352  	}
  2353  	return &IERC20{IERC20Caller: IERC20Caller{contract: contract}, IERC20Transactor: IERC20Transactor{contract: contract}, IERC20Filterer: IERC20Filterer{contract: contract}}, nil
  2354  }
  2355  
  2356  // NewIERC20Caller creates a new read-only instance of IERC20, bound to a specific deployed contract.
  2357  func NewIERC20Caller(address common.Address, caller bind.ContractCaller) (*IERC20Caller, error) {
  2358  	contract, err := bindIERC20(address, caller, nil, nil)
  2359  	if err != nil {
  2360  		return nil, err
  2361  	}
  2362  	return &IERC20Caller{contract: contract}, nil
  2363  }
  2364  
  2365  // NewIERC20Transactor creates a new write-only instance of IERC20, bound to a specific deployed contract.
  2366  func NewIERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC20Transactor, error) {
  2367  	contract, err := bindIERC20(address, nil, transactor, nil)
  2368  	if err != nil {
  2369  		return nil, err
  2370  	}
  2371  	return &IERC20Transactor{contract: contract}, nil
  2372  }
  2373  
  2374  // NewIERC20Filterer creates a new log filterer instance of IERC20, bound to a specific deployed contract.
  2375  func NewIERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC20Filterer, error) {
  2376  	contract, err := bindIERC20(address, nil, nil, filterer)
  2377  	if err != nil {
  2378  		return nil, err
  2379  	}
  2380  	return &IERC20Filterer{contract: contract}, nil
  2381  }
  2382  
  2383  // bindIERC20 binds a generic wrapper to an already deployed contract.
  2384  func bindIERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  2385  	parsed, err := abi.JSON(strings.NewReader(IERC20ABI))
  2386  	if err != nil {
  2387  		return nil, err
  2388  	}
  2389  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  2390  }
  2391  
  2392  // Call invokes the (constant) contract method with params as input values and
  2393  // sets the output to result. The result type might be a single field for simple
  2394  // returns, a slice of interfaces for anonymous returns and a struct for named
  2395  // returns.
  2396  func (_IERC20 *IERC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2397  	return _IERC20.Contract.IERC20Caller.contract.Call(opts, result, method, params...)
  2398  }
  2399  
  2400  // Transfer initiates a plain transaction to move funds to the contract, calling
  2401  // its default method if one is available.
  2402  func (_IERC20 *IERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2403  	return _IERC20.Contract.IERC20Transactor.contract.Transfer(opts)
  2404  }
  2405  
  2406  // Transact invokes the (paid) contract method with params as input values.
  2407  func (_IERC20 *IERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2408  	return _IERC20.Contract.IERC20Transactor.contract.Transact(opts, method, params...)
  2409  }
  2410  
  2411  // Call invokes the (constant) contract method with params as input values and
  2412  // sets the output to result. The result type might be a single field for simple
  2413  // returns, a slice of interfaces for anonymous returns and a struct for named
  2414  // returns.
  2415  func (_IERC20 *IERC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  2416  	return _IERC20.Contract.contract.Call(opts, result, method, params...)
  2417  }
  2418  
  2419  // Transfer initiates a plain transaction to move funds to the contract, calling
  2420  // its default method if one is available.
  2421  func (_IERC20 *IERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  2422  	return _IERC20.Contract.contract.Transfer(opts)
  2423  }
  2424  
  2425  // Transact invokes the (paid) contract method with params as input values.
  2426  func (_IERC20 *IERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  2427  	return _IERC20.Contract.contract.Transact(opts, method, params...)
  2428  }
  2429  
  2430  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  2431  //
  2432  // Solidity: function allowance(address owner, address spender) view returns(uint256)
  2433  func (_IERC20 *IERC20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
  2434  	var out []interface{}
  2435  	err := _IERC20.contract.Call(opts, &out, "allowance", owner, spender)
  2436  
  2437  	if err != nil {
  2438  		return *new(*big.Int), err
  2439  	}
  2440  
  2441  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  2442  
  2443  	return out0, err
  2444  
  2445  }
  2446  
  2447  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  2448  //
  2449  // Solidity: function allowance(address owner, address spender) view returns(uint256)
  2450  func (_IERC20 *IERC20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
  2451  	return _IERC20.Contract.Allowance(&_IERC20.CallOpts, owner, spender)
  2452  }
  2453  
  2454  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
  2455  //
  2456  // Solidity: function allowance(address owner, address spender) view returns(uint256)
  2457  func (_IERC20 *IERC20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
  2458  	return _IERC20.Contract.Allowance(&_IERC20.CallOpts, owner, spender)
  2459  }
  2460  
  2461  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  2462  //
  2463  // Solidity: function balanceOf(address account) view returns(uint256)
  2464  func (_IERC20 *IERC20Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
  2465  	var out []interface{}
  2466  	err := _IERC20.contract.Call(opts, &out, "balanceOf", account)
  2467  
  2468  	if err != nil {
  2469  		return *new(*big.Int), err
  2470  	}
  2471  
  2472  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  2473  
  2474  	return out0, err
  2475  
  2476  }
  2477  
  2478  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  2479  //
  2480  // Solidity: function balanceOf(address account) view returns(uint256)
  2481  func (_IERC20 *IERC20Session) BalanceOf(account common.Address) (*big.Int, error) {
  2482  	return _IERC20.Contract.BalanceOf(&_IERC20.CallOpts, account)
  2483  }
  2484  
  2485  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
  2486  //
  2487  // Solidity: function balanceOf(address account) view returns(uint256)
  2488  func (_IERC20 *IERC20CallerSession) BalanceOf(account common.Address) (*big.Int, error) {
  2489  	return _IERC20.Contract.BalanceOf(&_IERC20.CallOpts, account)
  2490  }
  2491  
  2492  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  2493  //
  2494  // Solidity: function totalSupply() view returns(uint256)
  2495  func (_IERC20 *IERC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
  2496  	var out []interface{}
  2497  	err := _IERC20.contract.Call(opts, &out, "totalSupply")
  2498  
  2499  	if err != nil {
  2500  		return *new(*big.Int), err
  2501  	}
  2502  
  2503  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  2504  
  2505  	return out0, err
  2506  
  2507  }
  2508  
  2509  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  2510  //
  2511  // Solidity: function totalSupply() view returns(uint256)
  2512  func (_IERC20 *IERC20Session) TotalSupply() (*big.Int, error) {
  2513  	return _IERC20.Contract.TotalSupply(&_IERC20.CallOpts)
  2514  }
  2515  
  2516  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
  2517  //
  2518  // Solidity: function totalSupply() view returns(uint256)
  2519  func (_IERC20 *IERC20CallerSession) TotalSupply() (*big.Int, error) {
  2520  	return _IERC20.Contract.TotalSupply(&_IERC20.CallOpts)
  2521  }
  2522  
  2523  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  2524  //
  2525  // Solidity: function approve(address spender, uint256 amount) returns(bool)
  2526  func (_IERC20 *IERC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) {
  2527  	return _IERC20.contract.Transact(opts, "approve", spender, amount)
  2528  }
  2529  
  2530  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  2531  //
  2532  // Solidity: function approve(address spender, uint256 amount) returns(bool)
  2533  func (_IERC20 *IERC20Session) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
  2534  	return _IERC20.Contract.Approve(&_IERC20.TransactOpts, spender, amount)
  2535  }
  2536  
  2537  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
  2538  //
  2539  // Solidity: function approve(address spender, uint256 amount) returns(bool)
  2540  func (_IERC20 *IERC20TransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
  2541  	return _IERC20.Contract.Approve(&_IERC20.TransactOpts, spender, amount)
  2542  }
  2543  
  2544  // Permit is a paid mutator transaction binding the contract method 0xd505accf.
  2545  //
  2546  // Solidity: function permit(address target, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns()
  2547  func (_IERC20 *IERC20Transactor) Permit(opts *bind.TransactOpts, target common.Address, spender common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
  2548  	return _IERC20.contract.Transact(opts, "permit", target, spender, value, deadline, v, r, s)
  2549  }
  2550  
  2551  // Permit is a paid mutator transaction binding the contract method 0xd505accf.
  2552  //
  2553  // Solidity: function permit(address target, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns()
  2554  func (_IERC20 *IERC20Session) Permit(target common.Address, spender common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
  2555  	return _IERC20.Contract.Permit(&_IERC20.TransactOpts, target, spender, value, deadline, v, r, s)
  2556  }
  2557  
  2558  // Permit is a paid mutator transaction binding the contract method 0xd505accf.
  2559  //
  2560  // Solidity: function permit(address target, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns()
  2561  func (_IERC20 *IERC20TransactorSession) Permit(target common.Address, spender common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
  2562  	return _IERC20.Contract.Permit(&_IERC20.TransactOpts, target, spender, value, deadline, v, r, s)
  2563  }
  2564  
  2565  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  2566  //
  2567  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
  2568  func (_IERC20 *IERC20Transactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  2569  	return _IERC20.contract.Transact(opts, "transfer", recipient, amount)
  2570  }
  2571  
  2572  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  2573  //
  2574  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
  2575  func (_IERC20 *IERC20Session) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  2576  	return _IERC20.Contract.Transfer(&_IERC20.TransactOpts, recipient, amount)
  2577  }
  2578  
  2579  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  2580  //
  2581  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
  2582  func (_IERC20 *IERC20TransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  2583  	return _IERC20.Contract.Transfer(&_IERC20.TransactOpts, recipient, amount)
  2584  }
  2585  
  2586  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  2587  //
  2588  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
  2589  func (_IERC20 *IERC20Transactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  2590  	return _IERC20.contract.Transact(opts, "transferFrom", sender, recipient, amount)
  2591  }
  2592  
  2593  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  2594  //
  2595  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
  2596  func (_IERC20 *IERC20Session) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  2597  	return _IERC20.Contract.TransferFrom(&_IERC20.TransactOpts, sender, recipient, amount)
  2598  }
  2599  
  2600  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
  2601  //
  2602  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
  2603  func (_IERC20 *IERC20TransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
  2604  	return _IERC20.Contract.TransferFrom(&_IERC20.TransactOpts, sender, recipient, amount)
  2605  }
  2606  
  2607  // TransferWithPermit is a paid mutator transaction binding the contract method 0x605629d6.
  2608  //
  2609  // Solidity: function transferWithPermit(address target, address to, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns(bool)
  2610  func (_IERC20 *IERC20Transactor) TransferWithPermit(opts *bind.TransactOpts, target common.Address, to common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
  2611  	return _IERC20.contract.Transact(opts, "transferWithPermit", target, to, value, deadline, v, r, s)
  2612  }
  2613  
  2614  // TransferWithPermit is a paid mutator transaction binding the contract method 0x605629d6.
  2615  //
  2616  // Solidity: function transferWithPermit(address target, address to, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns(bool)
  2617  func (_IERC20 *IERC20Session) TransferWithPermit(target common.Address, to common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
  2618  	return _IERC20.Contract.TransferWithPermit(&_IERC20.TransactOpts, target, to, value, deadline, v, r, s)
  2619  }
  2620  
  2621  // TransferWithPermit is a paid mutator transaction binding the contract method 0x605629d6.
  2622  //
  2623  // Solidity: function transferWithPermit(address target, address to, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns(bool)
  2624  func (_IERC20 *IERC20TransactorSession) TransferWithPermit(target common.Address, to common.Address, value *big.Int, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
  2625  	return _IERC20.Contract.TransferWithPermit(&_IERC20.TransactOpts, target, to, value, deadline, v, r, s)
  2626  }
  2627  
  2628  // IERC20ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC20 contract.
  2629  type IERC20ApprovalIterator struct {
  2630  	Event *IERC20Approval // Event containing the contract specifics and raw log
  2631  
  2632  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2633  	event    string              // Event name to use for unpacking event data
  2634  
  2635  	logs chan types.Log        // Log channel receiving the found contract events
  2636  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2637  	done bool                  // Whether the subscription completed delivering logs
  2638  	fail error                 // Occurred error to stop iteration
  2639  }
  2640  
  2641  // Next advances the iterator to the subsequent event, returning whether there
  2642  // are any more events found. In case of a retrieval or parsing error, false is
  2643  // returned and Error() can be queried for the exact failure.
  2644  func (it *IERC20ApprovalIterator) Next() bool {
  2645  	// If the iterator failed, stop iterating
  2646  	if it.fail != nil {
  2647  		return false
  2648  	}
  2649  	// If the iterator completed, deliver directly whatever's available
  2650  	if it.done {
  2651  		select {
  2652  		case log := <-it.logs:
  2653  			it.Event = new(IERC20Approval)
  2654  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2655  				it.fail = err
  2656  				return false
  2657  			}
  2658  			it.Event.Raw = log
  2659  			return true
  2660  
  2661  		default:
  2662  			return false
  2663  		}
  2664  	}
  2665  	// Iterator still in progress, wait for either a data or an error event
  2666  	select {
  2667  	case log := <-it.logs:
  2668  		it.Event = new(IERC20Approval)
  2669  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2670  			it.fail = err
  2671  			return false
  2672  		}
  2673  		it.Event.Raw = log
  2674  		return true
  2675  
  2676  	case err := <-it.sub.Err():
  2677  		it.done = true
  2678  		it.fail = err
  2679  		return it.Next()
  2680  	}
  2681  }
  2682  
  2683  // Error returns any retrieval or parsing error occurred during filtering.
  2684  func (it *IERC20ApprovalIterator) Error() error {
  2685  	return it.fail
  2686  }
  2687  
  2688  // Close terminates the iteration process, releasing any pending underlying
  2689  // resources.
  2690  func (it *IERC20ApprovalIterator) Close() error {
  2691  	it.sub.Unsubscribe()
  2692  	return nil
  2693  }
  2694  
  2695  // IERC20Approval represents a Approval event raised by the IERC20 contract.
  2696  type IERC20Approval struct {
  2697  	Owner   common.Address
  2698  	Spender common.Address
  2699  	Value   *big.Int
  2700  	Raw     types.Log // Blockchain specific contextual infos
  2701  }
  2702  
  2703  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  2704  //
  2705  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  2706  func (_IERC20 *IERC20Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*IERC20ApprovalIterator, error) {
  2707  
  2708  	var ownerRule []interface{}
  2709  	for _, ownerItem := range owner {
  2710  		ownerRule = append(ownerRule, ownerItem)
  2711  	}
  2712  	var spenderRule []interface{}
  2713  	for _, spenderItem := range spender {
  2714  		spenderRule = append(spenderRule, spenderItem)
  2715  	}
  2716  
  2717  	logs, sub, err := _IERC20.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
  2718  	if err != nil {
  2719  		return nil, err
  2720  	}
  2721  	return &IERC20ApprovalIterator{contract: _IERC20.contract, event: "Approval", logs: logs, sub: sub}, nil
  2722  }
  2723  
  2724  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  2725  //
  2726  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  2727  func (_IERC20 *IERC20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC20Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
  2728  
  2729  	var ownerRule []interface{}
  2730  	for _, ownerItem := range owner {
  2731  		ownerRule = append(ownerRule, ownerItem)
  2732  	}
  2733  	var spenderRule []interface{}
  2734  	for _, spenderItem := range spender {
  2735  		spenderRule = append(spenderRule, spenderItem)
  2736  	}
  2737  
  2738  	logs, sub, err := _IERC20.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
  2739  	if err != nil {
  2740  		return nil, err
  2741  	}
  2742  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2743  		defer sub.Unsubscribe()
  2744  		for {
  2745  			select {
  2746  			case log := <-logs:
  2747  				// New log arrived, parse the event and forward to the user
  2748  				event := new(IERC20Approval)
  2749  				if err := _IERC20.contract.UnpackLog(event, "Approval", log); err != nil {
  2750  					return err
  2751  				}
  2752  				event.Raw = log
  2753  
  2754  				select {
  2755  				case sink <- event:
  2756  				case err := <-sub.Err():
  2757  					return err
  2758  				case <-quit:
  2759  					return nil
  2760  				}
  2761  			case err := <-sub.Err():
  2762  				return err
  2763  			case <-quit:
  2764  				return nil
  2765  			}
  2766  		}
  2767  	}), nil
  2768  }
  2769  
  2770  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
  2771  //
  2772  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
  2773  func (_IERC20 *IERC20Filterer) ParseApproval(log types.Log) (*IERC20Approval, error) {
  2774  	event := new(IERC20Approval)
  2775  	if err := _IERC20.contract.UnpackLog(event, "Approval", log); err != nil {
  2776  		return nil, err
  2777  	}
  2778  	event.Raw = log
  2779  	return event, nil
  2780  }
  2781  
  2782  // IERC20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC20 contract.
  2783  type IERC20TransferIterator struct {
  2784  	Event *IERC20Transfer // Event containing the contract specifics and raw log
  2785  
  2786  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2787  	event    string              // Event name to use for unpacking event data
  2788  
  2789  	logs chan types.Log        // Log channel receiving the found contract events
  2790  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2791  	done bool                  // Whether the subscription completed delivering logs
  2792  	fail error                 // Occurred error to stop iteration
  2793  }
  2794  
  2795  // Next advances the iterator to the subsequent event, returning whether there
  2796  // are any more events found. In case of a retrieval or parsing error, false is
  2797  // returned and Error() can be queried for the exact failure.
  2798  func (it *IERC20TransferIterator) Next() bool {
  2799  	// If the iterator failed, stop iterating
  2800  	if it.fail != nil {
  2801  		return false
  2802  	}
  2803  	// If the iterator completed, deliver directly whatever's available
  2804  	if it.done {
  2805  		select {
  2806  		case log := <-it.logs:
  2807  			it.Event = new(IERC20Transfer)
  2808  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2809  				it.fail = err
  2810  				return false
  2811  			}
  2812  			it.Event.Raw = log
  2813  			return true
  2814  
  2815  		default:
  2816  			return false
  2817  		}
  2818  	}
  2819  	// Iterator still in progress, wait for either a data or an error event
  2820  	select {
  2821  	case log := <-it.logs:
  2822  		it.Event = new(IERC20Transfer)
  2823  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2824  			it.fail = err
  2825  			return false
  2826  		}
  2827  		it.Event.Raw = log
  2828  		return true
  2829  
  2830  	case err := <-it.sub.Err():
  2831  		it.done = true
  2832  		it.fail = err
  2833  		return it.Next()
  2834  	}
  2835  }
  2836  
  2837  // Error returns any retrieval or parsing error occurred during filtering.
  2838  func (it *IERC20TransferIterator) Error() error {
  2839  	return it.fail
  2840  }
  2841  
  2842  // Close terminates the iteration process, releasing any pending underlying
  2843  // resources.
  2844  func (it *IERC20TransferIterator) Close() error {
  2845  	it.sub.Unsubscribe()
  2846  	return nil
  2847  }
  2848  
  2849  // IERC20Transfer represents a Transfer event raised by the IERC20 contract.
  2850  type IERC20Transfer struct {
  2851  	From  common.Address
  2852  	To    common.Address
  2853  	Value *big.Int
  2854  	Raw   types.Log // Blockchain specific contextual infos
  2855  }
  2856  
  2857  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2858  //
  2859  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  2860  func (_IERC20 *IERC20Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*IERC20TransferIterator, error) {
  2861  
  2862  	var fromRule []interface{}
  2863  	for _, fromItem := range from {
  2864  		fromRule = append(fromRule, fromItem)
  2865  	}
  2866  	var toRule []interface{}
  2867  	for _, toItem := range to {
  2868  		toRule = append(toRule, toItem)
  2869  	}
  2870  
  2871  	logs, sub, err := _IERC20.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
  2872  	if err != nil {
  2873  		return nil, err
  2874  	}
  2875  	return &IERC20TransferIterator{contract: _IERC20.contract, event: "Transfer", logs: logs, sub: sub}, nil
  2876  }
  2877  
  2878  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2879  //
  2880  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  2881  func (_IERC20 *IERC20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC20Transfer, from []common.Address, to []common.Address) (event.Subscription, error) {
  2882  
  2883  	var fromRule []interface{}
  2884  	for _, fromItem := range from {
  2885  		fromRule = append(fromRule, fromItem)
  2886  	}
  2887  	var toRule []interface{}
  2888  	for _, toItem := range to {
  2889  		toRule = append(toRule, toItem)
  2890  	}
  2891  
  2892  	logs, sub, err := _IERC20.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
  2893  	if err != nil {
  2894  		return nil, err
  2895  	}
  2896  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2897  		defer sub.Unsubscribe()
  2898  		for {
  2899  			select {
  2900  			case log := <-logs:
  2901  				// New log arrived, parse the event and forward to the user
  2902  				event := new(IERC20Transfer)
  2903  				if err := _IERC20.contract.UnpackLog(event, "Transfer", log); err != nil {
  2904  					return err
  2905  				}
  2906  				event.Raw = log
  2907  
  2908  				select {
  2909  				case sink <- event:
  2910  				case err := <-sub.Err():
  2911  					return err
  2912  				case <-quit:
  2913  					return nil
  2914  				}
  2915  			case err := <-sub.Err():
  2916  				return err
  2917  			case <-quit:
  2918  				return nil
  2919  			}
  2920  		}
  2921  	}), nil
  2922  }
  2923  
  2924  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
  2925  //
  2926  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
  2927  func (_IERC20 *IERC20Filterer) ParseTransfer(log types.Log) (*IERC20Transfer, error) {
  2928  	event := new(IERC20Transfer)
  2929  	if err := _IERC20.contract.UnpackLog(event, "Transfer", log); err != nil {
  2930  		return nil, err
  2931  	}
  2932  	event.Raw = log
  2933  	return event, nil
  2934  }
  2935  
  2936  // ISushiswapV2PairMetaData contains all meta data concerning the ISushiswapV2Pair contract.
  2937  var ISushiswapV2PairMetaData = &bind.MetaData{
  2938  	ABI: "[{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"blockTimestampLast\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
  2939  	Sigs: map[string]string{
  2940  		"c45a0155": "factory()",
  2941  		"0902f1ac": "getReserves()",
  2942  		"022c0d9f": "swap(uint256,uint256,address,bytes)",
  2943  		"0dfe1681": "token0()",
  2944  		"d21220a7": "token1()",
  2945  	},
  2946  }
  2947  
  2948  // ISushiswapV2PairABI is the input ABI used to generate the binding from.
  2949  // Deprecated: Use ISushiswapV2PairMetaData.ABI instead.
  2950  var ISushiswapV2PairABI = ISushiswapV2PairMetaData.ABI
  2951  
  2952  // Deprecated: Use ISushiswapV2PairMetaData.Sigs instead.
  2953  // ISushiswapV2PairFuncSigs maps the 4-byte function signature to its string representation.
  2954  var ISushiswapV2PairFuncSigs = ISushiswapV2PairMetaData.Sigs
  2955  
  2956  // ISushiswapV2Pair is an auto generated Go binding around an Ethereum contract.
  2957  type ISushiswapV2Pair struct {
  2958  	ISushiswapV2PairCaller     // Read-only binding to the contract
  2959  	ISushiswapV2PairTransactor // Write-only binding to the contract
  2960  	ISushiswapV2PairFilterer   // Log filterer for contract events
  2961  }
  2962  
  2963  // ISushiswapV2PairCaller is an auto generated read-only Go binding around an Ethereum contract.
  2964  type ISushiswapV2PairCaller struct {
  2965  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2966  }
  2967  
  2968  // ISushiswapV2PairTransactor is an auto generated write-only Go binding around an Ethereum contract.
  2969  type ISushiswapV2PairTransactor struct {
  2970  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2971  }
  2972  
  2973  // ISushiswapV2PairFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  2974  type ISushiswapV2PairFilterer struct {
  2975  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  2976  }
  2977  
  2978  // ISushiswapV2PairSession is an auto generated Go binding around an Ethereum contract,
  2979  // with pre-set call and transact options.
  2980  type ISushiswapV2PairSession struct {
  2981  	Contract     *ISushiswapV2Pair // Generic contract binding to set the session for
  2982  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  2983  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  2984  }
  2985  
  2986  // ISushiswapV2PairCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  2987  // with pre-set call options.
  2988  type ISushiswapV2PairCallerSession struct {
  2989  	Contract *ISushiswapV2PairCaller // Generic contract caller binding to set the session for
  2990  	CallOpts bind.CallOpts           // Call options to use throughout this session
  2991  }
  2992  
  2993  // ISushiswapV2PairTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  2994  // with pre-set transact options.
  2995  type ISushiswapV2PairTransactorSession struct {
  2996  	Contract     *ISushiswapV2PairTransactor // Generic contract transactor binding to set the session for
  2997  	TransactOpts bind.TransactOpts           // Transaction auth options to use throughout this session
  2998  }
  2999  
  3000  // ISushiswapV2PairRaw is an auto generated low-level Go binding around an Ethereum contract.
  3001  type ISushiswapV2PairRaw struct {
  3002  	Contract *ISushiswapV2Pair // Generic contract binding to access the raw methods on
  3003  }
  3004  
  3005  // ISushiswapV2PairCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  3006  type ISushiswapV2PairCallerRaw struct {
  3007  	Contract *ISushiswapV2PairCaller // Generic read-only contract binding to access the raw methods on
  3008  }
  3009  
  3010  // ISushiswapV2PairTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  3011  type ISushiswapV2PairTransactorRaw struct {
  3012  	Contract *ISushiswapV2PairTransactor // Generic write-only contract binding to access the raw methods on
  3013  }
  3014  
  3015  // NewISushiswapV2Pair creates a new instance of ISushiswapV2Pair, bound to a specific deployed contract.
  3016  func NewISushiswapV2Pair(address common.Address, backend bind.ContractBackend) (*ISushiswapV2Pair, error) {
  3017  	contract, err := bindISushiswapV2Pair(address, backend, backend, backend)
  3018  	if err != nil {
  3019  		return nil, err
  3020  	}
  3021  	return &ISushiswapV2Pair{ISushiswapV2PairCaller: ISushiswapV2PairCaller{contract: contract}, ISushiswapV2PairTransactor: ISushiswapV2PairTransactor{contract: contract}, ISushiswapV2PairFilterer: ISushiswapV2PairFilterer{contract: contract}}, nil
  3022  }
  3023  
  3024  // NewISushiswapV2PairCaller creates a new read-only instance of ISushiswapV2Pair, bound to a specific deployed contract.
  3025  func NewISushiswapV2PairCaller(address common.Address, caller bind.ContractCaller) (*ISushiswapV2PairCaller, error) {
  3026  	contract, err := bindISushiswapV2Pair(address, caller, nil, nil)
  3027  	if err != nil {
  3028  		return nil, err
  3029  	}
  3030  	return &ISushiswapV2PairCaller{contract: contract}, nil
  3031  }
  3032  
  3033  // NewISushiswapV2PairTransactor creates a new write-only instance of ISushiswapV2Pair, bound to a specific deployed contract.
  3034  func NewISushiswapV2PairTransactor(address common.Address, transactor bind.ContractTransactor) (*ISushiswapV2PairTransactor, error) {
  3035  	contract, err := bindISushiswapV2Pair(address, nil, transactor, nil)
  3036  	if err != nil {
  3037  		return nil, err
  3038  	}
  3039  	return &ISushiswapV2PairTransactor{contract: contract}, nil
  3040  }
  3041  
  3042  // NewISushiswapV2PairFilterer creates a new log filterer instance of ISushiswapV2Pair, bound to a specific deployed contract.
  3043  func NewISushiswapV2PairFilterer(address common.Address, filterer bind.ContractFilterer) (*ISushiswapV2PairFilterer, error) {
  3044  	contract, err := bindISushiswapV2Pair(address, nil, nil, filterer)
  3045  	if err != nil {
  3046  		return nil, err
  3047  	}
  3048  	return &ISushiswapV2PairFilterer{contract: contract}, nil
  3049  }
  3050  
  3051  // bindISushiswapV2Pair binds a generic wrapper to an already deployed contract.
  3052  func bindISushiswapV2Pair(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  3053  	parsed, err := abi.JSON(strings.NewReader(ISushiswapV2PairABI))
  3054  	if err != nil {
  3055  		return nil, err
  3056  	}
  3057  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  3058  }
  3059  
  3060  // Call invokes the (constant) contract method with params as input values and
  3061  // sets the output to result. The result type might be a single field for simple
  3062  // returns, a slice of interfaces for anonymous returns and a struct for named
  3063  // returns.
  3064  func (_ISushiswapV2Pair *ISushiswapV2PairRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3065  	return _ISushiswapV2Pair.Contract.ISushiswapV2PairCaller.contract.Call(opts, result, method, params...)
  3066  }
  3067  
  3068  // Transfer initiates a plain transaction to move funds to the contract, calling
  3069  // its default method if one is available.
  3070  func (_ISushiswapV2Pair *ISushiswapV2PairRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3071  	return _ISushiswapV2Pair.Contract.ISushiswapV2PairTransactor.contract.Transfer(opts)
  3072  }
  3073  
  3074  // Transact invokes the (paid) contract method with params as input values.
  3075  func (_ISushiswapV2Pair *ISushiswapV2PairRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3076  	return _ISushiswapV2Pair.Contract.ISushiswapV2PairTransactor.contract.Transact(opts, method, params...)
  3077  }
  3078  
  3079  // Call invokes the (constant) contract method with params as input values and
  3080  // sets the output to result. The result type might be a single field for simple
  3081  // returns, a slice of interfaces for anonymous returns and a struct for named
  3082  // returns.
  3083  func (_ISushiswapV2Pair *ISushiswapV2PairCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3084  	return _ISushiswapV2Pair.Contract.contract.Call(opts, result, method, params...)
  3085  }
  3086  
  3087  // Transfer initiates a plain transaction to move funds to the contract, calling
  3088  // its default method if one is available.
  3089  func (_ISushiswapV2Pair *ISushiswapV2PairTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3090  	return _ISushiswapV2Pair.Contract.contract.Transfer(opts)
  3091  }
  3092  
  3093  // Transact invokes the (paid) contract method with params as input values.
  3094  func (_ISushiswapV2Pair *ISushiswapV2PairTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3095  	return _ISushiswapV2Pair.Contract.contract.Transact(opts, method, params...)
  3096  }
  3097  
  3098  // Factory is a free data retrieval call binding the contract method 0xc45a0155.
  3099  //
  3100  // Solidity: function factory() view returns(address)
  3101  func (_ISushiswapV2Pair *ISushiswapV2PairCaller) Factory(opts *bind.CallOpts) (common.Address, error) {
  3102  	var out []interface{}
  3103  	err := _ISushiswapV2Pair.contract.Call(opts, &out, "factory")
  3104  
  3105  	if err != nil {
  3106  		return *new(common.Address), err
  3107  	}
  3108  
  3109  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3110  
  3111  	return out0, err
  3112  
  3113  }
  3114  
  3115  // Factory is a free data retrieval call binding the contract method 0xc45a0155.
  3116  //
  3117  // Solidity: function factory() view returns(address)
  3118  func (_ISushiswapV2Pair *ISushiswapV2PairSession) Factory() (common.Address, error) {
  3119  	return _ISushiswapV2Pair.Contract.Factory(&_ISushiswapV2Pair.CallOpts)
  3120  }
  3121  
  3122  // Factory is a free data retrieval call binding the contract method 0xc45a0155.
  3123  //
  3124  // Solidity: function factory() view returns(address)
  3125  func (_ISushiswapV2Pair *ISushiswapV2PairCallerSession) Factory() (common.Address, error) {
  3126  	return _ISushiswapV2Pair.Contract.Factory(&_ISushiswapV2Pair.CallOpts)
  3127  }
  3128  
  3129  // GetReserves is a free data retrieval call binding the contract method 0x0902f1ac.
  3130  //
  3131  // Solidity: function getReserves() view returns(uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast)
  3132  func (_ISushiswapV2Pair *ISushiswapV2PairCaller) GetReserves(opts *bind.CallOpts) (struct {
  3133  	Reserve0           *big.Int
  3134  	Reserve1           *big.Int
  3135  	BlockTimestampLast uint32
  3136  }, error) {
  3137  	var out []interface{}
  3138  	err := _ISushiswapV2Pair.contract.Call(opts, &out, "getReserves")
  3139  
  3140  	outstruct := new(struct {
  3141  		Reserve0           *big.Int
  3142  		Reserve1           *big.Int
  3143  		BlockTimestampLast uint32
  3144  	})
  3145  	if err != nil {
  3146  		return *outstruct, err
  3147  	}
  3148  
  3149  	outstruct.Reserve0 = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  3150  	outstruct.Reserve1 = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
  3151  	outstruct.BlockTimestampLast = *abi.ConvertType(out[2], new(uint32)).(*uint32)
  3152  
  3153  	return *outstruct, err
  3154  
  3155  }
  3156  
  3157  // GetReserves is a free data retrieval call binding the contract method 0x0902f1ac.
  3158  //
  3159  // Solidity: function getReserves() view returns(uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast)
  3160  func (_ISushiswapV2Pair *ISushiswapV2PairSession) GetReserves() (struct {
  3161  	Reserve0           *big.Int
  3162  	Reserve1           *big.Int
  3163  	BlockTimestampLast uint32
  3164  }, error) {
  3165  	return _ISushiswapV2Pair.Contract.GetReserves(&_ISushiswapV2Pair.CallOpts)
  3166  }
  3167  
  3168  // GetReserves is a free data retrieval call binding the contract method 0x0902f1ac.
  3169  //
  3170  // Solidity: function getReserves() view returns(uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast)
  3171  func (_ISushiswapV2Pair *ISushiswapV2PairCallerSession) GetReserves() (struct {
  3172  	Reserve0           *big.Int
  3173  	Reserve1           *big.Int
  3174  	BlockTimestampLast uint32
  3175  }, error) {
  3176  	return _ISushiswapV2Pair.Contract.GetReserves(&_ISushiswapV2Pair.CallOpts)
  3177  }
  3178  
  3179  // Token0 is a free data retrieval call binding the contract method 0x0dfe1681.
  3180  //
  3181  // Solidity: function token0() view returns(address)
  3182  func (_ISushiswapV2Pair *ISushiswapV2PairCaller) Token0(opts *bind.CallOpts) (common.Address, error) {
  3183  	var out []interface{}
  3184  	err := _ISushiswapV2Pair.contract.Call(opts, &out, "token0")
  3185  
  3186  	if err != nil {
  3187  		return *new(common.Address), err
  3188  	}
  3189  
  3190  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3191  
  3192  	return out0, err
  3193  
  3194  }
  3195  
  3196  // Token0 is a free data retrieval call binding the contract method 0x0dfe1681.
  3197  //
  3198  // Solidity: function token0() view returns(address)
  3199  func (_ISushiswapV2Pair *ISushiswapV2PairSession) Token0() (common.Address, error) {
  3200  	return _ISushiswapV2Pair.Contract.Token0(&_ISushiswapV2Pair.CallOpts)
  3201  }
  3202  
  3203  // Token0 is a free data retrieval call binding the contract method 0x0dfe1681.
  3204  //
  3205  // Solidity: function token0() view returns(address)
  3206  func (_ISushiswapV2Pair *ISushiswapV2PairCallerSession) Token0() (common.Address, error) {
  3207  	return _ISushiswapV2Pair.Contract.Token0(&_ISushiswapV2Pair.CallOpts)
  3208  }
  3209  
  3210  // Token1 is a free data retrieval call binding the contract method 0xd21220a7.
  3211  //
  3212  // Solidity: function token1() view returns(address)
  3213  func (_ISushiswapV2Pair *ISushiswapV2PairCaller) Token1(opts *bind.CallOpts) (common.Address, error) {
  3214  	var out []interface{}
  3215  	err := _ISushiswapV2Pair.contract.Call(opts, &out, "token1")
  3216  
  3217  	if err != nil {
  3218  		return *new(common.Address), err
  3219  	}
  3220  
  3221  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3222  
  3223  	return out0, err
  3224  
  3225  }
  3226  
  3227  // Token1 is a free data retrieval call binding the contract method 0xd21220a7.
  3228  //
  3229  // Solidity: function token1() view returns(address)
  3230  func (_ISushiswapV2Pair *ISushiswapV2PairSession) Token1() (common.Address, error) {
  3231  	return _ISushiswapV2Pair.Contract.Token1(&_ISushiswapV2Pair.CallOpts)
  3232  }
  3233  
  3234  // Token1 is a free data retrieval call binding the contract method 0xd21220a7.
  3235  //
  3236  // Solidity: function token1() view returns(address)
  3237  func (_ISushiswapV2Pair *ISushiswapV2PairCallerSession) Token1() (common.Address, error) {
  3238  	return _ISushiswapV2Pair.Contract.Token1(&_ISushiswapV2Pair.CallOpts)
  3239  }
  3240  
  3241  // Swap is a paid mutator transaction binding the contract method 0x022c0d9f.
  3242  //
  3243  // Solidity: function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes data) returns()
  3244  func (_ISushiswapV2Pair *ISushiswapV2PairTransactor) Swap(opts *bind.TransactOpts, amount0Out *big.Int, amount1Out *big.Int, to common.Address, data []byte) (*types.Transaction, error) {
  3245  	return _ISushiswapV2Pair.contract.Transact(opts, "swap", amount0Out, amount1Out, to, data)
  3246  }
  3247  
  3248  // Swap is a paid mutator transaction binding the contract method 0x022c0d9f.
  3249  //
  3250  // Solidity: function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes data) returns()
  3251  func (_ISushiswapV2Pair *ISushiswapV2PairSession) Swap(amount0Out *big.Int, amount1Out *big.Int, to common.Address, data []byte) (*types.Transaction, error) {
  3252  	return _ISushiswapV2Pair.Contract.Swap(&_ISushiswapV2Pair.TransactOpts, amount0Out, amount1Out, to, data)
  3253  }
  3254  
  3255  // Swap is a paid mutator transaction binding the contract method 0x022c0d9f.
  3256  //
  3257  // Solidity: function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes data) returns()
  3258  func (_ISushiswapV2Pair *ISushiswapV2PairTransactorSession) Swap(amount0Out *big.Int, amount1Out *big.Int, to common.Address, data []byte) (*types.Transaction, error) {
  3259  	return _ISushiswapV2Pair.Contract.Swap(&_ISushiswapV2Pair.TransactOpts, amount0Out, amount1Out, to, data)
  3260  }
  3261  
  3262  // IwNATIVEMetaData contains all meta data concerning the IwNATIVE contract.
  3263  var IwNATIVEMetaData = &bind.MetaData{
  3264  	ABI: "[{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
  3265  	Sigs: map[string]string{
  3266  		"d0e30db0": "deposit()",
  3267  		"a9059cbb": "transfer(address,uint256)",
  3268  		"2e1a7d4d": "withdraw(uint256)",
  3269  	},
  3270  }
  3271  
  3272  // IwNATIVEABI is the input ABI used to generate the binding from.
  3273  // Deprecated: Use IwNATIVEMetaData.ABI instead.
  3274  var IwNATIVEABI = IwNATIVEMetaData.ABI
  3275  
  3276  // Deprecated: Use IwNATIVEMetaData.Sigs instead.
  3277  // IwNATIVEFuncSigs maps the 4-byte function signature to its string representation.
  3278  var IwNATIVEFuncSigs = IwNATIVEMetaData.Sigs
  3279  
  3280  // IwNATIVE is an auto generated Go binding around an Ethereum contract.
  3281  type IwNATIVE struct {
  3282  	IwNATIVECaller     // Read-only binding to the contract
  3283  	IwNATIVETransactor // Write-only binding to the contract
  3284  	IwNATIVEFilterer   // Log filterer for contract events
  3285  }
  3286  
  3287  // IwNATIVECaller is an auto generated read-only Go binding around an Ethereum contract.
  3288  type IwNATIVECaller struct {
  3289  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3290  }
  3291  
  3292  // IwNATIVETransactor is an auto generated write-only Go binding around an Ethereum contract.
  3293  type IwNATIVETransactor struct {
  3294  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3295  }
  3296  
  3297  // IwNATIVEFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  3298  type IwNATIVEFilterer struct {
  3299  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3300  }
  3301  
  3302  // IwNATIVESession is an auto generated Go binding around an Ethereum contract,
  3303  // with pre-set call and transact options.
  3304  type IwNATIVESession struct {
  3305  	Contract     *IwNATIVE         // Generic contract binding to set the session for
  3306  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  3307  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  3308  }
  3309  
  3310  // IwNATIVECallerSession is an auto generated read-only Go binding around an Ethereum contract,
  3311  // with pre-set call options.
  3312  type IwNATIVECallerSession struct {
  3313  	Contract *IwNATIVECaller // Generic contract caller binding to set the session for
  3314  	CallOpts bind.CallOpts   // Call options to use throughout this session
  3315  }
  3316  
  3317  // IwNATIVETransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  3318  // with pre-set transact options.
  3319  type IwNATIVETransactorSession struct {
  3320  	Contract     *IwNATIVETransactor // Generic contract transactor binding to set the session for
  3321  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
  3322  }
  3323  
  3324  // IwNATIVERaw is an auto generated low-level Go binding around an Ethereum contract.
  3325  type IwNATIVERaw struct {
  3326  	Contract *IwNATIVE // Generic contract binding to access the raw methods on
  3327  }
  3328  
  3329  // IwNATIVECallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  3330  type IwNATIVECallerRaw struct {
  3331  	Contract *IwNATIVECaller // Generic read-only contract binding to access the raw methods on
  3332  }
  3333  
  3334  // IwNATIVETransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  3335  type IwNATIVETransactorRaw struct {
  3336  	Contract *IwNATIVETransactor // Generic write-only contract binding to access the raw methods on
  3337  }
  3338  
  3339  // NewIwNATIVE creates a new instance of IwNATIVE, bound to a specific deployed contract.
  3340  func NewIwNATIVE(address common.Address, backend bind.ContractBackend) (*IwNATIVE, error) {
  3341  	contract, err := bindIwNATIVE(address, backend, backend, backend)
  3342  	if err != nil {
  3343  		return nil, err
  3344  	}
  3345  	return &IwNATIVE{IwNATIVECaller: IwNATIVECaller{contract: contract}, IwNATIVETransactor: IwNATIVETransactor{contract: contract}, IwNATIVEFilterer: IwNATIVEFilterer{contract: contract}}, nil
  3346  }
  3347  
  3348  // NewIwNATIVECaller creates a new read-only instance of IwNATIVE, bound to a specific deployed contract.
  3349  func NewIwNATIVECaller(address common.Address, caller bind.ContractCaller) (*IwNATIVECaller, error) {
  3350  	contract, err := bindIwNATIVE(address, caller, nil, nil)
  3351  	if err != nil {
  3352  		return nil, err
  3353  	}
  3354  	return &IwNATIVECaller{contract: contract}, nil
  3355  }
  3356  
  3357  // NewIwNATIVETransactor creates a new write-only instance of IwNATIVE, bound to a specific deployed contract.
  3358  func NewIwNATIVETransactor(address common.Address, transactor bind.ContractTransactor) (*IwNATIVETransactor, error) {
  3359  	contract, err := bindIwNATIVE(address, nil, transactor, nil)
  3360  	if err != nil {
  3361  		return nil, err
  3362  	}
  3363  	return &IwNATIVETransactor{contract: contract}, nil
  3364  }
  3365  
  3366  // NewIwNATIVEFilterer creates a new log filterer instance of IwNATIVE, bound to a specific deployed contract.
  3367  func NewIwNATIVEFilterer(address common.Address, filterer bind.ContractFilterer) (*IwNATIVEFilterer, error) {
  3368  	contract, err := bindIwNATIVE(address, nil, nil, filterer)
  3369  	if err != nil {
  3370  		return nil, err
  3371  	}
  3372  	return &IwNATIVEFilterer{contract: contract}, nil
  3373  }
  3374  
  3375  // bindIwNATIVE binds a generic wrapper to an already deployed contract.
  3376  func bindIwNATIVE(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  3377  	parsed, err := abi.JSON(strings.NewReader(IwNATIVEABI))
  3378  	if err != nil {
  3379  		return nil, err
  3380  	}
  3381  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  3382  }
  3383  
  3384  // Call invokes the (constant) contract method with params as input values and
  3385  // sets the output to result. The result type might be a single field for simple
  3386  // returns, a slice of interfaces for anonymous returns and a struct for named
  3387  // returns.
  3388  func (_IwNATIVE *IwNATIVERaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3389  	return _IwNATIVE.Contract.IwNATIVECaller.contract.Call(opts, result, method, params...)
  3390  }
  3391  
  3392  // Transfer initiates a plain transaction to move funds to the contract, calling
  3393  // its default method if one is available.
  3394  func (_IwNATIVE *IwNATIVERaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3395  	return _IwNATIVE.Contract.IwNATIVETransactor.contract.Transfer(opts)
  3396  }
  3397  
  3398  // Transact invokes the (paid) contract method with params as input values.
  3399  func (_IwNATIVE *IwNATIVERaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3400  	return _IwNATIVE.Contract.IwNATIVETransactor.contract.Transact(opts, method, params...)
  3401  }
  3402  
  3403  // Call invokes the (constant) contract method with params as input values and
  3404  // sets the output to result. The result type might be a single field for simple
  3405  // returns, a slice of interfaces for anonymous returns and a struct for named
  3406  // returns.
  3407  func (_IwNATIVE *IwNATIVECallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3408  	return _IwNATIVE.Contract.contract.Call(opts, result, method, params...)
  3409  }
  3410  
  3411  // Transfer initiates a plain transaction to move funds to the contract, calling
  3412  // its default method if one is available.
  3413  func (_IwNATIVE *IwNATIVETransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3414  	return _IwNATIVE.Contract.contract.Transfer(opts)
  3415  }
  3416  
  3417  // Transact invokes the (paid) contract method with params as input values.
  3418  func (_IwNATIVE *IwNATIVETransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3419  	return _IwNATIVE.Contract.contract.Transact(opts, method, params...)
  3420  }
  3421  
  3422  // Deposit is a paid mutator transaction binding the contract method 0xd0e30db0.
  3423  //
  3424  // Solidity: function deposit() payable returns()
  3425  func (_IwNATIVE *IwNATIVETransactor) Deposit(opts *bind.TransactOpts) (*types.Transaction, error) {
  3426  	return _IwNATIVE.contract.Transact(opts, "deposit")
  3427  }
  3428  
  3429  // Deposit is a paid mutator transaction binding the contract method 0xd0e30db0.
  3430  //
  3431  // Solidity: function deposit() payable returns()
  3432  func (_IwNATIVE *IwNATIVESession) Deposit() (*types.Transaction, error) {
  3433  	return _IwNATIVE.Contract.Deposit(&_IwNATIVE.TransactOpts)
  3434  }
  3435  
  3436  // Deposit is a paid mutator transaction binding the contract method 0xd0e30db0.
  3437  //
  3438  // Solidity: function deposit() payable returns()
  3439  func (_IwNATIVE *IwNATIVETransactorSession) Deposit() (*types.Transaction, error) {
  3440  	return _IwNATIVE.Contract.Deposit(&_IwNATIVE.TransactOpts)
  3441  }
  3442  
  3443  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  3444  //
  3445  // Solidity: function transfer(address to, uint256 value) returns(bool)
  3446  func (_IwNATIVE *IwNATIVETransactor) Transfer(opts *bind.TransactOpts, to common.Address, value *big.Int) (*types.Transaction, error) {
  3447  	return _IwNATIVE.contract.Transact(opts, "transfer", to, value)
  3448  }
  3449  
  3450  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  3451  //
  3452  // Solidity: function transfer(address to, uint256 value) returns(bool)
  3453  func (_IwNATIVE *IwNATIVESession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) {
  3454  	return _IwNATIVE.Contract.Transfer(&_IwNATIVE.TransactOpts, to, value)
  3455  }
  3456  
  3457  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
  3458  //
  3459  // Solidity: function transfer(address to, uint256 value) returns(bool)
  3460  func (_IwNATIVE *IwNATIVETransactorSession) Transfer(to common.Address, value *big.Int) (*types.Transaction, error) {
  3461  	return _IwNATIVE.Contract.Transfer(&_IwNATIVE.TransactOpts, to, value)
  3462  }
  3463  
  3464  // Withdraw is a paid mutator transaction binding the contract method 0x2e1a7d4d.
  3465  //
  3466  // Solidity: function withdraw(uint256 ) returns()
  3467  func (_IwNATIVE *IwNATIVETransactor) Withdraw(opts *bind.TransactOpts, arg0 *big.Int) (*types.Transaction, error) {
  3468  	return _IwNATIVE.contract.Transact(opts, "withdraw", arg0)
  3469  }
  3470  
  3471  // Withdraw is a paid mutator transaction binding the contract method 0x2e1a7d4d.
  3472  //
  3473  // Solidity: function withdraw(uint256 ) returns()
  3474  func (_IwNATIVE *IwNATIVESession) Withdraw(arg0 *big.Int) (*types.Transaction, error) {
  3475  	return _IwNATIVE.Contract.Withdraw(&_IwNATIVE.TransactOpts, arg0)
  3476  }
  3477  
  3478  // Withdraw is a paid mutator transaction binding the contract method 0x2e1a7d4d.
  3479  //
  3480  // Solidity: function withdraw(uint256 ) returns()
  3481  func (_IwNATIVE *IwNATIVETransactorSession) Withdraw(arg0 *big.Int) (*types.Transaction, error) {
  3482  	return _IwNATIVE.Contract.Withdraw(&_IwNATIVE.TransactOpts, arg0)
  3483  }
  3484  
  3485  // SafeMathSushiswapMetaData contains all meta data concerning the SafeMathSushiswap contract.
  3486  var SafeMathSushiswapMetaData = &bind.MetaData{
  3487  	ABI: "[]",
  3488  	Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ed902324e881173170adeb46593dc5ec204bd33ad4a36f8bc03855a5b917d62c64736f6c63430008000033",
  3489  }
  3490  
  3491  // SafeMathSushiswapABI is the input ABI used to generate the binding from.
  3492  // Deprecated: Use SafeMathSushiswapMetaData.ABI instead.
  3493  var SafeMathSushiswapABI = SafeMathSushiswapMetaData.ABI
  3494  
  3495  // SafeMathSushiswapBin is the compiled bytecode used for deploying new contracts.
  3496  // Deprecated: Use SafeMathSushiswapMetaData.Bin instead.
  3497  var SafeMathSushiswapBin = SafeMathSushiswapMetaData.Bin
  3498  
  3499  // DeploySafeMathSushiswap deploys a new Ethereum contract, binding an instance of SafeMathSushiswap to it.
  3500  func DeploySafeMathSushiswap(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SafeMathSushiswap, error) {
  3501  	parsed, err := SafeMathSushiswapMetaData.GetAbi()
  3502  	if err != nil {
  3503  		return common.Address{}, nil, nil, err
  3504  	}
  3505  	if parsed == nil {
  3506  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
  3507  	}
  3508  
  3509  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(SafeMathSushiswapBin), backend)
  3510  	if err != nil {
  3511  		return common.Address{}, nil, nil, err
  3512  	}
  3513  	return address, tx, &SafeMathSushiswap{SafeMathSushiswapCaller: SafeMathSushiswapCaller{contract: contract}, SafeMathSushiswapTransactor: SafeMathSushiswapTransactor{contract: contract}, SafeMathSushiswapFilterer: SafeMathSushiswapFilterer{contract: contract}}, nil
  3514  }
  3515  
  3516  // SafeMathSushiswap is an auto generated Go binding around an Ethereum contract.
  3517  type SafeMathSushiswap struct {
  3518  	SafeMathSushiswapCaller     // Read-only binding to the contract
  3519  	SafeMathSushiswapTransactor // Write-only binding to the contract
  3520  	SafeMathSushiswapFilterer   // Log filterer for contract events
  3521  }
  3522  
  3523  // SafeMathSushiswapCaller is an auto generated read-only Go binding around an Ethereum contract.
  3524  type SafeMathSushiswapCaller struct {
  3525  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3526  }
  3527  
  3528  // SafeMathSushiswapTransactor is an auto generated write-only Go binding around an Ethereum contract.
  3529  type SafeMathSushiswapTransactor struct {
  3530  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3531  }
  3532  
  3533  // SafeMathSushiswapFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  3534  type SafeMathSushiswapFilterer struct {
  3535  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3536  }
  3537  
  3538  // SafeMathSushiswapSession is an auto generated Go binding around an Ethereum contract,
  3539  // with pre-set call and transact options.
  3540  type SafeMathSushiswapSession struct {
  3541  	Contract     *SafeMathSushiswap // Generic contract binding to set the session for
  3542  	CallOpts     bind.CallOpts      // Call options to use throughout this session
  3543  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
  3544  }
  3545  
  3546  // SafeMathSushiswapCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  3547  // with pre-set call options.
  3548  type SafeMathSushiswapCallerSession struct {
  3549  	Contract *SafeMathSushiswapCaller // Generic contract caller binding to set the session for
  3550  	CallOpts bind.CallOpts            // Call options to use throughout this session
  3551  }
  3552  
  3553  // SafeMathSushiswapTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  3554  // with pre-set transact options.
  3555  type SafeMathSushiswapTransactorSession struct {
  3556  	Contract     *SafeMathSushiswapTransactor // Generic contract transactor binding to set the session for
  3557  	TransactOpts bind.TransactOpts            // Transaction auth options to use throughout this session
  3558  }
  3559  
  3560  // SafeMathSushiswapRaw is an auto generated low-level Go binding around an Ethereum contract.
  3561  type SafeMathSushiswapRaw struct {
  3562  	Contract *SafeMathSushiswap // Generic contract binding to access the raw methods on
  3563  }
  3564  
  3565  // SafeMathSushiswapCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  3566  type SafeMathSushiswapCallerRaw struct {
  3567  	Contract *SafeMathSushiswapCaller // Generic read-only contract binding to access the raw methods on
  3568  }
  3569  
  3570  // SafeMathSushiswapTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  3571  type SafeMathSushiswapTransactorRaw struct {
  3572  	Contract *SafeMathSushiswapTransactor // Generic write-only contract binding to access the raw methods on
  3573  }
  3574  
  3575  // NewSafeMathSushiswap creates a new instance of SafeMathSushiswap, bound to a specific deployed contract.
  3576  func NewSafeMathSushiswap(address common.Address, backend bind.ContractBackend) (*SafeMathSushiswap, error) {
  3577  	contract, err := bindSafeMathSushiswap(address, backend, backend, backend)
  3578  	if err != nil {
  3579  		return nil, err
  3580  	}
  3581  	return &SafeMathSushiswap{SafeMathSushiswapCaller: SafeMathSushiswapCaller{contract: contract}, SafeMathSushiswapTransactor: SafeMathSushiswapTransactor{contract: contract}, SafeMathSushiswapFilterer: SafeMathSushiswapFilterer{contract: contract}}, nil
  3582  }
  3583  
  3584  // NewSafeMathSushiswapCaller creates a new read-only instance of SafeMathSushiswap, bound to a specific deployed contract.
  3585  func NewSafeMathSushiswapCaller(address common.Address, caller bind.ContractCaller) (*SafeMathSushiswapCaller, error) {
  3586  	contract, err := bindSafeMathSushiswap(address, caller, nil, nil)
  3587  	if err != nil {
  3588  		return nil, err
  3589  	}
  3590  	return &SafeMathSushiswapCaller{contract: contract}, nil
  3591  }
  3592  
  3593  // NewSafeMathSushiswapTransactor creates a new write-only instance of SafeMathSushiswap, bound to a specific deployed contract.
  3594  func NewSafeMathSushiswapTransactor(address common.Address, transactor bind.ContractTransactor) (*SafeMathSushiswapTransactor, error) {
  3595  	contract, err := bindSafeMathSushiswap(address, nil, transactor, nil)
  3596  	if err != nil {
  3597  		return nil, err
  3598  	}
  3599  	return &SafeMathSushiswapTransactor{contract: contract}, nil
  3600  }
  3601  
  3602  // NewSafeMathSushiswapFilterer creates a new log filterer instance of SafeMathSushiswap, bound to a specific deployed contract.
  3603  func NewSafeMathSushiswapFilterer(address common.Address, filterer bind.ContractFilterer) (*SafeMathSushiswapFilterer, error) {
  3604  	contract, err := bindSafeMathSushiswap(address, nil, nil, filterer)
  3605  	if err != nil {
  3606  		return nil, err
  3607  	}
  3608  	return &SafeMathSushiswapFilterer{contract: contract}, nil
  3609  }
  3610  
  3611  // bindSafeMathSushiswap binds a generic wrapper to an already deployed contract.
  3612  func bindSafeMathSushiswap(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  3613  	parsed, err := abi.JSON(strings.NewReader(SafeMathSushiswapABI))
  3614  	if err != nil {
  3615  		return nil, err
  3616  	}
  3617  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  3618  }
  3619  
  3620  // Call invokes the (constant) contract method with params as input values and
  3621  // sets the output to result. The result type might be a single field for simple
  3622  // returns, a slice of interfaces for anonymous returns and a struct for named
  3623  // returns.
  3624  func (_SafeMathSushiswap *SafeMathSushiswapRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3625  	return _SafeMathSushiswap.Contract.SafeMathSushiswapCaller.contract.Call(opts, result, method, params...)
  3626  }
  3627  
  3628  // Transfer initiates a plain transaction to move funds to the contract, calling
  3629  // its default method if one is available.
  3630  func (_SafeMathSushiswap *SafeMathSushiswapRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3631  	return _SafeMathSushiswap.Contract.SafeMathSushiswapTransactor.contract.Transfer(opts)
  3632  }
  3633  
  3634  // Transact invokes the (paid) contract method with params as input values.
  3635  func (_SafeMathSushiswap *SafeMathSushiswapRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3636  	return _SafeMathSushiswap.Contract.SafeMathSushiswapTransactor.contract.Transact(opts, method, params...)
  3637  }
  3638  
  3639  // Call invokes the (constant) contract method with params as input values and
  3640  // sets the output to result. The result type might be a single field for simple
  3641  // returns, a slice of interfaces for anonymous returns and a struct for named
  3642  // returns.
  3643  func (_SafeMathSushiswap *SafeMathSushiswapCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3644  	return _SafeMathSushiswap.Contract.contract.Call(opts, result, method, params...)
  3645  }
  3646  
  3647  // Transfer initiates a plain transaction to move funds to the contract, calling
  3648  // its default method if one is available.
  3649  func (_SafeMathSushiswap *SafeMathSushiswapTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3650  	return _SafeMathSushiswap.Contract.contract.Transfer(opts)
  3651  }
  3652  
  3653  // Transact invokes the (paid) contract method with params as input values.
  3654  func (_SafeMathSushiswap *SafeMathSushiswapTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3655  	return _SafeMathSushiswap.Contract.contract.Transact(opts, method, params...)
  3656  }
  3657  
  3658  // SushiswapV2LibraryMetaData contains all meta data concerning the SushiswapV2Library contract.
  3659  var SushiswapV2LibraryMetaData = &bind.MetaData{
  3660  	ABI: "[]",
  3661  	Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220db417f1d5f862447118e7db81ef76aa6de04c36a895079b4b02d27188d2a977764736f6c63430008000033",
  3662  }
  3663  
  3664  // SushiswapV2LibraryABI is the input ABI used to generate the binding from.
  3665  // Deprecated: Use SushiswapV2LibraryMetaData.ABI instead.
  3666  var SushiswapV2LibraryABI = SushiswapV2LibraryMetaData.ABI
  3667  
  3668  // SushiswapV2LibraryBin is the compiled bytecode used for deploying new contracts.
  3669  // Deprecated: Use SushiswapV2LibraryMetaData.Bin instead.
  3670  var SushiswapV2LibraryBin = SushiswapV2LibraryMetaData.Bin
  3671  
  3672  // DeploySushiswapV2Library deploys a new Ethereum contract, binding an instance of SushiswapV2Library to it.
  3673  func DeploySushiswapV2Library(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SushiswapV2Library, error) {
  3674  	parsed, err := SushiswapV2LibraryMetaData.GetAbi()
  3675  	if err != nil {
  3676  		return common.Address{}, nil, nil, err
  3677  	}
  3678  	if parsed == nil {
  3679  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
  3680  	}
  3681  
  3682  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(SushiswapV2LibraryBin), backend)
  3683  	if err != nil {
  3684  		return common.Address{}, nil, nil, err
  3685  	}
  3686  	return address, tx, &SushiswapV2Library{SushiswapV2LibraryCaller: SushiswapV2LibraryCaller{contract: contract}, SushiswapV2LibraryTransactor: SushiswapV2LibraryTransactor{contract: contract}, SushiswapV2LibraryFilterer: SushiswapV2LibraryFilterer{contract: contract}}, nil
  3687  }
  3688  
  3689  // SushiswapV2Library is an auto generated Go binding around an Ethereum contract.
  3690  type SushiswapV2Library struct {
  3691  	SushiswapV2LibraryCaller     // Read-only binding to the contract
  3692  	SushiswapV2LibraryTransactor // Write-only binding to the contract
  3693  	SushiswapV2LibraryFilterer   // Log filterer for contract events
  3694  }
  3695  
  3696  // SushiswapV2LibraryCaller is an auto generated read-only Go binding around an Ethereum contract.
  3697  type SushiswapV2LibraryCaller struct {
  3698  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3699  }
  3700  
  3701  // SushiswapV2LibraryTransactor is an auto generated write-only Go binding around an Ethereum contract.
  3702  type SushiswapV2LibraryTransactor struct {
  3703  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3704  }
  3705  
  3706  // SushiswapV2LibraryFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  3707  type SushiswapV2LibraryFilterer struct {
  3708  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3709  }
  3710  
  3711  // SushiswapV2LibrarySession is an auto generated Go binding around an Ethereum contract,
  3712  // with pre-set call and transact options.
  3713  type SushiswapV2LibrarySession struct {
  3714  	Contract     *SushiswapV2Library // Generic contract binding to set the session for
  3715  	CallOpts     bind.CallOpts       // Call options to use throughout this session
  3716  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
  3717  }
  3718  
  3719  // SushiswapV2LibraryCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  3720  // with pre-set call options.
  3721  type SushiswapV2LibraryCallerSession struct {
  3722  	Contract *SushiswapV2LibraryCaller // Generic contract caller binding to set the session for
  3723  	CallOpts bind.CallOpts             // Call options to use throughout this session
  3724  }
  3725  
  3726  // SushiswapV2LibraryTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  3727  // with pre-set transact options.
  3728  type SushiswapV2LibraryTransactorSession struct {
  3729  	Contract     *SushiswapV2LibraryTransactor // Generic contract transactor binding to set the session for
  3730  	TransactOpts bind.TransactOpts             // Transaction auth options to use throughout this session
  3731  }
  3732  
  3733  // SushiswapV2LibraryRaw is an auto generated low-level Go binding around an Ethereum contract.
  3734  type SushiswapV2LibraryRaw struct {
  3735  	Contract *SushiswapV2Library // Generic contract binding to access the raw methods on
  3736  }
  3737  
  3738  // SushiswapV2LibraryCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  3739  type SushiswapV2LibraryCallerRaw struct {
  3740  	Contract *SushiswapV2LibraryCaller // Generic read-only contract binding to access the raw methods on
  3741  }
  3742  
  3743  // SushiswapV2LibraryTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  3744  type SushiswapV2LibraryTransactorRaw struct {
  3745  	Contract *SushiswapV2LibraryTransactor // Generic write-only contract binding to access the raw methods on
  3746  }
  3747  
  3748  // NewSushiswapV2Library creates a new instance of SushiswapV2Library, bound to a specific deployed contract.
  3749  func NewSushiswapV2Library(address common.Address, backend bind.ContractBackend) (*SushiswapV2Library, error) {
  3750  	contract, err := bindSushiswapV2Library(address, backend, backend, backend)
  3751  	if err != nil {
  3752  		return nil, err
  3753  	}
  3754  	return &SushiswapV2Library{SushiswapV2LibraryCaller: SushiswapV2LibraryCaller{contract: contract}, SushiswapV2LibraryTransactor: SushiswapV2LibraryTransactor{contract: contract}, SushiswapV2LibraryFilterer: SushiswapV2LibraryFilterer{contract: contract}}, nil
  3755  }
  3756  
  3757  // NewSushiswapV2LibraryCaller creates a new read-only instance of SushiswapV2Library, bound to a specific deployed contract.
  3758  func NewSushiswapV2LibraryCaller(address common.Address, caller bind.ContractCaller) (*SushiswapV2LibraryCaller, error) {
  3759  	contract, err := bindSushiswapV2Library(address, caller, nil, nil)
  3760  	if err != nil {
  3761  		return nil, err
  3762  	}
  3763  	return &SushiswapV2LibraryCaller{contract: contract}, nil
  3764  }
  3765  
  3766  // NewSushiswapV2LibraryTransactor creates a new write-only instance of SushiswapV2Library, bound to a specific deployed contract.
  3767  func NewSushiswapV2LibraryTransactor(address common.Address, transactor bind.ContractTransactor) (*SushiswapV2LibraryTransactor, error) {
  3768  	contract, err := bindSushiswapV2Library(address, nil, transactor, nil)
  3769  	if err != nil {
  3770  		return nil, err
  3771  	}
  3772  	return &SushiswapV2LibraryTransactor{contract: contract}, nil
  3773  }
  3774  
  3775  // NewSushiswapV2LibraryFilterer creates a new log filterer instance of SushiswapV2Library, bound to a specific deployed contract.
  3776  func NewSushiswapV2LibraryFilterer(address common.Address, filterer bind.ContractFilterer) (*SushiswapV2LibraryFilterer, error) {
  3777  	contract, err := bindSushiswapV2Library(address, nil, nil, filterer)
  3778  	if err != nil {
  3779  		return nil, err
  3780  	}
  3781  	return &SushiswapV2LibraryFilterer{contract: contract}, nil
  3782  }
  3783  
  3784  // bindSushiswapV2Library binds a generic wrapper to an already deployed contract.
  3785  func bindSushiswapV2Library(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  3786  	parsed, err := abi.JSON(strings.NewReader(SushiswapV2LibraryABI))
  3787  	if err != nil {
  3788  		return nil, err
  3789  	}
  3790  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  3791  }
  3792  
  3793  // Call invokes the (constant) contract method with params as input values and
  3794  // sets the output to result. The result type might be a single field for simple
  3795  // returns, a slice of interfaces for anonymous returns and a struct for named
  3796  // returns.
  3797  func (_SushiswapV2Library *SushiswapV2LibraryRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3798  	return _SushiswapV2Library.Contract.SushiswapV2LibraryCaller.contract.Call(opts, result, method, params...)
  3799  }
  3800  
  3801  // Transfer initiates a plain transaction to move funds to the contract, calling
  3802  // its default method if one is available.
  3803  func (_SushiswapV2Library *SushiswapV2LibraryRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3804  	return _SushiswapV2Library.Contract.SushiswapV2LibraryTransactor.contract.Transfer(opts)
  3805  }
  3806  
  3807  // Transact invokes the (paid) contract method with params as input values.
  3808  func (_SushiswapV2Library *SushiswapV2LibraryRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3809  	return _SushiswapV2Library.Contract.SushiswapV2LibraryTransactor.contract.Transact(opts, method, params...)
  3810  }
  3811  
  3812  // Call invokes the (constant) contract method with params as input values and
  3813  // sets the output to result. The result type might be a single field for simple
  3814  // returns, a slice of interfaces for anonymous returns and a struct for named
  3815  // returns.
  3816  func (_SushiswapV2Library *SushiswapV2LibraryCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3817  	return _SushiswapV2Library.Contract.contract.Call(opts, result, method, params...)
  3818  }
  3819  
  3820  // Transfer initiates a plain transaction to move funds to the contract, calling
  3821  // its default method if one is available.
  3822  func (_SushiswapV2Library *SushiswapV2LibraryTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3823  	return _SushiswapV2Library.Contract.contract.Transfer(opts)
  3824  }
  3825  
  3826  // Transact invokes the (paid) contract method with params as input values.
  3827  func (_SushiswapV2Library *SushiswapV2LibraryTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3828  	return _SushiswapV2Library.Contract.contract.Transact(opts, method, params...)
  3829  }
  3830  
  3831  // TransferHelperMetaData contains all meta data concerning the TransferHelper contract.
  3832  var TransferHelperMetaData = &bind.MetaData{
  3833  	ABI: "[]",
  3834  	Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039925f33bcae3476fee70e43402ab2b0b7c8b046276b71bd09c1efa1a0ac1b8264736f6c63430008000033",
  3835  }
  3836  
  3837  // TransferHelperABI is the input ABI used to generate the binding from.
  3838  // Deprecated: Use TransferHelperMetaData.ABI instead.
  3839  var TransferHelperABI = TransferHelperMetaData.ABI
  3840  
  3841  // TransferHelperBin is the compiled bytecode used for deploying new contracts.
  3842  // Deprecated: Use TransferHelperMetaData.Bin instead.
  3843  var TransferHelperBin = TransferHelperMetaData.Bin
  3844  
  3845  // DeployTransferHelper deploys a new Ethereum contract, binding an instance of TransferHelper to it.
  3846  func DeployTransferHelper(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *TransferHelper, error) {
  3847  	parsed, err := TransferHelperMetaData.GetAbi()
  3848  	if err != nil {
  3849  		return common.Address{}, nil, nil, err
  3850  	}
  3851  	if parsed == nil {
  3852  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
  3853  	}
  3854  
  3855  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(TransferHelperBin), backend)
  3856  	if err != nil {
  3857  		return common.Address{}, nil, nil, err
  3858  	}
  3859  	return address, tx, &TransferHelper{TransferHelperCaller: TransferHelperCaller{contract: contract}, TransferHelperTransactor: TransferHelperTransactor{contract: contract}, TransferHelperFilterer: TransferHelperFilterer{contract: contract}}, nil
  3860  }
  3861  
  3862  // TransferHelper is an auto generated Go binding around an Ethereum contract.
  3863  type TransferHelper struct {
  3864  	TransferHelperCaller     // Read-only binding to the contract
  3865  	TransferHelperTransactor // Write-only binding to the contract
  3866  	TransferHelperFilterer   // Log filterer for contract events
  3867  }
  3868  
  3869  // TransferHelperCaller is an auto generated read-only Go binding around an Ethereum contract.
  3870  type TransferHelperCaller struct {
  3871  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3872  }
  3873  
  3874  // TransferHelperTransactor is an auto generated write-only Go binding around an Ethereum contract.
  3875  type TransferHelperTransactor struct {
  3876  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3877  }
  3878  
  3879  // TransferHelperFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  3880  type TransferHelperFilterer struct {
  3881  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3882  }
  3883  
  3884  // TransferHelperSession is an auto generated Go binding around an Ethereum contract,
  3885  // with pre-set call and transact options.
  3886  type TransferHelperSession struct {
  3887  	Contract     *TransferHelper   // Generic contract binding to set the session for
  3888  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  3889  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  3890  }
  3891  
  3892  // TransferHelperCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  3893  // with pre-set call options.
  3894  type TransferHelperCallerSession struct {
  3895  	Contract *TransferHelperCaller // Generic contract caller binding to set the session for
  3896  	CallOpts bind.CallOpts         // Call options to use throughout this session
  3897  }
  3898  
  3899  // TransferHelperTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  3900  // with pre-set transact options.
  3901  type TransferHelperTransactorSession struct {
  3902  	Contract     *TransferHelperTransactor // Generic contract transactor binding to set the session for
  3903  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
  3904  }
  3905  
  3906  // TransferHelperRaw is an auto generated low-level Go binding around an Ethereum contract.
  3907  type TransferHelperRaw struct {
  3908  	Contract *TransferHelper // Generic contract binding to access the raw methods on
  3909  }
  3910  
  3911  // TransferHelperCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  3912  type TransferHelperCallerRaw struct {
  3913  	Contract *TransferHelperCaller // Generic read-only contract binding to access the raw methods on
  3914  }
  3915  
  3916  // TransferHelperTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  3917  type TransferHelperTransactorRaw struct {
  3918  	Contract *TransferHelperTransactor // Generic write-only contract binding to access the raw methods on
  3919  }
  3920  
  3921  // NewTransferHelper creates a new instance of TransferHelper, bound to a specific deployed contract.
  3922  func NewTransferHelper(address common.Address, backend bind.ContractBackend) (*TransferHelper, error) {
  3923  	contract, err := bindTransferHelper(address, backend, backend, backend)
  3924  	if err != nil {
  3925  		return nil, err
  3926  	}
  3927  	return &TransferHelper{TransferHelperCaller: TransferHelperCaller{contract: contract}, TransferHelperTransactor: TransferHelperTransactor{contract: contract}, TransferHelperFilterer: TransferHelperFilterer{contract: contract}}, nil
  3928  }
  3929  
  3930  // NewTransferHelperCaller creates a new read-only instance of TransferHelper, bound to a specific deployed contract.
  3931  func NewTransferHelperCaller(address common.Address, caller bind.ContractCaller) (*TransferHelperCaller, error) {
  3932  	contract, err := bindTransferHelper(address, caller, nil, nil)
  3933  	if err != nil {
  3934  		return nil, err
  3935  	}
  3936  	return &TransferHelperCaller{contract: contract}, nil
  3937  }
  3938  
  3939  // NewTransferHelperTransactor creates a new write-only instance of TransferHelper, bound to a specific deployed contract.
  3940  func NewTransferHelperTransactor(address common.Address, transactor bind.ContractTransactor) (*TransferHelperTransactor, error) {
  3941  	contract, err := bindTransferHelper(address, nil, transactor, nil)
  3942  	if err != nil {
  3943  		return nil, err
  3944  	}
  3945  	return &TransferHelperTransactor{contract: contract}, nil
  3946  }
  3947  
  3948  // NewTransferHelperFilterer creates a new log filterer instance of TransferHelper, bound to a specific deployed contract.
  3949  func NewTransferHelperFilterer(address common.Address, filterer bind.ContractFilterer) (*TransferHelperFilterer, error) {
  3950  	contract, err := bindTransferHelper(address, nil, nil, filterer)
  3951  	if err != nil {
  3952  		return nil, err
  3953  	}
  3954  	return &TransferHelperFilterer{contract: contract}, nil
  3955  }
  3956  
  3957  // bindTransferHelper binds a generic wrapper to an already deployed contract.
  3958  func bindTransferHelper(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  3959  	parsed, err := abi.JSON(strings.NewReader(TransferHelperABI))
  3960  	if err != nil {
  3961  		return nil, err
  3962  	}
  3963  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  3964  }
  3965  
  3966  // Call invokes the (constant) contract method with params as input values and
  3967  // sets the output to result. The result type might be a single field for simple
  3968  // returns, a slice of interfaces for anonymous returns and a struct for named
  3969  // returns.
  3970  func (_TransferHelper *TransferHelperRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3971  	return _TransferHelper.Contract.TransferHelperCaller.contract.Call(opts, result, method, params...)
  3972  }
  3973  
  3974  // Transfer initiates a plain transaction to move funds to the contract, calling
  3975  // its default method if one is available.
  3976  func (_TransferHelper *TransferHelperRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3977  	return _TransferHelper.Contract.TransferHelperTransactor.contract.Transfer(opts)
  3978  }
  3979  
  3980  // Transact invokes the (paid) contract method with params as input values.
  3981  func (_TransferHelper *TransferHelperRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3982  	return _TransferHelper.Contract.TransferHelperTransactor.contract.Transact(opts, method, params...)
  3983  }
  3984  
  3985  // Call invokes the (constant) contract method with params as input values and
  3986  // sets the output to result. The result type might be a single field for simple
  3987  // returns, a slice of interfaces for anonymous returns and a struct for named
  3988  // returns.
  3989  func (_TransferHelper *TransferHelperCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3990  	return _TransferHelper.Contract.contract.Call(opts, result, method, params...)
  3991  }
  3992  
  3993  // Transfer initiates a plain transaction to move funds to the contract, calling
  3994  // its default method if one is available.
  3995  func (_TransferHelper *TransferHelperTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3996  	return _TransferHelper.Contract.contract.Transfer(opts)
  3997  }
  3998  
  3999  // Transact invokes the (paid) contract method with params as input values.
  4000  func (_TransferHelper *TransferHelperTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4001  	return _TransferHelper.Contract.contract.Transact(opts, method, params...)
  4002  }