diff --git a/abi/curve/curve.go b/abi/curve/stableswapng.go similarity index 62% rename from abi/curve/curve.go rename to abi/curve/stableswapng.go index ccd0429..4f15945 100644 --- a/abi/curve/curve.go +++ b/abi/curve/stableswapng.go @@ -29,113 +29,113 @@ var ( _ = abi.ConvertType ) -// CurveMetaData contains all meta data concerning the Curve contract. -var CurveMetaData = &bind.MetaData{ +// StableSwapNGMetaData contains all meta data concerning the StableSwapNG contract. +var StableSwapNGMetaData = &bind.MetaData{ ABI: "[{\"name\":\"Transfer\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"TokenExchange\",\"inputs\":[{\"name\":\"buyer\",\"type\":\"address\",\"indexed\":true},{\"name\":\"sold_id\",\"type\":\"int128\",\"indexed\":false},{\"name\":\"tokens_sold\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"bought_id\",\"type\":\"int128\",\"indexed\":false},{\"name\":\"tokens_bought\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"TokenExchangeUnderlying\",\"inputs\":[{\"name\":\"buyer\",\"type\":\"address\",\"indexed\":true},{\"name\":\"sold_id\",\"type\":\"int128\",\"indexed\":false},{\"name\":\"tokens_sold\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"bought_id\",\"type\":\"int128\",\"indexed\":false},{\"name\":\"tokens_bought\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"AddLiquidity\",\"inputs\":[{\"name\":\"provider\",\"type\":\"address\",\"indexed\":true},{\"name\":\"token_amounts\",\"type\":\"uint256[]\",\"indexed\":false},{\"name\":\"fees\",\"type\":\"uint256[]\",\"indexed\":false},{\"name\":\"invariant\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"token_supply\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"RemoveLiquidity\",\"inputs\":[{\"name\":\"provider\",\"type\":\"address\",\"indexed\":true},{\"name\":\"token_amounts\",\"type\":\"uint256[]\",\"indexed\":false},{\"name\":\"fees\",\"type\":\"uint256[]\",\"indexed\":false},{\"name\":\"token_supply\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"RemoveLiquidityOne\",\"inputs\":[{\"name\":\"provider\",\"type\":\"address\",\"indexed\":true},{\"name\":\"token_id\",\"type\":\"int128\",\"indexed\":false},{\"name\":\"token_amount\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"coin_amount\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"token_supply\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"RemoveLiquidityImbalance\",\"inputs\":[{\"name\":\"provider\",\"type\":\"address\",\"indexed\":true},{\"name\":\"token_amounts\",\"type\":\"uint256[]\",\"indexed\":false},{\"name\":\"fees\",\"type\":\"uint256[]\",\"indexed\":false},{\"name\":\"invariant\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"token_supply\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"RampA\",\"inputs\":[{\"name\":\"old_A\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"new_A\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"initial_time\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"future_time\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"StopRampA\",\"inputs\":[{\"name\":\"A\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"t\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"ApplyNewFee\",\"inputs\":[{\"name\":\"fee\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"offpeg_fee_multiplier\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"SetNewMATime\",\"inputs\":[{\"name\":\"ma_exp_time\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"D_ma_time\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"inputs\":[{\"name\":\"_name\",\"type\":\"string\"},{\"name\":\"_symbol\",\"type\":\"string\"},{\"name\":\"_A\",\"type\":\"uint256\"},{\"name\":\"_fee\",\"type\":\"uint256\"},{\"name\":\"_offpeg_fee_multiplier\",\"type\":\"uint256\"},{\"name\":\"_ma_exp_time\",\"type\":\"uint256\"},{\"name\":\"_coins\",\"type\":\"address[]\"},{\"name\":\"_rate_multipliers\",\"type\":\"uint256[]\"},{\"name\":\"_asset_types\",\"type\":\"uint8[]\"},{\"name\":\"_method_ids\",\"type\":\"bytes4[]\"},{\"name\":\"_oracles\",\"type\":\"address[]\"}],\"outputs\":[]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"exchange\",\"inputs\":[{\"name\":\"i\",\"type\":\"int128\"},{\"name\":\"j\",\"type\":\"int128\"},{\"name\":\"_dx\",\"type\":\"uint256\"},{\"name\":\"_min_dy\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"exchange\",\"inputs\":[{\"name\":\"i\",\"type\":\"int128\"},{\"name\":\"j\",\"type\":\"int128\"},{\"name\":\"_dx\",\"type\":\"uint256\"},{\"name\":\"_min_dy\",\"type\":\"uint256\"},{\"name\":\"_receiver\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"exchange_received\",\"inputs\":[{\"name\":\"i\",\"type\":\"int128\"},{\"name\":\"j\",\"type\":\"int128\"},{\"name\":\"_dx\",\"type\":\"uint256\"},{\"name\":\"_min_dy\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"exchange_received\",\"inputs\":[{\"name\":\"i\",\"type\":\"int128\"},{\"name\":\"j\",\"type\":\"int128\"},{\"name\":\"_dx\",\"type\":\"uint256\"},{\"name\":\"_min_dy\",\"type\":\"uint256\"},{\"name\":\"_receiver\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"add_liquidity\",\"inputs\":[{\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"name\":\"_min_mint_amount\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"add_liquidity\",\"inputs\":[{\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"name\":\"_min_mint_amount\",\"type\":\"uint256\"},{\"name\":\"_receiver\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"remove_liquidity_one_coin\",\"inputs\":[{\"name\":\"_burn_amount\",\"type\":\"uint256\"},{\"name\":\"i\",\"type\":\"int128\"},{\"name\":\"_min_received\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"remove_liquidity_one_coin\",\"inputs\":[{\"name\":\"_burn_amount\",\"type\":\"uint256\"},{\"name\":\"i\",\"type\":\"int128\"},{\"name\":\"_min_received\",\"type\":\"uint256\"},{\"name\":\"_receiver\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"remove_liquidity_imbalance\",\"inputs\":[{\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"name\":\"_max_burn_amount\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"remove_liquidity_imbalance\",\"inputs\":[{\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"name\":\"_max_burn_amount\",\"type\":\"uint256\"},{\"name\":\"_receiver\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"remove_liquidity\",\"inputs\":[{\"name\":\"_burn_amount\",\"type\":\"uint256\"},{\"name\":\"_min_amounts\",\"type\":\"uint256[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"remove_liquidity\",\"inputs\":[{\"name\":\"_burn_amount\",\"type\":\"uint256\"},{\"name\":\"_min_amounts\",\"type\":\"uint256[]\"},{\"name\":\"_receiver\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"remove_liquidity\",\"inputs\":[{\"name\":\"_burn_amount\",\"type\":\"uint256\"},{\"name\":\"_min_amounts\",\"type\":\"uint256[]\"},{\"name\":\"_receiver\",\"type\":\"address\"},{\"name\":\"_claim_admin_fees\",\"type\":\"bool\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"withdraw_admin_fees\",\"inputs\":[],\"outputs\":[]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"last_price\",\"inputs\":[{\"name\":\"i\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ema_price\",\"inputs\":[{\"name\":\"i\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"get_p\",\"inputs\":[{\"name\":\"i\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"price_oracle\",\"inputs\":[{\"name\":\"i\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"D_oracle\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_v\",\"type\":\"uint8\"},{\"name\":\"_r\",\"type\":\"bytes32\"},{\"name\":\"_s\",\"type\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"get_dx\",\"inputs\":[{\"name\":\"i\",\"type\":\"int128\"},{\"name\":\"j\",\"type\":\"int128\"},{\"name\":\"dy\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"get_dy\",\"inputs\":[{\"name\":\"i\",\"type\":\"int128\"},{\"name\":\"j\",\"type\":\"int128\"},{\"name\":\"dx\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"calc_withdraw_one_coin\",\"inputs\":[{\"name\":\"_burn_amount\",\"type\":\"uint256\"},{\"name\":\"i\",\"type\":\"int128\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"get_virtual_price\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"calc_token_amount\",\"inputs\":[{\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"name\":\"_is_deposit\",\"type\":\"bool\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"A\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"A_precise\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balances\",\"inputs\":[{\"name\":\"i\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"get_balances\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"stored_rates\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"dynamic_fee\",\"inputs\":[{\"name\":\"i\",\"type\":\"int128\"},{\"name\":\"j\",\"type\":\"int128\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"ramp_A\",\"inputs\":[{\"name\":\"_future_A\",\"type\":\"uint256\"},{\"name\":\"_future_time\",\"type\":\"uint256\"}],\"outputs\":[]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"stop_ramp_A\",\"inputs\":[],\"outputs\":[]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"set_new_fee\",\"inputs\":[{\"name\":\"_new_fee\",\"type\":\"uint256\"},{\"name\":\"_new_offpeg_fee_multiplier\",\"type\":\"uint256\"}],\"outputs\":[]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"set_ma_exp_time\",\"inputs\":[{\"name\":\"_ma_exp_time\",\"type\":\"uint256\"},{\"name\":\"_D_ma_time\",\"type\":\"uint256\"}],\"outputs\":[]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"N_COINS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"coins\",\"inputs\":[{\"name\":\"arg0\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"fee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"offpeg_fee_multiplier\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"admin_fee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"initial_A\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"future_A\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"initial_A_time\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"future_A_time\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"admin_balances\",\"inputs\":[{\"name\":\"arg0\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ma_exp_time\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"D_ma_time\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ma_last_time\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"arg0\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"arg0\",\"type\":\"address\"},{\"name\":\"arg1\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"inputs\":[{\"name\":\"arg0\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"salt\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}]}]", } -// CurveABI is the input ABI used to generate the binding from. -// Deprecated: Use CurveMetaData.ABI instead. -var CurveABI = CurveMetaData.ABI +// StableSwapNGABI is the input ABI used to generate the binding from. +// Deprecated: Use StableSwapNGMetaData.ABI instead. +var StableSwapNGABI = StableSwapNGMetaData.ABI -// Curve is an auto generated Go binding around an Ethereum contract. -type Curve struct { - CurveCaller // Read-only binding to the contract - CurveTransactor // Write-only binding to the contract - CurveFilterer // Log filterer for contract events +// StableSwapNG is an auto generated Go binding around an Ethereum contract. +type StableSwapNG struct { + StableSwapNGCaller // Read-only binding to the contract + StableSwapNGTransactor // Write-only binding to the contract + StableSwapNGFilterer // Log filterer for contract events } -// CurveCaller is an auto generated read-only Go binding around an Ethereum contract. -type CurveCaller struct { +// StableSwapNGCaller is an auto generated read-only Go binding around an Ethereum contract. +type StableSwapNGCaller struct { contract *bind.BoundContract // Generic contract wrapper for the low level calls } -// CurveTransactor is an auto generated write-only Go binding around an Ethereum contract. -type CurveTransactor struct { +// StableSwapNGTransactor is an auto generated write-only Go binding around an Ethereum contract. +type StableSwapNGTransactor struct { contract *bind.BoundContract // Generic contract wrapper for the low level calls } -// CurveFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type CurveFilterer struct { +// StableSwapNGFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type StableSwapNGFilterer struct { contract *bind.BoundContract // Generic contract wrapper for the low level calls } -// CurveSession is an auto generated Go binding around an Ethereum contract, +// StableSwapNGSession is an auto generated Go binding around an Ethereum contract, // with pre-set call and transact options. -type CurveSession struct { - Contract *Curve // Generic contract binding to set the session for +type StableSwapNGSession struct { + Contract *StableSwapNG // Generic contract binding to set the session for CallOpts bind.CallOpts // Call options to use throughout this session TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session } -// CurveCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// StableSwapNGCallerSession is an auto generated read-only Go binding around an Ethereum contract, // with pre-set call options. -type CurveCallerSession struct { - Contract *CurveCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session +type StableSwapNGCallerSession struct { + Contract *StableSwapNGCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session } -// CurveTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// StableSwapNGTransactorSession is an auto generated write-only Go binding around an Ethereum contract, // with pre-set transact options. -type CurveTransactorSession struct { - Contract *CurveTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +type StableSwapNGTransactorSession struct { + Contract *StableSwapNGTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session } -// CurveRaw is an auto generated low-level Go binding around an Ethereum contract. -type CurveRaw struct { - Contract *Curve // Generic contract binding to access the raw methods on +// StableSwapNGRaw is an auto generated low-level Go binding around an Ethereum contract. +type StableSwapNGRaw struct { + Contract *StableSwapNG // Generic contract binding to access the raw methods on } -// CurveCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type CurveCallerRaw struct { - Contract *CurveCaller // Generic read-only contract binding to access the raw methods on +// StableSwapNGCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type StableSwapNGCallerRaw struct { + Contract *StableSwapNGCaller // Generic read-only contract binding to access the raw methods on } -// CurveTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type CurveTransactorRaw struct { - Contract *CurveTransactor // Generic write-only contract binding to access the raw methods on +// StableSwapNGTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type StableSwapNGTransactorRaw struct { + Contract *StableSwapNGTransactor // Generic write-only contract binding to access the raw methods on } -// NewCurve creates a new instance of Curve, bound to a specific deployed contract. -func NewCurve(address common.Address, backend bind.ContractBackend) (*Curve, error) { - contract, err := bindCurve(address, backend, backend, backend) +// NewStableSwapNG creates a new instance of StableSwapNG, bound to a specific deployed contract. +func NewStableSwapNG(address common.Address, backend bind.ContractBackend) (*StableSwapNG, error) { + contract, err := bindStableSwapNG(address, backend, backend, backend) if err != nil { return nil, err } - return &Curve{CurveCaller: CurveCaller{contract: contract}, CurveTransactor: CurveTransactor{contract: contract}, CurveFilterer: CurveFilterer{contract: contract}}, nil + return &StableSwapNG{StableSwapNGCaller: StableSwapNGCaller{contract: contract}, StableSwapNGTransactor: StableSwapNGTransactor{contract: contract}, StableSwapNGFilterer: StableSwapNGFilterer{contract: contract}}, nil } -// NewCurveCaller creates a new read-only instance of Curve, bound to a specific deployed contract. -func NewCurveCaller(address common.Address, caller bind.ContractCaller) (*CurveCaller, error) { - contract, err := bindCurve(address, caller, nil, nil) +// NewStableSwapNGCaller creates a new read-only instance of StableSwapNG, bound to a specific deployed contract. +func NewStableSwapNGCaller(address common.Address, caller bind.ContractCaller) (*StableSwapNGCaller, error) { + contract, err := bindStableSwapNG(address, caller, nil, nil) if err != nil { return nil, err } - return &CurveCaller{contract: contract}, nil + return &StableSwapNGCaller{contract: contract}, nil } -// NewCurveTransactor creates a new write-only instance of Curve, bound to a specific deployed contract. -func NewCurveTransactor(address common.Address, transactor bind.ContractTransactor) (*CurveTransactor, error) { - contract, err := bindCurve(address, nil, transactor, nil) +// NewStableSwapNGTransactor creates a new write-only instance of StableSwapNG, bound to a specific deployed contract. +func NewStableSwapNGTransactor(address common.Address, transactor bind.ContractTransactor) (*StableSwapNGTransactor, error) { + contract, err := bindStableSwapNG(address, nil, transactor, nil) if err != nil { return nil, err } - return &CurveTransactor{contract: contract}, nil + return &StableSwapNGTransactor{contract: contract}, nil } -// NewCurveFilterer creates a new log filterer instance of Curve, bound to a specific deployed contract. -func NewCurveFilterer(address common.Address, filterer bind.ContractFilterer) (*CurveFilterer, error) { - contract, err := bindCurve(address, nil, nil, filterer) +// NewStableSwapNGFilterer creates a new log filterer instance of StableSwapNG, bound to a specific deployed contract. +func NewStableSwapNGFilterer(address common.Address, filterer bind.ContractFilterer) (*StableSwapNGFilterer, error) { + contract, err := bindStableSwapNG(address, nil, nil, filterer) if err != nil { return nil, err } - return &CurveFilterer{contract: contract}, nil + return &StableSwapNGFilterer{contract: contract}, nil } -// bindCurve binds a generic wrapper to an already deployed contract. -func bindCurve(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := CurveMetaData.GetAbi() +// bindStableSwapNG binds a generic wrapper to an already deployed contract. +func bindStableSwapNG(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := StableSwapNGMetaData.GetAbi() if err != nil { return nil, err } @@ -146,46 +146,46 @@ func bindCurve(address common.Address, caller bind.ContractCaller, transactor bi // sets the output to result. The result type might be a single field for simple // returns, a slice of interfaces for anonymous returns and a struct for named // returns. -func (_Curve *CurveRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _Curve.Contract.CurveCaller.contract.Call(opts, result, method, params...) +func (_StableSwapNG *StableSwapNGRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StableSwapNG.Contract.StableSwapNGCaller.contract.Call(opts, result, method, params...) } // Transfer initiates a plain transaction to move funds to the contract, calling // its default method if one is available. -func (_Curve *CurveRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Curve.Contract.CurveTransactor.contract.Transfer(opts) +func (_StableSwapNG *StableSwapNGRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StableSwapNG.Contract.StableSwapNGTransactor.contract.Transfer(opts) } // Transact invokes the (paid) contract method with params as input values. -func (_Curve *CurveRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _Curve.Contract.CurveTransactor.contract.Transact(opts, method, params...) +func (_StableSwapNG *StableSwapNGRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StableSwapNG.Contract.StableSwapNGTransactor.contract.Transact(opts, method, params...) } // Call invokes the (constant) contract method with params as input values and // sets the output to result. The result type might be a single field for simple // returns, a slice of interfaces for anonymous returns and a struct for named // returns. -func (_Curve *CurveCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _Curve.Contract.contract.Call(opts, result, method, params...) +func (_StableSwapNG *StableSwapNGCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _StableSwapNG.Contract.contract.Call(opts, result, method, params...) } // Transfer initiates a plain transaction to move funds to the contract, calling // its default method if one is available. -func (_Curve *CurveTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Curve.Contract.contract.Transfer(opts) +func (_StableSwapNG *StableSwapNGTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StableSwapNG.Contract.contract.Transfer(opts) } // Transact invokes the (paid) contract method with params as input values. -func (_Curve *CurveTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _Curve.Contract.contract.Transact(opts, method, params...) +func (_StableSwapNG *StableSwapNGTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _StableSwapNG.Contract.contract.Transact(opts, method, params...) } // A is a free data retrieval call binding the contract method 0xf446c1d0. // // Solidity: function A() view returns(uint256) -func (_Curve *CurveCaller) A(opts *bind.CallOpts) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) A(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "A") + err := _StableSwapNG.contract.Call(opts, &out, "A") if err != nil { return *new(*big.Int), err @@ -200,23 +200,23 @@ func (_Curve *CurveCaller) A(opts *bind.CallOpts) (*big.Int, error) { // A is a free data retrieval call binding the contract method 0xf446c1d0. // // Solidity: function A() view returns(uint256) -func (_Curve *CurveSession) A() (*big.Int, error) { - return _Curve.Contract.A(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) A() (*big.Int, error) { + return _StableSwapNG.Contract.A(&_StableSwapNG.CallOpts) } // A is a free data retrieval call binding the contract method 0xf446c1d0. // // Solidity: function A() view returns(uint256) -func (_Curve *CurveCallerSession) A() (*big.Int, error) { - return _Curve.Contract.A(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) A() (*big.Int, error) { + return _StableSwapNG.Contract.A(&_StableSwapNG.CallOpts) } // APrecise is a free data retrieval call binding the contract method 0x76a2f0f0. // // Solidity: function A_precise() view returns(uint256) -func (_Curve *CurveCaller) APrecise(opts *bind.CallOpts) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) APrecise(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "A_precise") + err := _StableSwapNG.contract.Call(opts, &out, "A_precise") if err != nil { return *new(*big.Int), err @@ -231,23 +231,23 @@ func (_Curve *CurveCaller) APrecise(opts *bind.CallOpts) (*big.Int, error) { // APrecise is a free data retrieval call binding the contract method 0x76a2f0f0. // // Solidity: function A_precise() view returns(uint256) -func (_Curve *CurveSession) APrecise() (*big.Int, error) { - return _Curve.Contract.APrecise(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) APrecise() (*big.Int, error) { + return _StableSwapNG.Contract.APrecise(&_StableSwapNG.CallOpts) } // APrecise is a free data retrieval call binding the contract method 0x76a2f0f0. // // Solidity: function A_precise() view returns(uint256) -func (_Curve *CurveCallerSession) APrecise() (*big.Int, error) { - return _Curve.Contract.APrecise(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) APrecise() (*big.Int, error) { + return _StableSwapNG.Contract.APrecise(&_StableSwapNG.CallOpts) } // DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515. // // Solidity: function DOMAIN_SEPARATOR() view returns(bytes32) -func (_Curve *CurveCaller) DOMAINSEPARATOR(opts *bind.CallOpts) ([32]byte, error) { +func (_StableSwapNG *StableSwapNGCaller) DOMAINSEPARATOR(opts *bind.CallOpts) ([32]byte, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "DOMAIN_SEPARATOR") + err := _StableSwapNG.contract.Call(opts, &out, "DOMAIN_SEPARATOR") if err != nil { return *new([32]byte), err @@ -262,23 +262,23 @@ func (_Curve *CurveCaller) DOMAINSEPARATOR(opts *bind.CallOpts) ([32]byte, error // DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515. // // Solidity: function DOMAIN_SEPARATOR() view returns(bytes32) -func (_Curve *CurveSession) DOMAINSEPARATOR() ([32]byte, error) { - return _Curve.Contract.DOMAINSEPARATOR(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) DOMAINSEPARATOR() ([32]byte, error) { + return _StableSwapNG.Contract.DOMAINSEPARATOR(&_StableSwapNG.CallOpts) } // DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515. // // Solidity: function DOMAIN_SEPARATOR() view returns(bytes32) -func (_Curve *CurveCallerSession) DOMAINSEPARATOR() ([32]byte, error) { - return _Curve.Contract.DOMAINSEPARATOR(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) DOMAINSEPARATOR() ([32]byte, error) { + return _StableSwapNG.Contract.DOMAINSEPARATOR(&_StableSwapNG.CallOpts) } // DMaTime is a free data retrieval call binding the contract method 0x9c4258c4. // // Solidity: function D_ma_time() view returns(uint256) -func (_Curve *CurveCaller) DMaTime(opts *bind.CallOpts) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) DMaTime(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "D_ma_time") + err := _StableSwapNG.contract.Call(opts, &out, "D_ma_time") if err != nil { return *new(*big.Int), err @@ -293,23 +293,23 @@ func (_Curve *CurveCaller) DMaTime(opts *bind.CallOpts) (*big.Int, error) { // DMaTime is a free data retrieval call binding the contract method 0x9c4258c4. // // Solidity: function D_ma_time() view returns(uint256) -func (_Curve *CurveSession) DMaTime() (*big.Int, error) { - return _Curve.Contract.DMaTime(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) DMaTime() (*big.Int, error) { + return _StableSwapNG.Contract.DMaTime(&_StableSwapNG.CallOpts) } // DMaTime is a free data retrieval call binding the contract method 0x9c4258c4. // // Solidity: function D_ma_time() view returns(uint256) -func (_Curve *CurveCallerSession) DMaTime() (*big.Int, error) { - return _Curve.Contract.DMaTime(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) DMaTime() (*big.Int, error) { + return _StableSwapNG.Contract.DMaTime(&_StableSwapNG.CallOpts) } // DOracle is a free data retrieval call binding the contract method 0x907a016b. // // Solidity: function D_oracle() view returns(uint256) -func (_Curve *CurveCaller) DOracle(opts *bind.CallOpts) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) DOracle(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "D_oracle") + err := _StableSwapNG.contract.Call(opts, &out, "D_oracle") if err != nil { return *new(*big.Int), err @@ -324,23 +324,23 @@ func (_Curve *CurveCaller) DOracle(opts *bind.CallOpts) (*big.Int, error) { // DOracle is a free data retrieval call binding the contract method 0x907a016b. // // Solidity: function D_oracle() view returns(uint256) -func (_Curve *CurveSession) DOracle() (*big.Int, error) { - return _Curve.Contract.DOracle(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) DOracle() (*big.Int, error) { + return _StableSwapNG.Contract.DOracle(&_StableSwapNG.CallOpts) } // DOracle is a free data retrieval call binding the contract method 0x907a016b. // // Solidity: function D_oracle() view returns(uint256) -func (_Curve *CurveCallerSession) DOracle() (*big.Int, error) { - return _Curve.Contract.DOracle(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) DOracle() (*big.Int, error) { + return _StableSwapNG.Contract.DOracle(&_StableSwapNG.CallOpts) } // NCOINS is a free data retrieval call binding the contract method 0x29357750. // // Solidity: function N_COINS() view returns(uint256) -func (_Curve *CurveCaller) NCOINS(opts *bind.CallOpts) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) NCOINS(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "N_COINS") + err := _StableSwapNG.contract.Call(opts, &out, "N_COINS") if err != nil { return *new(*big.Int), err @@ -355,23 +355,23 @@ func (_Curve *CurveCaller) NCOINS(opts *bind.CallOpts) (*big.Int, error) { // NCOINS is a free data retrieval call binding the contract method 0x29357750. // // Solidity: function N_COINS() view returns(uint256) -func (_Curve *CurveSession) NCOINS() (*big.Int, error) { - return _Curve.Contract.NCOINS(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) NCOINS() (*big.Int, error) { + return _StableSwapNG.Contract.NCOINS(&_StableSwapNG.CallOpts) } // NCOINS is a free data retrieval call binding the contract method 0x29357750. // // Solidity: function N_COINS() view returns(uint256) -func (_Curve *CurveCallerSession) NCOINS() (*big.Int, error) { - return _Curve.Contract.NCOINS(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) NCOINS() (*big.Int, error) { + return _StableSwapNG.Contract.NCOINS(&_StableSwapNG.CallOpts) } // AdminBalances is a free data retrieval call binding the contract method 0xe2e7d264. // // Solidity: function admin_balances(uint256 arg0) view returns(uint256) -func (_Curve *CurveCaller) AdminBalances(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) AdminBalances(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "admin_balances", arg0) + err := _StableSwapNG.contract.Call(opts, &out, "admin_balances", arg0) if err != nil { return *new(*big.Int), err @@ -386,23 +386,23 @@ func (_Curve *CurveCaller) AdminBalances(opts *bind.CallOpts, arg0 *big.Int) (*b // AdminBalances is a free data retrieval call binding the contract method 0xe2e7d264. // // Solidity: function admin_balances(uint256 arg0) view returns(uint256) -func (_Curve *CurveSession) AdminBalances(arg0 *big.Int) (*big.Int, error) { - return _Curve.Contract.AdminBalances(&_Curve.CallOpts, arg0) +func (_StableSwapNG *StableSwapNGSession) AdminBalances(arg0 *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.AdminBalances(&_StableSwapNG.CallOpts, arg0) } // AdminBalances is a free data retrieval call binding the contract method 0xe2e7d264. // // Solidity: function admin_balances(uint256 arg0) view returns(uint256) -func (_Curve *CurveCallerSession) AdminBalances(arg0 *big.Int) (*big.Int, error) { - return _Curve.Contract.AdminBalances(&_Curve.CallOpts, arg0) +func (_StableSwapNG *StableSwapNGCallerSession) AdminBalances(arg0 *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.AdminBalances(&_StableSwapNG.CallOpts, arg0) } // AdminFee is a free data retrieval call binding the contract method 0xfee3f7f9. // // Solidity: function admin_fee() view returns(uint256) -func (_Curve *CurveCaller) AdminFee(opts *bind.CallOpts) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) AdminFee(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "admin_fee") + err := _StableSwapNG.contract.Call(opts, &out, "admin_fee") if err != nil { return *new(*big.Int), err @@ -417,23 +417,23 @@ func (_Curve *CurveCaller) AdminFee(opts *bind.CallOpts) (*big.Int, error) { // AdminFee is a free data retrieval call binding the contract method 0xfee3f7f9. // // Solidity: function admin_fee() view returns(uint256) -func (_Curve *CurveSession) AdminFee() (*big.Int, error) { - return _Curve.Contract.AdminFee(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) AdminFee() (*big.Int, error) { + return _StableSwapNG.Contract.AdminFee(&_StableSwapNG.CallOpts) } // AdminFee is a free data retrieval call binding the contract method 0xfee3f7f9. // // Solidity: function admin_fee() view returns(uint256) -func (_Curve *CurveCallerSession) AdminFee() (*big.Int, error) { - return _Curve.Contract.AdminFee(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) AdminFee() (*big.Int, error) { + return _StableSwapNG.Contract.AdminFee(&_StableSwapNG.CallOpts) } // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. // // Solidity: function allowance(address arg0, address arg1) view returns(uint256) -func (_Curve *CurveCaller) Allowance(opts *bind.CallOpts, arg0 common.Address, arg1 common.Address) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) Allowance(opts *bind.CallOpts, arg0 common.Address, arg1 common.Address) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "allowance", arg0, arg1) + err := _StableSwapNG.contract.Call(opts, &out, "allowance", arg0, arg1) if err != nil { return *new(*big.Int), err @@ -448,23 +448,23 @@ func (_Curve *CurveCaller) Allowance(opts *bind.CallOpts, arg0 common.Address, a // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. // // Solidity: function allowance(address arg0, address arg1) view returns(uint256) -func (_Curve *CurveSession) Allowance(arg0 common.Address, arg1 common.Address) (*big.Int, error) { - return _Curve.Contract.Allowance(&_Curve.CallOpts, arg0, arg1) +func (_StableSwapNG *StableSwapNGSession) Allowance(arg0 common.Address, arg1 common.Address) (*big.Int, error) { + return _StableSwapNG.Contract.Allowance(&_StableSwapNG.CallOpts, arg0, arg1) } // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. // // Solidity: function allowance(address arg0, address arg1) view returns(uint256) -func (_Curve *CurveCallerSession) Allowance(arg0 common.Address, arg1 common.Address) (*big.Int, error) { - return _Curve.Contract.Allowance(&_Curve.CallOpts, arg0, arg1) +func (_StableSwapNG *StableSwapNGCallerSession) Allowance(arg0 common.Address, arg1 common.Address) (*big.Int, error) { + return _StableSwapNG.Contract.Allowance(&_StableSwapNG.CallOpts, arg0, arg1) } // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. // // Solidity: function balanceOf(address arg0) view returns(uint256) -func (_Curve *CurveCaller) BalanceOf(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) BalanceOf(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "balanceOf", arg0) + err := _StableSwapNG.contract.Call(opts, &out, "balanceOf", arg0) if err != nil { return *new(*big.Int), err @@ -479,23 +479,23 @@ func (_Curve *CurveCaller) BalanceOf(opts *bind.CallOpts, arg0 common.Address) ( // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. // // Solidity: function balanceOf(address arg0) view returns(uint256) -func (_Curve *CurveSession) BalanceOf(arg0 common.Address) (*big.Int, error) { - return _Curve.Contract.BalanceOf(&_Curve.CallOpts, arg0) +func (_StableSwapNG *StableSwapNGSession) BalanceOf(arg0 common.Address) (*big.Int, error) { + return _StableSwapNG.Contract.BalanceOf(&_StableSwapNG.CallOpts, arg0) } // BalanceOf is a free data retrieval call binding the contract method 0x70a08231. // // Solidity: function balanceOf(address arg0) view returns(uint256) -func (_Curve *CurveCallerSession) BalanceOf(arg0 common.Address) (*big.Int, error) { - return _Curve.Contract.BalanceOf(&_Curve.CallOpts, arg0) +func (_StableSwapNG *StableSwapNGCallerSession) BalanceOf(arg0 common.Address) (*big.Int, error) { + return _StableSwapNG.Contract.BalanceOf(&_StableSwapNG.CallOpts, arg0) } // Balances is a free data retrieval call binding the contract method 0x4903b0d1. // // Solidity: function balances(uint256 i) view returns(uint256) -func (_Curve *CurveCaller) Balances(opts *bind.CallOpts, i *big.Int) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) Balances(opts *bind.CallOpts, i *big.Int) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "balances", i) + err := _StableSwapNG.contract.Call(opts, &out, "balances", i) if err != nil { return *new(*big.Int), err @@ -510,23 +510,23 @@ func (_Curve *CurveCaller) Balances(opts *bind.CallOpts, i *big.Int) (*big.Int, // Balances is a free data retrieval call binding the contract method 0x4903b0d1. // // Solidity: function balances(uint256 i) view returns(uint256) -func (_Curve *CurveSession) Balances(i *big.Int) (*big.Int, error) { - return _Curve.Contract.Balances(&_Curve.CallOpts, i) +func (_StableSwapNG *StableSwapNGSession) Balances(i *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.Balances(&_StableSwapNG.CallOpts, i) } // Balances is a free data retrieval call binding the contract method 0x4903b0d1. // // Solidity: function balances(uint256 i) view returns(uint256) -func (_Curve *CurveCallerSession) Balances(i *big.Int) (*big.Int, error) { - return _Curve.Contract.Balances(&_Curve.CallOpts, i) +func (_StableSwapNG *StableSwapNGCallerSession) Balances(i *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.Balances(&_StableSwapNG.CallOpts, i) } // CalcTokenAmount is a free data retrieval call binding the contract method 0x3db06dd8. // // Solidity: function calc_token_amount(uint256[] _amounts, bool _is_deposit) view returns(uint256) -func (_Curve *CurveCaller) CalcTokenAmount(opts *bind.CallOpts, _amounts []*big.Int, _is_deposit bool) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) CalcTokenAmount(opts *bind.CallOpts, _amounts []*big.Int, _is_deposit bool) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "calc_token_amount", _amounts, _is_deposit) + err := _StableSwapNG.contract.Call(opts, &out, "calc_token_amount", _amounts, _is_deposit) if err != nil { return *new(*big.Int), err @@ -541,23 +541,23 @@ func (_Curve *CurveCaller) CalcTokenAmount(opts *bind.CallOpts, _amounts []*big. // CalcTokenAmount is a free data retrieval call binding the contract method 0x3db06dd8. // // Solidity: function calc_token_amount(uint256[] _amounts, bool _is_deposit) view returns(uint256) -func (_Curve *CurveSession) CalcTokenAmount(_amounts []*big.Int, _is_deposit bool) (*big.Int, error) { - return _Curve.Contract.CalcTokenAmount(&_Curve.CallOpts, _amounts, _is_deposit) +func (_StableSwapNG *StableSwapNGSession) CalcTokenAmount(_amounts []*big.Int, _is_deposit bool) (*big.Int, error) { + return _StableSwapNG.Contract.CalcTokenAmount(&_StableSwapNG.CallOpts, _amounts, _is_deposit) } // CalcTokenAmount is a free data retrieval call binding the contract method 0x3db06dd8. // // Solidity: function calc_token_amount(uint256[] _amounts, bool _is_deposit) view returns(uint256) -func (_Curve *CurveCallerSession) CalcTokenAmount(_amounts []*big.Int, _is_deposit bool) (*big.Int, error) { - return _Curve.Contract.CalcTokenAmount(&_Curve.CallOpts, _amounts, _is_deposit) +func (_StableSwapNG *StableSwapNGCallerSession) CalcTokenAmount(_amounts []*big.Int, _is_deposit bool) (*big.Int, error) { + return _StableSwapNG.Contract.CalcTokenAmount(&_StableSwapNG.CallOpts, _amounts, _is_deposit) } // CalcWithdrawOneCoin is a free data retrieval call binding the contract method 0xcc2b27d7. // // Solidity: function calc_withdraw_one_coin(uint256 _burn_amount, int128 i) view returns(uint256) -func (_Curve *CurveCaller) CalcWithdrawOneCoin(opts *bind.CallOpts, _burn_amount *big.Int, i *big.Int) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) CalcWithdrawOneCoin(opts *bind.CallOpts, _burn_amount *big.Int, i *big.Int) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "calc_withdraw_one_coin", _burn_amount, i) + err := _StableSwapNG.contract.Call(opts, &out, "calc_withdraw_one_coin", _burn_amount, i) if err != nil { return *new(*big.Int), err @@ -572,23 +572,23 @@ func (_Curve *CurveCaller) CalcWithdrawOneCoin(opts *bind.CallOpts, _burn_amount // CalcWithdrawOneCoin is a free data retrieval call binding the contract method 0xcc2b27d7. // // Solidity: function calc_withdraw_one_coin(uint256 _burn_amount, int128 i) view returns(uint256) -func (_Curve *CurveSession) CalcWithdrawOneCoin(_burn_amount *big.Int, i *big.Int) (*big.Int, error) { - return _Curve.Contract.CalcWithdrawOneCoin(&_Curve.CallOpts, _burn_amount, i) +func (_StableSwapNG *StableSwapNGSession) CalcWithdrawOneCoin(_burn_amount *big.Int, i *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.CalcWithdrawOneCoin(&_StableSwapNG.CallOpts, _burn_amount, i) } // CalcWithdrawOneCoin is a free data retrieval call binding the contract method 0xcc2b27d7. // // Solidity: function calc_withdraw_one_coin(uint256 _burn_amount, int128 i) view returns(uint256) -func (_Curve *CurveCallerSession) CalcWithdrawOneCoin(_burn_amount *big.Int, i *big.Int) (*big.Int, error) { - return _Curve.Contract.CalcWithdrawOneCoin(&_Curve.CallOpts, _burn_amount, i) +func (_StableSwapNG *StableSwapNGCallerSession) CalcWithdrawOneCoin(_burn_amount *big.Int, i *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.CalcWithdrawOneCoin(&_StableSwapNG.CallOpts, _burn_amount, i) } // Coins is a free data retrieval call binding the contract method 0xc6610657. // // Solidity: function coins(uint256 arg0) view returns(address) -func (_Curve *CurveCaller) Coins(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) { +func (_StableSwapNG *StableSwapNGCaller) Coins(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "coins", arg0) + err := _StableSwapNG.contract.Call(opts, &out, "coins", arg0) if err != nil { return *new(common.Address), err @@ -603,23 +603,23 @@ func (_Curve *CurveCaller) Coins(opts *bind.CallOpts, arg0 *big.Int) (common.Add // Coins is a free data retrieval call binding the contract method 0xc6610657. // // Solidity: function coins(uint256 arg0) view returns(address) -func (_Curve *CurveSession) Coins(arg0 *big.Int) (common.Address, error) { - return _Curve.Contract.Coins(&_Curve.CallOpts, arg0) +func (_StableSwapNG *StableSwapNGSession) Coins(arg0 *big.Int) (common.Address, error) { + return _StableSwapNG.Contract.Coins(&_StableSwapNG.CallOpts, arg0) } // Coins is a free data retrieval call binding the contract method 0xc6610657. // // Solidity: function coins(uint256 arg0) view returns(address) -func (_Curve *CurveCallerSession) Coins(arg0 *big.Int) (common.Address, error) { - return _Curve.Contract.Coins(&_Curve.CallOpts, arg0) +func (_StableSwapNG *StableSwapNGCallerSession) Coins(arg0 *big.Int) (common.Address, error) { + return _StableSwapNG.Contract.Coins(&_StableSwapNG.CallOpts, arg0) } // Decimals is a free data retrieval call binding the contract method 0x313ce567. // // Solidity: function decimals() view returns(uint8) -func (_Curve *CurveCaller) Decimals(opts *bind.CallOpts) (uint8, error) { +func (_StableSwapNG *StableSwapNGCaller) Decimals(opts *bind.CallOpts) (uint8, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "decimals") + err := _StableSwapNG.contract.Call(opts, &out, "decimals") if err != nil { return *new(uint8), err @@ -634,23 +634,23 @@ func (_Curve *CurveCaller) Decimals(opts *bind.CallOpts) (uint8, error) { // Decimals is a free data retrieval call binding the contract method 0x313ce567. // // Solidity: function decimals() view returns(uint8) -func (_Curve *CurveSession) Decimals() (uint8, error) { - return _Curve.Contract.Decimals(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) Decimals() (uint8, error) { + return _StableSwapNG.Contract.Decimals(&_StableSwapNG.CallOpts) } // Decimals is a free data retrieval call binding the contract method 0x313ce567. // // Solidity: function decimals() view returns(uint8) -func (_Curve *CurveCallerSession) Decimals() (uint8, error) { - return _Curve.Contract.Decimals(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) Decimals() (uint8, error) { + return _StableSwapNG.Contract.Decimals(&_StableSwapNG.CallOpts) } // DynamicFee is a free data retrieval call binding the contract method 0x76a9cd3e. // // Solidity: function dynamic_fee(int128 i, int128 j) view returns(uint256) -func (_Curve *CurveCaller) DynamicFee(opts *bind.CallOpts, i *big.Int, j *big.Int) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) DynamicFee(opts *bind.CallOpts, i *big.Int, j *big.Int) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "dynamic_fee", i, j) + err := _StableSwapNG.contract.Call(opts, &out, "dynamic_fee", i, j) if err != nil { return *new(*big.Int), err @@ -665,23 +665,23 @@ func (_Curve *CurveCaller) DynamicFee(opts *bind.CallOpts, i *big.Int, j *big.In // DynamicFee is a free data retrieval call binding the contract method 0x76a9cd3e. // // Solidity: function dynamic_fee(int128 i, int128 j) view returns(uint256) -func (_Curve *CurveSession) DynamicFee(i *big.Int, j *big.Int) (*big.Int, error) { - return _Curve.Contract.DynamicFee(&_Curve.CallOpts, i, j) +func (_StableSwapNG *StableSwapNGSession) DynamicFee(i *big.Int, j *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.DynamicFee(&_StableSwapNG.CallOpts, i, j) } // DynamicFee is a free data retrieval call binding the contract method 0x76a9cd3e. // // Solidity: function dynamic_fee(int128 i, int128 j) view returns(uint256) -func (_Curve *CurveCallerSession) DynamicFee(i *big.Int, j *big.Int) (*big.Int, error) { - return _Curve.Contract.DynamicFee(&_Curve.CallOpts, i, j) +func (_StableSwapNG *StableSwapNGCallerSession) DynamicFee(i *big.Int, j *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.DynamicFee(&_StableSwapNG.CallOpts, i, j) } // EmaPrice is a free data retrieval call binding the contract method 0x90d20837. // // Solidity: function ema_price(uint256 i) view returns(uint256) -func (_Curve *CurveCaller) EmaPrice(opts *bind.CallOpts, i *big.Int) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) EmaPrice(opts *bind.CallOpts, i *big.Int) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "ema_price", i) + err := _StableSwapNG.contract.Call(opts, &out, "ema_price", i) if err != nil { return *new(*big.Int), err @@ -696,23 +696,23 @@ func (_Curve *CurveCaller) EmaPrice(opts *bind.CallOpts, i *big.Int) (*big.Int, // EmaPrice is a free data retrieval call binding the contract method 0x90d20837. // // Solidity: function ema_price(uint256 i) view returns(uint256) -func (_Curve *CurveSession) EmaPrice(i *big.Int) (*big.Int, error) { - return _Curve.Contract.EmaPrice(&_Curve.CallOpts, i) +func (_StableSwapNG *StableSwapNGSession) EmaPrice(i *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.EmaPrice(&_StableSwapNG.CallOpts, i) } // EmaPrice is a free data retrieval call binding the contract method 0x90d20837. // // Solidity: function ema_price(uint256 i) view returns(uint256) -func (_Curve *CurveCallerSession) EmaPrice(i *big.Int) (*big.Int, error) { - return _Curve.Contract.EmaPrice(&_Curve.CallOpts, i) +func (_StableSwapNG *StableSwapNGCallerSession) EmaPrice(i *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.EmaPrice(&_StableSwapNG.CallOpts, i) } // Fee is a free data retrieval call binding the contract method 0xddca3f43. // // Solidity: function fee() view returns(uint256) -func (_Curve *CurveCaller) Fee(opts *bind.CallOpts) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) Fee(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "fee") + err := _StableSwapNG.contract.Call(opts, &out, "fee") if err != nil { return *new(*big.Int), err @@ -727,23 +727,23 @@ func (_Curve *CurveCaller) Fee(opts *bind.CallOpts) (*big.Int, error) { // Fee is a free data retrieval call binding the contract method 0xddca3f43. // // Solidity: function fee() view returns(uint256) -func (_Curve *CurveSession) Fee() (*big.Int, error) { - return _Curve.Contract.Fee(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) Fee() (*big.Int, error) { + return _StableSwapNG.Contract.Fee(&_StableSwapNG.CallOpts) } // Fee is a free data retrieval call binding the contract method 0xddca3f43. // // Solidity: function fee() view returns(uint256) -func (_Curve *CurveCallerSession) Fee() (*big.Int, error) { - return _Curve.Contract.Fee(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) Fee() (*big.Int, error) { + return _StableSwapNG.Contract.Fee(&_StableSwapNG.CallOpts) } // FutureA is a free data retrieval call binding the contract method 0xb4b577ad. // // Solidity: function future_A() view returns(uint256) -func (_Curve *CurveCaller) FutureA(opts *bind.CallOpts) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) FutureA(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "future_A") + err := _StableSwapNG.contract.Call(opts, &out, "future_A") if err != nil { return *new(*big.Int), err @@ -758,23 +758,23 @@ func (_Curve *CurveCaller) FutureA(opts *bind.CallOpts) (*big.Int, error) { // FutureA is a free data retrieval call binding the contract method 0xb4b577ad. // // Solidity: function future_A() view returns(uint256) -func (_Curve *CurveSession) FutureA() (*big.Int, error) { - return _Curve.Contract.FutureA(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) FutureA() (*big.Int, error) { + return _StableSwapNG.Contract.FutureA(&_StableSwapNG.CallOpts) } // FutureA is a free data retrieval call binding the contract method 0xb4b577ad. // // Solidity: function future_A() view returns(uint256) -func (_Curve *CurveCallerSession) FutureA() (*big.Int, error) { - return _Curve.Contract.FutureA(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) FutureA() (*big.Int, error) { + return _StableSwapNG.Contract.FutureA(&_StableSwapNG.CallOpts) } // FutureATime is a free data retrieval call binding the contract method 0x14052288. // // Solidity: function future_A_time() view returns(uint256) -func (_Curve *CurveCaller) FutureATime(opts *bind.CallOpts) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) FutureATime(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "future_A_time") + err := _StableSwapNG.contract.Call(opts, &out, "future_A_time") if err != nil { return *new(*big.Int), err @@ -789,23 +789,23 @@ func (_Curve *CurveCaller) FutureATime(opts *bind.CallOpts) (*big.Int, error) { // FutureATime is a free data retrieval call binding the contract method 0x14052288. // // Solidity: function future_A_time() view returns(uint256) -func (_Curve *CurveSession) FutureATime() (*big.Int, error) { - return _Curve.Contract.FutureATime(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) FutureATime() (*big.Int, error) { + return _StableSwapNG.Contract.FutureATime(&_StableSwapNG.CallOpts) } // FutureATime is a free data retrieval call binding the contract method 0x14052288. // // Solidity: function future_A_time() view returns(uint256) -func (_Curve *CurveCallerSession) FutureATime() (*big.Int, error) { - return _Curve.Contract.FutureATime(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) FutureATime() (*big.Int, error) { + return _StableSwapNG.Contract.FutureATime(&_StableSwapNG.CallOpts) } // GetBalances is a free data retrieval call binding the contract method 0x14f05979. // // Solidity: function get_balances() view returns(uint256[]) -func (_Curve *CurveCaller) GetBalances(opts *bind.CallOpts) ([]*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) GetBalances(opts *bind.CallOpts) ([]*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "get_balances") + err := _StableSwapNG.contract.Call(opts, &out, "get_balances") if err != nil { return *new([]*big.Int), err @@ -820,23 +820,23 @@ func (_Curve *CurveCaller) GetBalances(opts *bind.CallOpts) ([]*big.Int, error) // GetBalances is a free data retrieval call binding the contract method 0x14f05979. // // Solidity: function get_balances() view returns(uint256[]) -func (_Curve *CurveSession) GetBalances() ([]*big.Int, error) { - return _Curve.Contract.GetBalances(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) GetBalances() ([]*big.Int, error) { + return _StableSwapNG.Contract.GetBalances(&_StableSwapNG.CallOpts) } // GetBalances is a free data retrieval call binding the contract method 0x14f05979. // // Solidity: function get_balances() view returns(uint256[]) -func (_Curve *CurveCallerSession) GetBalances() ([]*big.Int, error) { - return _Curve.Contract.GetBalances(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) GetBalances() ([]*big.Int, error) { + return _StableSwapNG.Contract.GetBalances(&_StableSwapNG.CallOpts) } // GetDx is a free data retrieval call binding the contract method 0x67df02ca. // // Solidity: function get_dx(int128 i, int128 j, uint256 dy) view returns(uint256) -func (_Curve *CurveCaller) GetDx(opts *bind.CallOpts, i *big.Int, j *big.Int, dy *big.Int) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) GetDx(opts *bind.CallOpts, i *big.Int, j *big.Int, dy *big.Int) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "get_dx", i, j, dy) + err := _StableSwapNG.contract.Call(opts, &out, "get_dx", i, j, dy) if err != nil { return *new(*big.Int), err @@ -851,23 +851,23 @@ func (_Curve *CurveCaller) GetDx(opts *bind.CallOpts, i *big.Int, j *big.Int, dy // GetDx is a free data retrieval call binding the contract method 0x67df02ca. // // Solidity: function get_dx(int128 i, int128 j, uint256 dy) view returns(uint256) -func (_Curve *CurveSession) GetDx(i *big.Int, j *big.Int, dy *big.Int) (*big.Int, error) { - return _Curve.Contract.GetDx(&_Curve.CallOpts, i, j, dy) +func (_StableSwapNG *StableSwapNGSession) GetDx(i *big.Int, j *big.Int, dy *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.GetDx(&_StableSwapNG.CallOpts, i, j, dy) } // GetDx is a free data retrieval call binding the contract method 0x67df02ca. // // Solidity: function get_dx(int128 i, int128 j, uint256 dy) view returns(uint256) -func (_Curve *CurveCallerSession) GetDx(i *big.Int, j *big.Int, dy *big.Int) (*big.Int, error) { - return _Curve.Contract.GetDx(&_Curve.CallOpts, i, j, dy) +func (_StableSwapNG *StableSwapNGCallerSession) GetDx(i *big.Int, j *big.Int, dy *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.GetDx(&_StableSwapNG.CallOpts, i, j, dy) } // GetDy is a free data retrieval call binding the contract method 0x5e0d443f. // // Solidity: function get_dy(int128 i, int128 j, uint256 dx) view returns(uint256) -func (_Curve *CurveCaller) GetDy(opts *bind.CallOpts, i *big.Int, j *big.Int, dx *big.Int) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) GetDy(opts *bind.CallOpts, i *big.Int, j *big.Int, dx *big.Int) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "get_dy", i, j, dx) + err := _StableSwapNG.contract.Call(opts, &out, "get_dy", i, j, dx) if err != nil { return *new(*big.Int), err @@ -882,23 +882,23 @@ func (_Curve *CurveCaller) GetDy(opts *bind.CallOpts, i *big.Int, j *big.Int, dx // GetDy is a free data retrieval call binding the contract method 0x5e0d443f. // // Solidity: function get_dy(int128 i, int128 j, uint256 dx) view returns(uint256) -func (_Curve *CurveSession) GetDy(i *big.Int, j *big.Int, dx *big.Int) (*big.Int, error) { - return _Curve.Contract.GetDy(&_Curve.CallOpts, i, j, dx) +func (_StableSwapNG *StableSwapNGSession) GetDy(i *big.Int, j *big.Int, dx *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.GetDy(&_StableSwapNG.CallOpts, i, j, dx) } // GetDy is a free data retrieval call binding the contract method 0x5e0d443f. // // Solidity: function get_dy(int128 i, int128 j, uint256 dx) view returns(uint256) -func (_Curve *CurveCallerSession) GetDy(i *big.Int, j *big.Int, dx *big.Int) (*big.Int, error) { - return _Curve.Contract.GetDy(&_Curve.CallOpts, i, j, dx) +func (_StableSwapNG *StableSwapNGCallerSession) GetDy(i *big.Int, j *big.Int, dx *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.GetDy(&_StableSwapNG.CallOpts, i, j, dx) } // GetP is a free data retrieval call binding the contract method 0xec023862. // // Solidity: function get_p(uint256 i) view returns(uint256) -func (_Curve *CurveCaller) GetP(opts *bind.CallOpts, i *big.Int) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) GetP(opts *bind.CallOpts, i *big.Int) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "get_p", i) + err := _StableSwapNG.contract.Call(opts, &out, "get_p", i) if err != nil { return *new(*big.Int), err @@ -913,23 +913,23 @@ func (_Curve *CurveCaller) GetP(opts *bind.CallOpts, i *big.Int) (*big.Int, erro // GetP is a free data retrieval call binding the contract method 0xec023862. // // Solidity: function get_p(uint256 i) view returns(uint256) -func (_Curve *CurveSession) GetP(i *big.Int) (*big.Int, error) { - return _Curve.Contract.GetP(&_Curve.CallOpts, i) +func (_StableSwapNG *StableSwapNGSession) GetP(i *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.GetP(&_StableSwapNG.CallOpts, i) } // GetP is a free data retrieval call binding the contract method 0xec023862. // // Solidity: function get_p(uint256 i) view returns(uint256) -func (_Curve *CurveCallerSession) GetP(i *big.Int) (*big.Int, error) { - return _Curve.Contract.GetP(&_Curve.CallOpts, i) +func (_StableSwapNG *StableSwapNGCallerSession) GetP(i *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.GetP(&_StableSwapNG.CallOpts, i) } // GetVirtualPrice is a free data retrieval call binding the contract method 0xbb7b8b80. // // Solidity: function get_virtual_price() view returns(uint256) -func (_Curve *CurveCaller) GetVirtualPrice(opts *bind.CallOpts) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) GetVirtualPrice(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "get_virtual_price") + err := _StableSwapNG.contract.Call(opts, &out, "get_virtual_price") if err != nil { return *new(*big.Int), err @@ -944,23 +944,23 @@ func (_Curve *CurveCaller) GetVirtualPrice(opts *bind.CallOpts) (*big.Int, error // GetVirtualPrice is a free data retrieval call binding the contract method 0xbb7b8b80. // // Solidity: function get_virtual_price() view returns(uint256) -func (_Curve *CurveSession) GetVirtualPrice() (*big.Int, error) { - return _Curve.Contract.GetVirtualPrice(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) GetVirtualPrice() (*big.Int, error) { + return _StableSwapNG.Contract.GetVirtualPrice(&_StableSwapNG.CallOpts) } // GetVirtualPrice is a free data retrieval call binding the contract method 0xbb7b8b80. // // Solidity: function get_virtual_price() view returns(uint256) -func (_Curve *CurveCallerSession) GetVirtualPrice() (*big.Int, error) { - return _Curve.Contract.GetVirtualPrice(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) GetVirtualPrice() (*big.Int, error) { + return _StableSwapNG.Contract.GetVirtualPrice(&_StableSwapNG.CallOpts) } // InitialA is a free data retrieval call binding the contract method 0x5409491a. // // Solidity: function initial_A() view returns(uint256) -func (_Curve *CurveCaller) InitialA(opts *bind.CallOpts) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) InitialA(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "initial_A") + err := _StableSwapNG.contract.Call(opts, &out, "initial_A") if err != nil { return *new(*big.Int), err @@ -975,23 +975,23 @@ func (_Curve *CurveCaller) InitialA(opts *bind.CallOpts) (*big.Int, error) { // InitialA is a free data retrieval call binding the contract method 0x5409491a. // // Solidity: function initial_A() view returns(uint256) -func (_Curve *CurveSession) InitialA() (*big.Int, error) { - return _Curve.Contract.InitialA(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) InitialA() (*big.Int, error) { + return _StableSwapNG.Contract.InitialA(&_StableSwapNG.CallOpts) } // InitialA is a free data retrieval call binding the contract method 0x5409491a. // // Solidity: function initial_A() view returns(uint256) -func (_Curve *CurveCallerSession) InitialA() (*big.Int, error) { - return _Curve.Contract.InitialA(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) InitialA() (*big.Int, error) { + return _StableSwapNG.Contract.InitialA(&_StableSwapNG.CallOpts) } // InitialATime is a free data retrieval call binding the contract method 0x2081066c. // // Solidity: function initial_A_time() view returns(uint256) -func (_Curve *CurveCaller) InitialATime(opts *bind.CallOpts) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) InitialATime(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "initial_A_time") + err := _StableSwapNG.contract.Call(opts, &out, "initial_A_time") if err != nil { return *new(*big.Int), err @@ -1006,23 +1006,23 @@ func (_Curve *CurveCaller) InitialATime(opts *bind.CallOpts) (*big.Int, error) { // InitialATime is a free data retrieval call binding the contract method 0x2081066c. // // Solidity: function initial_A_time() view returns(uint256) -func (_Curve *CurveSession) InitialATime() (*big.Int, error) { - return _Curve.Contract.InitialATime(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) InitialATime() (*big.Int, error) { + return _StableSwapNG.Contract.InitialATime(&_StableSwapNG.CallOpts) } // InitialATime is a free data retrieval call binding the contract method 0x2081066c. // // Solidity: function initial_A_time() view returns(uint256) -func (_Curve *CurveCallerSession) InitialATime() (*big.Int, error) { - return _Curve.Contract.InitialATime(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) InitialATime() (*big.Int, error) { + return _StableSwapNG.Contract.InitialATime(&_StableSwapNG.CallOpts) } // LastPrice is a free data retrieval call binding the contract method 0x3931ab52. // // Solidity: function last_price(uint256 i) view returns(uint256) -func (_Curve *CurveCaller) LastPrice(opts *bind.CallOpts, i *big.Int) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) LastPrice(opts *bind.CallOpts, i *big.Int) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "last_price", i) + err := _StableSwapNG.contract.Call(opts, &out, "last_price", i) if err != nil { return *new(*big.Int), err @@ -1037,23 +1037,23 @@ func (_Curve *CurveCaller) LastPrice(opts *bind.CallOpts, i *big.Int) (*big.Int, // LastPrice is a free data retrieval call binding the contract method 0x3931ab52. // // Solidity: function last_price(uint256 i) view returns(uint256) -func (_Curve *CurveSession) LastPrice(i *big.Int) (*big.Int, error) { - return _Curve.Contract.LastPrice(&_Curve.CallOpts, i) +func (_StableSwapNG *StableSwapNGSession) LastPrice(i *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.LastPrice(&_StableSwapNG.CallOpts, i) } // LastPrice is a free data retrieval call binding the contract method 0x3931ab52. // // Solidity: function last_price(uint256 i) view returns(uint256) -func (_Curve *CurveCallerSession) LastPrice(i *big.Int) (*big.Int, error) { - return _Curve.Contract.LastPrice(&_Curve.CallOpts, i) +func (_StableSwapNG *StableSwapNGCallerSession) LastPrice(i *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.LastPrice(&_StableSwapNG.CallOpts, i) } // MaExpTime is a free data retrieval call binding the contract method 0x1be913a5. // // Solidity: function ma_exp_time() view returns(uint256) -func (_Curve *CurveCaller) MaExpTime(opts *bind.CallOpts) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) MaExpTime(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "ma_exp_time") + err := _StableSwapNG.contract.Call(opts, &out, "ma_exp_time") if err != nil { return *new(*big.Int), err @@ -1068,23 +1068,23 @@ func (_Curve *CurveCaller) MaExpTime(opts *bind.CallOpts) (*big.Int, error) { // MaExpTime is a free data retrieval call binding the contract method 0x1be913a5. // // Solidity: function ma_exp_time() view returns(uint256) -func (_Curve *CurveSession) MaExpTime() (*big.Int, error) { - return _Curve.Contract.MaExpTime(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) MaExpTime() (*big.Int, error) { + return _StableSwapNG.Contract.MaExpTime(&_StableSwapNG.CallOpts) } // MaExpTime is a free data retrieval call binding the contract method 0x1be913a5. // // Solidity: function ma_exp_time() view returns(uint256) -func (_Curve *CurveCallerSession) MaExpTime() (*big.Int, error) { - return _Curve.Contract.MaExpTime(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) MaExpTime() (*big.Int, error) { + return _StableSwapNG.Contract.MaExpTime(&_StableSwapNG.CallOpts) } // MaLastTime is a free data retrieval call binding the contract method 0x1ddc3b01. // // Solidity: function ma_last_time() view returns(uint256) -func (_Curve *CurveCaller) MaLastTime(opts *bind.CallOpts) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) MaLastTime(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "ma_last_time") + err := _StableSwapNG.contract.Call(opts, &out, "ma_last_time") if err != nil { return *new(*big.Int), err @@ -1099,23 +1099,23 @@ func (_Curve *CurveCaller) MaLastTime(opts *bind.CallOpts) (*big.Int, error) { // MaLastTime is a free data retrieval call binding the contract method 0x1ddc3b01. // // Solidity: function ma_last_time() view returns(uint256) -func (_Curve *CurveSession) MaLastTime() (*big.Int, error) { - return _Curve.Contract.MaLastTime(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) MaLastTime() (*big.Int, error) { + return _StableSwapNG.Contract.MaLastTime(&_StableSwapNG.CallOpts) } // MaLastTime is a free data retrieval call binding the contract method 0x1ddc3b01. // // Solidity: function ma_last_time() view returns(uint256) -func (_Curve *CurveCallerSession) MaLastTime() (*big.Int, error) { - return _Curve.Contract.MaLastTime(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) MaLastTime() (*big.Int, error) { + return _StableSwapNG.Contract.MaLastTime(&_StableSwapNG.CallOpts) } // Name is a free data retrieval call binding the contract method 0x06fdde03. // // Solidity: function name() view returns(string) -func (_Curve *CurveCaller) Name(opts *bind.CallOpts) (string, error) { +func (_StableSwapNG *StableSwapNGCaller) Name(opts *bind.CallOpts) (string, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "name") + err := _StableSwapNG.contract.Call(opts, &out, "name") if err != nil { return *new(string), err @@ -1130,23 +1130,23 @@ func (_Curve *CurveCaller) Name(opts *bind.CallOpts) (string, error) { // Name is a free data retrieval call binding the contract method 0x06fdde03. // // Solidity: function name() view returns(string) -func (_Curve *CurveSession) Name() (string, error) { - return _Curve.Contract.Name(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) Name() (string, error) { + return _StableSwapNG.Contract.Name(&_StableSwapNG.CallOpts) } // Name is a free data retrieval call binding the contract method 0x06fdde03. // // Solidity: function name() view returns(string) -func (_Curve *CurveCallerSession) Name() (string, error) { - return _Curve.Contract.Name(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) Name() (string, error) { + return _StableSwapNG.Contract.Name(&_StableSwapNG.CallOpts) } // Nonces is a free data retrieval call binding the contract method 0x7ecebe00. // // Solidity: function nonces(address arg0) view returns(uint256) -func (_Curve *CurveCaller) Nonces(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) Nonces(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "nonces", arg0) + err := _StableSwapNG.contract.Call(opts, &out, "nonces", arg0) if err != nil { return *new(*big.Int), err @@ -1161,23 +1161,23 @@ func (_Curve *CurveCaller) Nonces(opts *bind.CallOpts, arg0 common.Address) (*bi // Nonces is a free data retrieval call binding the contract method 0x7ecebe00. // // Solidity: function nonces(address arg0) view returns(uint256) -func (_Curve *CurveSession) Nonces(arg0 common.Address) (*big.Int, error) { - return _Curve.Contract.Nonces(&_Curve.CallOpts, arg0) +func (_StableSwapNG *StableSwapNGSession) Nonces(arg0 common.Address) (*big.Int, error) { + return _StableSwapNG.Contract.Nonces(&_StableSwapNG.CallOpts, arg0) } // Nonces is a free data retrieval call binding the contract method 0x7ecebe00. // // Solidity: function nonces(address arg0) view returns(uint256) -func (_Curve *CurveCallerSession) Nonces(arg0 common.Address) (*big.Int, error) { - return _Curve.Contract.Nonces(&_Curve.CallOpts, arg0) +func (_StableSwapNG *StableSwapNGCallerSession) Nonces(arg0 common.Address) (*big.Int, error) { + return _StableSwapNG.Contract.Nonces(&_StableSwapNG.CallOpts, arg0) } // OffpegFeeMultiplier is a free data retrieval call binding the contract method 0x8edfdd5f. // // Solidity: function offpeg_fee_multiplier() view returns(uint256) -func (_Curve *CurveCaller) OffpegFeeMultiplier(opts *bind.CallOpts) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) OffpegFeeMultiplier(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "offpeg_fee_multiplier") + err := _StableSwapNG.contract.Call(opts, &out, "offpeg_fee_multiplier") if err != nil { return *new(*big.Int), err @@ -1192,23 +1192,23 @@ func (_Curve *CurveCaller) OffpegFeeMultiplier(opts *bind.CallOpts) (*big.Int, e // OffpegFeeMultiplier is a free data retrieval call binding the contract method 0x8edfdd5f. // // Solidity: function offpeg_fee_multiplier() view returns(uint256) -func (_Curve *CurveSession) OffpegFeeMultiplier() (*big.Int, error) { - return _Curve.Contract.OffpegFeeMultiplier(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) OffpegFeeMultiplier() (*big.Int, error) { + return _StableSwapNG.Contract.OffpegFeeMultiplier(&_StableSwapNG.CallOpts) } // OffpegFeeMultiplier is a free data retrieval call binding the contract method 0x8edfdd5f. // // Solidity: function offpeg_fee_multiplier() view returns(uint256) -func (_Curve *CurveCallerSession) OffpegFeeMultiplier() (*big.Int, error) { - return _Curve.Contract.OffpegFeeMultiplier(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) OffpegFeeMultiplier() (*big.Int, error) { + return _StableSwapNG.Contract.OffpegFeeMultiplier(&_StableSwapNG.CallOpts) } // PriceOracle is a free data retrieval call binding the contract method 0x68727653. // // Solidity: function price_oracle(uint256 i) view returns(uint256) -func (_Curve *CurveCaller) PriceOracle(opts *bind.CallOpts, i *big.Int) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) PriceOracle(opts *bind.CallOpts, i *big.Int) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "price_oracle", i) + err := _StableSwapNG.contract.Call(opts, &out, "price_oracle", i) if err != nil { return *new(*big.Int), err @@ -1223,23 +1223,23 @@ func (_Curve *CurveCaller) PriceOracle(opts *bind.CallOpts, i *big.Int) (*big.In // PriceOracle is a free data retrieval call binding the contract method 0x68727653. // // Solidity: function price_oracle(uint256 i) view returns(uint256) -func (_Curve *CurveSession) PriceOracle(i *big.Int) (*big.Int, error) { - return _Curve.Contract.PriceOracle(&_Curve.CallOpts, i) +func (_StableSwapNG *StableSwapNGSession) PriceOracle(i *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.PriceOracle(&_StableSwapNG.CallOpts, i) } // PriceOracle is a free data retrieval call binding the contract method 0x68727653. // // Solidity: function price_oracle(uint256 i) view returns(uint256) -func (_Curve *CurveCallerSession) PriceOracle(i *big.Int) (*big.Int, error) { - return _Curve.Contract.PriceOracle(&_Curve.CallOpts, i) +func (_StableSwapNG *StableSwapNGCallerSession) PriceOracle(i *big.Int) (*big.Int, error) { + return _StableSwapNG.Contract.PriceOracle(&_StableSwapNG.CallOpts, i) } // Salt is a free data retrieval call binding the contract method 0xbfa0b133. // // Solidity: function salt() view returns(bytes32) -func (_Curve *CurveCaller) Salt(opts *bind.CallOpts) ([32]byte, error) { +func (_StableSwapNG *StableSwapNGCaller) Salt(opts *bind.CallOpts) ([32]byte, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "salt") + err := _StableSwapNG.contract.Call(opts, &out, "salt") if err != nil { return *new([32]byte), err @@ -1254,23 +1254,23 @@ func (_Curve *CurveCaller) Salt(opts *bind.CallOpts) ([32]byte, error) { // Salt is a free data retrieval call binding the contract method 0xbfa0b133. // // Solidity: function salt() view returns(bytes32) -func (_Curve *CurveSession) Salt() ([32]byte, error) { - return _Curve.Contract.Salt(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) Salt() ([32]byte, error) { + return _StableSwapNG.Contract.Salt(&_StableSwapNG.CallOpts) } // Salt is a free data retrieval call binding the contract method 0xbfa0b133. // // Solidity: function salt() view returns(bytes32) -func (_Curve *CurveCallerSession) Salt() ([32]byte, error) { - return _Curve.Contract.Salt(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) Salt() ([32]byte, error) { + return _StableSwapNG.Contract.Salt(&_StableSwapNG.CallOpts) } // StoredRates is a free data retrieval call binding the contract method 0xfd0684b1. // // Solidity: function stored_rates() view returns(uint256[]) -func (_Curve *CurveCaller) StoredRates(opts *bind.CallOpts) ([]*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) StoredRates(opts *bind.CallOpts) ([]*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "stored_rates") + err := _StableSwapNG.contract.Call(opts, &out, "stored_rates") if err != nil { return *new([]*big.Int), err @@ -1285,23 +1285,23 @@ func (_Curve *CurveCaller) StoredRates(opts *bind.CallOpts) ([]*big.Int, error) // StoredRates is a free data retrieval call binding the contract method 0xfd0684b1. // // Solidity: function stored_rates() view returns(uint256[]) -func (_Curve *CurveSession) StoredRates() ([]*big.Int, error) { - return _Curve.Contract.StoredRates(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) StoredRates() ([]*big.Int, error) { + return _StableSwapNG.Contract.StoredRates(&_StableSwapNG.CallOpts) } // StoredRates is a free data retrieval call binding the contract method 0xfd0684b1. // // Solidity: function stored_rates() view returns(uint256[]) -func (_Curve *CurveCallerSession) StoredRates() ([]*big.Int, error) { - return _Curve.Contract.StoredRates(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) StoredRates() ([]*big.Int, error) { + return _StableSwapNG.Contract.StoredRates(&_StableSwapNG.CallOpts) } // Symbol is a free data retrieval call binding the contract method 0x95d89b41. // // Solidity: function symbol() view returns(string) -func (_Curve *CurveCaller) Symbol(opts *bind.CallOpts) (string, error) { +func (_StableSwapNG *StableSwapNGCaller) Symbol(opts *bind.CallOpts) (string, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "symbol") + err := _StableSwapNG.contract.Call(opts, &out, "symbol") if err != nil { return *new(string), err @@ -1316,23 +1316,23 @@ func (_Curve *CurveCaller) Symbol(opts *bind.CallOpts) (string, error) { // Symbol is a free data retrieval call binding the contract method 0x95d89b41. // // Solidity: function symbol() view returns(string) -func (_Curve *CurveSession) Symbol() (string, error) { - return _Curve.Contract.Symbol(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) Symbol() (string, error) { + return _StableSwapNG.Contract.Symbol(&_StableSwapNG.CallOpts) } // Symbol is a free data retrieval call binding the contract method 0x95d89b41. // // Solidity: function symbol() view returns(string) -func (_Curve *CurveCallerSession) Symbol() (string, error) { - return _Curve.Contract.Symbol(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) Symbol() (string, error) { + return _StableSwapNG.Contract.Symbol(&_StableSwapNG.CallOpts) } // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. // // Solidity: function totalSupply() view returns(uint256) -func (_Curve *CurveCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { +func (_StableSwapNG *StableSwapNGCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "totalSupply") + err := _StableSwapNG.contract.Call(opts, &out, "totalSupply") if err != nil { return *new(*big.Int), err @@ -1347,23 +1347,23 @@ func (_Curve *CurveCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. // // Solidity: function totalSupply() view returns(uint256) -func (_Curve *CurveSession) TotalSupply() (*big.Int, error) { - return _Curve.Contract.TotalSupply(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) TotalSupply() (*big.Int, error) { + return _StableSwapNG.Contract.TotalSupply(&_StableSwapNG.CallOpts) } // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. // // Solidity: function totalSupply() view returns(uint256) -func (_Curve *CurveCallerSession) TotalSupply() (*big.Int, error) { - return _Curve.Contract.TotalSupply(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) TotalSupply() (*big.Int, error) { + return _StableSwapNG.Contract.TotalSupply(&_StableSwapNG.CallOpts) } // Version is a free data retrieval call binding the contract method 0x54fd4d50. // // Solidity: function version() view returns(string) -func (_Curve *CurveCaller) Version(opts *bind.CallOpts) (string, error) { +func (_StableSwapNG *StableSwapNGCaller) Version(opts *bind.CallOpts) (string, error) { var out []interface{} - err := _Curve.contract.Call(opts, &out, "version") + err := _StableSwapNG.contract.Call(opts, &out, "version") if err != nil { return *new(string), err @@ -1378,482 +1378,482 @@ func (_Curve *CurveCaller) Version(opts *bind.CallOpts) (string, error) { // Version is a free data retrieval call binding the contract method 0x54fd4d50. // // Solidity: function version() view returns(string) -func (_Curve *CurveSession) Version() (string, error) { - return _Curve.Contract.Version(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGSession) Version() (string, error) { + return _StableSwapNG.Contract.Version(&_StableSwapNG.CallOpts) } // Version is a free data retrieval call binding the contract method 0x54fd4d50. // // Solidity: function version() view returns(string) -func (_Curve *CurveCallerSession) Version() (string, error) { - return _Curve.Contract.Version(&_Curve.CallOpts) +func (_StableSwapNG *StableSwapNGCallerSession) Version() (string, error) { + return _StableSwapNG.Contract.Version(&_StableSwapNG.CallOpts) } // AddLiquidity is a paid mutator transaction binding the contract method 0xb72df5de. // // Solidity: function add_liquidity(uint256[] _amounts, uint256 _min_mint_amount) returns(uint256) -func (_Curve *CurveTransactor) AddLiquidity(opts *bind.TransactOpts, _amounts []*big.Int, _min_mint_amount *big.Int) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "add_liquidity", _amounts, _min_mint_amount) +func (_StableSwapNG *StableSwapNGTransactor) AddLiquidity(opts *bind.TransactOpts, _amounts []*big.Int, _min_mint_amount *big.Int) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "add_liquidity", _amounts, _min_mint_amount) } // AddLiquidity is a paid mutator transaction binding the contract method 0xb72df5de. // // Solidity: function add_liquidity(uint256[] _amounts, uint256 _min_mint_amount) returns(uint256) -func (_Curve *CurveSession) AddLiquidity(_amounts []*big.Int, _min_mint_amount *big.Int) (*types.Transaction, error) { - return _Curve.Contract.AddLiquidity(&_Curve.TransactOpts, _amounts, _min_mint_amount) +func (_StableSwapNG *StableSwapNGSession) AddLiquidity(_amounts []*big.Int, _min_mint_amount *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.AddLiquidity(&_StableSwapNG.TransactOpts, _amounts, _min_mint_amount) } // AddLiquidity is a paid mutator transaction binding the contract method 0xb72df5de. // // Solidity: function add_liquidity(uint256[] _amounts, uint256 _min_mint_amount) returns(uint256) -func (_Curve *CurveTransactorSession) AddLiquidity(_amounts []*big.Int, _min_mint_amount *big.Int) (*types.Transaction, error) { - return _Curve.Contract.AddLiquidity(&_Curve.TransactOpts, _amounts, _min_mint_amount) +func (_StableSwapNG *StableSwapNGTransactorSession) AddLiquidity(_amounts []*big.Int, _min_mint_amount *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.AddLiquidity(&_StableSwapNG.TransactOpts, _amounts, _min_mint_amount) } // AddLiquidity0 is a paid mutator transaction binding the contract method 0xa7256d09. // // Solidity: function add_liquidity(uint256[] _amounts, uint256 _min_mint_amount, address _receiver) returns(uint256) -func (_Curve *CurveTransactor) AddLiquidity0(opts *bind.TransactOpts, _amounts []*big.Int, _min_mint_amount *big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "add_liquidity0", _amounts, _min_mint_amount, _receiver) +func (_StableSwapNG *StableSwapNGTransactor) AddLiquidity0(opts *bind.TransactOpts, _amounts []*big.Int, _min_mint_amount *big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "add_liquidity0", _amounts, _min_mint_amount, _receiver) } // AddLiquidity0 is a paid mutator transaction binding the contract method 0xa7256d09. // // Solidity: function add_liquidity(uint256[] _amounts, uint256 _min_mint_amount, address _receiver) returns(uint256) -func (_Curve *CurveSession) AddLiquidity0(_amounts []*big.Int, _min_mint_amount *big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.Contract.AddLiquidity0(&_Curve.TransactOpts, _amounts, _min_mint_amount, _receiver) +func (_StableSwapNG *StableSwapNGSession) AddLiquidity0(_amounts []*big.Int, _min_mint_amount *big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.Contract.AddLiquidity0(&_StableSwapNG.TransactOpts, _amounts, _min_mint_amount, _receiver) } // AddLiquidity0 is a paid mutator transaction binding the contract method 0xa7256d09. // // Solidity: function add_liquidity(uint256[] _amounts, uint256 _min_mint_amount, address _receiver) returns(uint256) -func (_Curve *CurveTransactorSession) AddLiquidity0(_amounts []*big.Int, _min_mint_amount *big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.Contract.AddLiquidity0(&_Curve.TransactOpts, _amounts, _min_mint_amount, _receiver) +func (_StableSwapNG *StableSwapNGTransactorSession) AddLiquidity0(_amounts []*big.Int, _min_mint_amount *big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.Contract.AddLiquidity0(&_StableSwapNG.TransactOpts, _amounts, _min_mint_amount, _receiver) } // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. // // Solidity: function approve(address _spender, uint256 _value) returns(bool) -func (_Curve *CurveTransactor) Approve(opts *bind.TransactOpts, _spender common.Address, _value *big.Int) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "approve", _spender, _value) +func (_StableSwapNG *StableSwapNGTransactor) Approve(opts *bind.TransactOpts, _spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "approve", _spender, _value) } // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. // // Solidity: function approve(address _spender, uint256 _value) returns(bool) -func (_Curve *CurveSession) Approve(_spender common.Address, _value *big.Int) (*types.Transaction, error) { - return _Curve.Contract.Approve(&_Curve.TransactOpts, _spender, _value) +func (_StableSwapNG *StableSwapNGSession) Approve(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.Approve(&_StableSwapNG.TransactOpts, _spender, _value) } // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. // // Solidity: function approve(address _spender, uint256 _value) returns(bool) -func (_Curve *CurveTransactorSession) Approve(_spender common.Address, _value *big.Int) (*types.Transaction, error) { - return _Curve.Contract.Approve(&_Curve.TransactOpts, _spender, _value) +func (_StableSwapNG *StableSwapNGTransactorSession) Approve(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.Approve(&_StableSwapNG.TransactOpts, _spender, _value) } // Exchange is a paid mutator transaction binding the contract method 0x3df02124. // // Solidity: function exchange(int128 i, int128 j, uint256 _dx, uint256 _min_dy) returns(uint256) -func (_Curve *CurveTransactor) Exchange(opts *bind.TransactOpts, i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "exchange", i, j, _dx, _min_dy) +func (_StableSwapNG *StableSwapNGTransactor) Exchange(opts *bind.TransactOpts, i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "exchange", i, j, _dx, _min_dy) } // Exchange is a paid mutator transaction binding the contract method 0x3df02124. // // Solidity: function exchange(int128 i, int128 j, uint256 _dx, uint256 _min_dy) returns(uint256) -func (_Curve *CurveSession) Exchange(i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int) (*types.Transaction, error) { - return _Curve.Contract.Exchange(&_Curve.TransactOpts, i, j, _dx, _min_dy) +func (_StableSwapNG *StableSwapNGSession) Exchange(i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.Exchange(&_StableSwapNG.TransactOpts, i, j, _dx, _min_dy) } // Exchange is a paid mutator transaction binding the contract method 0x3df02124. // // Solidity: function exchange(int128 i, int128 j, uint256 _dx, uint256 _min_dy) returns(uint256) -func (_Curve *CurveTransactorSession) Exchange(i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int) (*types.Transaction, error) { - return _Curve.Contract.Exchange(&_Curve.TransactOpts, i, j, _dx, _min_dy) +func (_StableSwapNG *StableSwapNGTransactorSession) Exchange(i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.Exchange(&_StableSwapNG.TransactOpts, i, j, _dx, _min_dy) } // Exchange0 is a paid mutator transaction binding the contract method 0xddc1f59d. // // Solidity: function exchange(int128 i, int128 j, uint256 _dx, uint256 _min_dy, address _receiver) returns(uint256) -func (_Curve *CurveTransactor) Exchange0(opts *bind.TransactOpts, i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "exchange0", i, j, _dx, _min_dy, _receiver) +func (_StableSwapNG *StableSwapNGTransactor) Exchange0(opts *bind.TransactOpts, i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "exchange0", i, j, _dx, _min_dy, _receiver) } // Exchange0 is a paid mutator transaction binding the contract method 0xddc1f59d. // // Solidity: function exchange(int128 i, int128 j, uint256 _dx, uint256 _min_dy, address _receiver) returns(uint256) -func (_Curve *CurveSession) Exchange0(i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.Contract.Exchange0(&_Curve.TransactOpts, i, j, _dx, _min_dy, _receiver) +func (_StableSwapNG *StableSwapNGSession) Exchange0(i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.Contract.Exchange0(&_StableSwapNG.TransactOpts, i, j, _dx, _min_dy, _receiver) } // Exchange0 is a paid mutator transaction binding the contract method 0xddc1f59d. // // Solidity: function exchange(int128 i, int128 j, uint256 _dx, uint256 _min_dy, address _receiver) returns(uint256) -func (_Curve *CurveTransactorSession) Exchange0(i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.Contract.Exchange0(&_Curve.TransactOpts, i, j, _dx, _min_dy, _receiver) +func (_StableSwapNG *StableSwapNGTransactorSession) Exchange0(i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.Contract.Exchange0(&_StableSwapNG.TransactOpts, i, j, _dx, _min_dy, _receiver) } // ExchangeReceived is a paid mutator transaction binding the contract method 0x7e3db030. // // Solidity: function exchange_received(int128 i, int128 j, uint256 _dx, uint256 _min_dy) returns(uint256) -func (_Curve *CurveTransactor) ExchangeReceived(opts *bind.TransactOpts, i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "exchange_received", i, j, _dx, _min_dy) +func (_StableSwapNG *StableSwapNGTransactor) ExchangeReceived(opts *bind.TransactOpts, i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "exchange_received", i, j, _dx, _min_dy) } // ExchangeReceived is a paid mutator transaction binding the contract method 0x7e3db030. // // Solidity: function exchange_received(int128 i, int128 j, uint256 _dx, uint256 _min_dy) returns(uint256) -func (_Curve *CurveSession) ExchangeReceived(i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int) (*types.Transaction, error) { - return _Curve.Contract.ExchangeReceived(&_Curve.TransactOpts, i, j, _dx, _min_dy) +func (_StableSwapNG *StableSwapNGSession) ExchangeReceived(i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.ExchangeReceived(&_StableSwapNG.TransactOpts, i, j, _dx, _min_dy) } // ExchangeReceived is a paid mutator transaction binding the contract method 0x7e3db030. // // Solidity: function exchange_received(int128 i, int128 j, uint256 _dx, uint256 _min_dy) returns(uint256) -func (_Curve *CurveTransactorSession) ExchangeReceived(i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int) (*types.Transaction, error) { - return _Curve.Contract.ExchangeReceived(&_Curve.TransactOpts, i, j, _dx, _min_dy) +func (_StableSwapNG *StableSwapNGTransactorSession) ExchangeReceived(i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.ExchangeReceived(&_StableSwapNG.TransactOpts, i, j, _dx, _min_dy) } // ExchangeReceived0 is a paid mutator transaction binding the contract method 0xafb43012. // // Solidity: function exchange_received(int128 i, int128 j, uint256 _dx, uint256 _min_dy, address _receiver) returns(uint256) -func (_Curve *CurveTransactor) ExchangeReceived0(opts *bind.TransactOpts, i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "exchange_received0", i, j, _dx, _min_dy, _receiver) +func (_StableSwapNG *StableSwapNGTransactor) ExchangeReceived0(opts *bind.TransactOpts, i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "exchange_received0", i, j, _dx, _min_dy, _receiver) } // ExchangeReceived0 is a paid mutator transaction binding the contract method 0xafb43012. // // Solidity: function exchange_received(int128 i, int128 j, uint256 _dx, uint256 _min_dy, address _receiver) returns(uint256) -func (_Curve *CurveSession) ExchangeReceived0(i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.Contract.ExchangeReceived0(&_Curve.TransactOpts, i, j, _dx, _min_dy, _receiver) +func (_StableSwapNG *StableSwapNGSession) ExchangeReceived0(i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.Contract.ExchangeReceived0(&_StableSwapNG.TransactOpts, i, j, _dx, _min_dy, _receiver) } // ExchangeReceived0 is a paid mutator transaction binding the contract method 0xafb43012. // // Solidity: function exchange_received(int128 i, int128 j, uint256 _dx, uint256 _min_dy, address _receiver) returns(uint256) -func (_Curve *CurveTransactorSession) ExchangeReceived0(i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.Contract.ExchangeReceived0(&_Curve.TransactOpts, i, j, _dx, _min_dy, _receiver) +func (_StableSwapNG *StableSwapNGTransactorSession) ExchangeReceived0(i *big.Int, j *big.Int, _dx *big.Int, _min_dy *big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.Contract.ExchangeReceived0(&_StableSwapNG.TransactOpts, i, j, _dx, _min_dy, _receiver) } // Permit is a paid mutator transaction binding the contract method 0xd505accf. // // Solidity: function permit(address _owner, address _spender, uint256 _value, uint256 _deadline, uint8 _v, bytes32 _r, bytes32 _s) returns(bool) -func (_Curve *CurveTransactor) Permit(opts *bind.TransactOpts, _owner common.Address, _spender common.Address, _value *big.Int, _deadline *big.Int, _v uint8, _r [32]byte, _s [32]byte) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "permit", _owner, _spender, _value, _deadline, _v, _r, _s) +func (_StableSwapNG *StableSwapNGTransactor) Permit(opts *bind.TransactOpts, _owner common.Address, _spender common.Address, _value *big.Int, _deadline *big.Int, _v uint8, _r [32]byte, _s [32]byte) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "permit", _owner, _spender, _value, _deadline, _v, _r, _s) } // Permit is a paid mutator transaction binding the contract method 0xd505accf. // // Solidity: function permit(address _owner, address _spender, uint256 _value, uint256 _deadline, uint8 _v, bytes32 _r, bytes32 _s) returns(bool) -func (_Curve *CurveSession) Permit(_owner common.Address, _spender common.Address, _value *big.Int, _deadline *big.Int, _v uint8, _r [32]byte, _s [32]byte) (*types.Transaction, error) { - return _Curve.Contract.Permit(&_Curve.TransactOpts, _owner, _spender, _value, _deadline, _v, _r, _s) +func (_StableSwapNG *StableSwapNGSession) Permit(_owner common.Address, _spender common.Address, _value *big.Int, _deadline *big.Int, _v uint8, _r [32]byte, _s [32]byte) (*types.Transaction, error) { + return _StableSwapNG.Contract.Permit(&_StableSwapNG.TransactOpts, _owner, _spender, _value, _deadline, _v, _r, _s) } // Permit is a paid mutator transaction binding the contract method 0xd505accf. // // Solidity: function permit(address _owner, address _spender, uint256 _value, uint256 _deadline, uint8 _v, bytes32 _r, bytes32 _s) returns(bool) -func (_Curve *CurveTransactorSession) Permit(_owner common.Address, _spender common.Address, _value *big.Int, _deadline *big.Int, _v uint8, _r [32]byte, _s [32]byte) (*types.Transaction, error) { - return _Curve.Contract.Permit(&_Curve.TransactOpts, _owner, _spender, _value, _deadline, _v, _r, _s) +func (_StableSwapNG *StableSwapNGTransactorSession) Permit(_owner common.Address, _spender common.Address, _value *big.Int, _deadline *big.Int, _v uint8, _r [32]byte, _s [32]byte) (*types.Transaction, error) { + return _StableSwapNG.Contract.Permit(&_StableSwapNG.TransactOpts, _owner, _spender, _value, _deadline, _v, _r, _s) } // RampA is a paid mutator transaction binding the contract method 0x3c157e64. // // Solidity: function ramp_A(uint256 _future_A, uint256 _future_time) returns() -func (_Curve *CurveTransactor) RampA(opts *bind.TransactOpts, _future_A *big.Int, _future_time *big.Int) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "ramp_A", _future_A, _future_time) +func (_StableSwapNG *StableSwapNGTransactor) RampA(opts *bind.TransactOpts, _future_A *big.Int, _future_time *big.Int) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "ramp_A", _future_A, _future_time) } // RampA is a paid mutator transaction binding the contract method 0x3c157e64. // // Solidity: function ramp_A(uint256 _future_A, uint256 _future_time) returns() -func (_Curve *CurveSession) RampA(_future_A *big.Int, _future_time *big.Int) (*types.Transaction, error) { - return _Curve.Contract.RampA(&_Curve.TransactOpts, _future_A, _future_time) +func (_StableSwapNG *StableSwapNGSession) RampA(_future_A *big.Int, _future_time *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.RampA(&_StableSwapNG.TransactOpts, _future_A, _future_time) } // RampA is a paid mutator transaction binding the contract method 0x3c157e64. // // Solidity: function ramp_A(uint256 _future_A, uint256 _future_time) returns() -func (_Curve *CurveTransactorSession) RampA(_future_A *big.Int, _future_time *big.Int) (*types.Transaction, error) { - return _Curve.Contract.RampA(&_Curve.TransactOpts, _future_A, _future_time) +func (_StableSwapNG *StableSwapNGTransactorSession) RampA(_future_A *big.Int, _future_time *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.RampA(&_StableSwapNG.TransactOpts, _future_A, _future_time) } // RemoveLiquidity is a paid mutator transaction binding the contract method 0xd40ddb8c. // // Solidity: function remove_liquidity(uint256 _burn_amount, uint256[] _min_amounts) returns(uint256[]) -func (_Curve *CurveTransactor) RemoveLiquidity(opts *bind.TransactOpts, _burn_amount *big.Int, _min_amounts []*big.Int) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "remove_liquidity", _burn_amount, _min_amounts) +func (_StableSwapNG *StableSwapNGTransactor) RemoveLiquidity(opts *bind.TransactOpts, _burn_amount *big.Int, _min_amounts []*big.Int) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "remove_liquidity", _burn_amount, _min_amounts) } // RemoveLiquidity is a paid mutator transaction binding the contract method 0xd40ddb8c. // // Solidity: function remove_liquidity(uint256 _burn_amount, uint256[] _min_amounts) returns(uint256[]) -func (_Curve *CurveSession) RemoveLiquidity(_burn_amount *big.Int, _min_amounts []*big.Int) (*types.Transaction, error) { - return _Curve.Contract.RemoveLiquidity(&_Curve.TransactOpts, _burn_amount, _min_amounts) +func (_StableSwapNG *StableSwapNGSession) RemoveLiquidity(_burn_amount *big.Int, _min_amounts []*big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.RemoveLiquidity(&_StableSwapNG.TransactOpts, _burn_amount, _min_amounts) } // RemoveLiquidity is a paid mutator transaction binding the contract method 0xd40ddb8c. // // Solidity: function remove_liquidity(uint256 _burn_amount, uint256[] _min_amounts) returns(uint256[]) -func (_Curve *CurveTransactorSession) RemoveLiquidity(_burn_amount *big.Int, _min_amounts []*big.Int) (*types.Transaction, error) { - return _Curve.Contract.RemoveLiquidity(&_Curve.TransactOpts, _burn_amount, _min_amounts) +func (_StableSwapNG *StableSwapNGTransactorSession) RemoveLiquidity(_burn_amount *big.Int, _min_amounts []*big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.RemoveLiquidity(&_StableSwapNG.TransactOpts, _burn_amount, _min_amounts) } // RemoveLiquidity0 is a paid mutator transaction binding the contract method 0x5e604cd2. // // Solidity: function remove_liquidity(uint256 _burn_amount, uint256[] _min_amounts, address _receiver) returns(uint256[]) -func (_Curve *CurveTransactor) RemoveLiquidity0(opts *bind.TransactOpts, _burn_amount *big.Int, _min_amounts []*big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "remove_liquidity0", _burn_amount, _min_amounts, _receiver) +func (_StableSwapNG *StableSwapNGTransactor) RemoveLiquidity0(opts *bind.TransactOpts, _burn_amount *big.Int, _min_amounts []*big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "remove_liquidity0", _burn_amount, _min_amounts, _receiver) } // RemoveLiquidity0 is a paid mutator transaction binding the contract method 0x5e604cd2. // // Solidity: function remove_liquidity(uint256 _burn_amount, uint256[] _min_amounts, address _receiver) returns(uint256[]) -func (_Curve *CurveSession) RemoveLiquidity0(_burn_amount *big.Int, _min_amounts []*big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.Contract.RemoveLiquidity0(&_Curve.TransactOpts, _burn_amount, _min_amounts, _receiver) +func (_StableSwapNG *StableSwapNGSession) RemoveLiquidity0(_burn_amount *big.Int, _min_amounts []*big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.Contract.RemoveLiquidity0(&_StableSwapNG.TransactOpts, _burn_amount, _min_amounts, _receiver) } // RemoveLiquidity0 is a paid mutator transaction binding the contract method 0x5e604cd2. // // Solidity: function remove_liquidity(uint256 _burn_amount, uint256[] _min_amounts, address _receiver) returns(uint256[]) -func (_Curve *CurveTransactorSession) RemoveLiquidity0(_burn_amount *big.Int, _min_amounts []*big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.Contract.RemoveLiquidity0(&_Curve.TransactOpts, _burn_amount, _min_amounts, _receiver) +func (_StableSwapNG *StableSwapNGTransactorSession) RemoveLiquidity0(_burn_amount *big.Int, _min_amounts []*big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.Contract.RemoveLiquidity0(&_StableSwapNG.TransactOpts, _burn_amount, _min_amounts, _receiver) } // RemoveLiquidity1 is a paid mutator transaction binding the contract method 0x2969e04a. // // Solidity: function remove_liquidity(uint256 _burn_amount, uint256[] _min_amounts, address _receiver, bool _claim_admin_fees) returns(uint256[]) -func (_Curve *CurveTransactor) RemoveLiquidity1(opts *bind.TransactOpts, _burn_amount *big.Int, _min_amounts []*big.Int, _receiver common.Address, _claim_admin_fees bool) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "remove_liquidity1", _burn_amount, _min_amounts, _receiver, _claim_admin_fees) +func (_StableSwapNG *StableSwapNGTransactor) RemoveLiquidity1(opts *bind.TransactOpts, _burn_amount *big.Int, _min_amounts []*big.Int, _receiver common.Address, _claim_admin_fees bool) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "remove_liquidity1", _burn_amount, _min_amounts, _receiver, _claim_admin_fees) } // RemoveLiquidity1 is a paid mutator transaction binding the contract method 0x2969e04a. // // Solidity: function remove_liquidity(uint256 _burn_amount, uint256[] _min_amounts, address _receiver, bool _claim_admin_fees) returns(uint256[]) -func (_Curve *CurveSession) RemoveLiquidity1(_burn_amount *big.Int, _min_amounts []*big.Int, _receiver common.Address, _claim_admin_fees bool) (*types.Transaction, error) { - return _Curve.Contract.RemoveLiquidity1(&_Curve.TransactOpts, _burn_amount, _min_amounts, _receiver, _claim_admin_fees) +func (_StableSwapNG *StableSwapNGSession) RemoveLiquidity1(_burn_amount *big.Int, _min_amounts []*big.Int, _receiver common.Address, _claim_admin_fees bool) (*types.Transaction, error) { + return _StableSwapNG.Contract.RemoveLiquidity1(&_StableSwapNG.TransactOpts, _burn_amount, _min_amounts, _receiver, _claim_admin_fees) } // RemoveLiquidity1 is a paid mutator transaction binding the contract method 0x2969e04a. // // Solidity: function remove_liquidity(uint256 _burn_amount, uint256[] _min_amounts, address _receiver, bool _claim_admin_fees) returns(uint256[]) -func (_Curve *CurveTransactorSession) RemoveLiquidity1(_burn_amount *big.Int, _min_amounts []*big.Int, _receiver common.Address, _claim_admin_fees bool) (*types.Transaction, error) { - return _Curve.Contract.RemoveLiquidity1(&_Curve.TransactOpts, _burn_amount, _min_amounts, _receiver, _claim_admin_fees) +func (_StableSwapNG *StableSwapNGTransactorSession) RemoveLiquidity1(_burn_amount *big.Int, _min_amounts []*big.Int, _receiver common.Address, _claim_admin_fees bool) (*types.Transaction, error) { + return _StableSwapNG.Contract.RemoveLiquidity1(&_StableSwapNG.TransactOpts, _burn_amount, _min_amounts, _receiver, _claim_admin_fees) } // RemoveLiquidityImbalance is a paid mutator transaction binding the contract method 0x7706db75. // // Solidity: function remove_liquidity_imbalance(uint256[] _amounts, uint256 _max_burn_amount) returns(uint256) -func (_Curve *CurveTransactor) RemoveLiquidityImbalance(opts *bind.TransactOpts, _amounts []*big.Int, _max_burn_amount *big.Int) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "remove_liquidity_imbalance", _amounts, _max_burn_amount) +func (_StableSwapNG *StableSwapNGTransactor) RemoveLiquidityImbalance(opts *bind.TransactOpts, _amounts []*big.Int, _max_burn_amount *big.Int) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "remove_liquidity_imbalance", _amounts, _max_burn_amount) } // RemoveLiquidityImbalance is a paid mutator transaction binding the contract method 0x7706db75. // // Solidity: function remove_liquidity_imbalance(uint256[] _amounts, uint256 _max_burn_amount) returns(uint256) -func (_Curve *CurveSession) RemoveLiquidityImbalance(_amounts []*big.Int, _max_burn_amount *big.Int) (*types.Transaction, error) { - return _Curve.Contract.RemoveLiquidityImbalance(&_Curve.TransactOpts, _amounts, _max_burn_amount) +func (_StableSwapNG *StableSwapNGSession) RemoveLiquidityImbalance(_amounts []*big.Int, _max_burn_amount *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.RemoveLiquidityImbalance(&_StableSwapNG.TransactOpts, _amounts, _max_burn_amount) } // RemoveLiquidityImbalance is a paid mutator transaction binding the contract method 0x7706db75. // // Solidity: function remove_liquidity_imbalance(uint256[] _amounts, uint256 _max_burn_amount) returns(uint256) -func (_Curve *CurveTransactorSession) RemoveLiquidityImbalance(_amounts []*big.Int, _max_burn_amount *big.Int) (*types.Transaction, error) { - return _Curve.Contract.RemoveLiquidityImbalance(&_Curve.TransactOpts, _amounts, _max_burn_amount) +func (_StableSwapNG *StableSwapNGTransactorSession) RemoveLiquidityImbalance(_amounts []*big.Int, _max_burn_amount *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.RemoveLiquidityImbalance(&_StableSwapNG.TransactOpts, _amounts, _max_burn_amount) } // RemoveLiquidityImbalance0 is a paid mutator transaction binding the contract method 0x4a6e32c6. // // Solidity: function remove_liquidity_imbalance(uint256[] _amounts, uint256 _max_burn_amount, address _receiver) returns(uint256) -func (_Curve *CurveTransactor) RemoveLiquidityImbalance0(opts *bind.TransactOpts, _amounts []*big.Int, _max_burn_amount *big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "remove_liquidity_imbalance0", _amounts, _max_burn_amount, _receiver) +func (_StableSwapNG *StableSwapNGTransactor) RemoveLiquidityImbalance0(opts *bind.TransactOpts, _amounts []*big.Int, _max_burn_amount *big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "remove_liquidity_imbalance0", _amounts, _max_burn_amount, _receiver) } // RemoveLiquidityImbalance0 is a paid mutator transaction binding the contract method 0x4a6e32c6. // // Solidity: function remove_liquidity_imbalance(uint256[] _amounts, uint256 _max_burn_amount, address _receiver) returns(uint256) -func (_Curve *CurveSession) RemoveLiquidityImbalance0(_amounts []*big.Int, _max_burn_amount *big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.Contract.RemoveLiquidityImbalance0(&_Curve.TransactOpts, _amounts, _max_burn_amount, _receiver) +func (_StableSwapNG *StableSwapNGSession) RemoveLiquidityImbalance0(_amounts []*big.Int, _max_burn_amount *big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.Contract.RemoveLiquidityImbalance0(&_StableSwapNG.TransactOpts, _amounts, _max_burn_amount, _receiver) } // RemoveLiquidityImbalance0 is a paid mutator transaction binding the contract method 0x4a6e32c6. // // Solidity: function remove_liquidity_imbalance(uint256[] _amounts, uint256 _max_burn_amount, address _receiver) returns(uint256) -func (_Curve *CurveTransactorSession) RemoveLiquidityImbalance0(_amounts []*big.Int, _max_burn_amount *big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.Contract.RemoveLiquidityImbalance0(&_Curve.TransactOpts, _amounts, _max_burn_amount, _receiver) +func (_StableSwapNG *StableSwapNGTransactorSession) RemoveLiquidityImbalance0(_amounts []*big.Int, _max_burn_amount *big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.Contract.RemoveLiquidityImbalance0(&_StableSwapNG.TransactOpts, _amounts, _max_burn_amount, _receiver) } // RemoveLiquidityOneCoin is a paid mutator transaction binding the contract method 0x1a4d01d2. // // Solidity: function remove_liquidity_one_coin(uint256 _burn_amount, int128 i, uint256 _min_received) returns(uint256) -func (_Curve *CurveTransactor) RemoveLiquidityOneCoin(opts *bind.TransactOpts, _burn_amount *big.Int, i *big.Int, _min_received *big.Int) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "remove_liquidity_one_coin", _burn_amount, i, _min_received) +func (_StableSwapNG *StableSwapNGTransactor) RemoveLiquidityOneCoin(opts *bind.TransactOpts, _burn_amount *big.Int, i *big.Int, _min_received *big.Int) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "remove_liquidity_one_coin", _burn_amount, i, _min_received) } // RemoveLiquidityOneCoin is a paid mutator transaction binding the contract method 0x1a4d01d2. // // Solidity: function remove_liquidity_one_coin(uint256 _burn_amount, int128 i, uint256 _min_received) returns(uint256) -func (_Curve *CurveSession) RemoveLiquidityOneCoin(_burn_amount *big.Int, i *big.Int, _min_received *big.Int) (*types.Transaction, error) { - return _Curve.Contract.RemoveLiquidityOneCoin(&_Curve.TransactOpts, _burn_amount, i, _min_received) +func (_StableSwapNG *StableSwapNGSession) RemoveLiquidityOneCoin(_burn_amount *big.Int, i *big.Int, _min_received *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.RemoveLiquidityOneCoin(&_StableSwapNG.TransactOpts, _burn_amount, i, _min_received) } // RemoveLiquidityOneCoin is a paid mutator transaction binding the contract method 0x1a4d01d2. // // Solidity: function remove_liquidity_one_coin(uint256 _burn_amount, int128 i, uint256 _min_received) returns(uint256) -func (_Curve *CurveTransactorSession) RemoveLiquidityOneCoin(_burn_amount *big.Int, i *big.Int, _min_received *big.Int) (*types.Transaction, error) { - return _Curve.Contract.RemoveLiquidityOneCoin(&_Curve.TransactOpts, _burn_amount, i, _min_received) +func (_StableSwapNG *StableSwapNGTransactorSession) RemoveLiquidityOneCoin(_burn_amount *big.Int, i *big.Int, _min_received *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.RemoveLiquidityOneCoin(&_StableSwapNG.TransactOpts, _burn_amount, i, _min_received) } // RemoveLiquidityOneCoin0 is a paid mutator transaction binding the contract method 0x081579a5. // // Solidity: function remove_liquidity_one_coin(uint256 _burn_amount, int128 i, uint256 _min_received, address _receiver) returns(uint256) -func (_Curve *CurveTransactor) RemoveLiquidityOneCoin0(opts *bind.TransactOpts, _burn_amount *big.Int, i *big.Int, _min_received *big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "remove_liquidity_one_coin0", _burn_amount, i, _min_received, _receiver) +func (_StableSwapNG *StableSwapNGTransactor) RemoveLiquidityOneCoin0(opts *bind.TransactOpts, _burn_amount *big.Int, i *big.Int, _min_received *big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "remove_liquidity_one_coin0", _burn_amount, i, _min_received, _receiver) } // RemoveLiquidityOneCoin0 is a paid mutator transaction binding the contract method 0x081579a5. // // Solidity: function remove_liquidity_one_coin(uint256 _burn_amount, int128 i, uint256 _min_received, address _receiver) returns(uint256) -func (_Curve *CurveSession) RemoveLiquidityOneCoin0(_burn_amount *big.Int, i *big.Int, _min_received *big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.Contract.RemoveLiquidityOneCoin0(&_Curve.TransactOpts, _burn_amount, i, _min_received, _receiver) +func (_StableSwapNG *StableSwapNGSession) RemoveLiquidityOneCoin0(_burn_amount *big.Int, i *big.Int, _min_received *big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.Contract.RemoveLiquidityOneCoin0(&_StableSwapNG.TransactOpts, _burn_amount, i, _min_received, _receiver) } // RemoveLiquidityOneCoin0 is a paid mutator transaction binding the contract method 0x081579a5. // // Solidity: function remove_liquidity_one_coin(uint256 _burn_amount, int128 i, uint256 _min_received, address _receiver) returns(uint256) -func (_Curve *CurveTransactorSession) RemoveLiquidityOneCoin0(_burn_amount *big.Int, i *big.Int, _min_received *big.Int, _receiver common.Address) (*types.Transaction, error) { - return _Curve.Contract.RemoveLiquidityOneCoin0(&_Curve.TransactOpts, _burn_amount, i, _min_received, _receiver) +func (_StableSwapNG *StableSwapNGTransactorSession) RemoveLiquidityOneCoin0(_burn_amount *big.Int, i *big.Int, _min_received *big.Int, _receiver common.Address) (*types.Transaction, error) { + return _StableSwapNG.Contract.RemoveLiquidityOneCoin0(&_StableSwapNG.TransactOpts, _burn_amount, i, _min_received, _receiver) } // SetMaExpTime is a paid mutator transaction binding the contract method 0x65bbea6b. // // Solidity: function set_ma_exp_time(uint256 _ma_exp_time, uint256 _D_ma_time) returns() -func (_Curve *CurveTransactor) SetMaExpTime(opts *bind.TransactOpts, _ma_exp_time *big.Int, _D_ma_time *big.Int) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "set_ma_exp_time", _ma_exp_time, _D_ma_time) +func (_StableSwapNG *StableSwapNGTransactor) SetMaExpTime(opts *bind.TransactOpts, _ma_exp_time *big.Int, _D_ma_time *big.Int) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "set_ma_exp_time", _ma_exp_time, _D_ma_time) } // SetMaExpTime is a paid mutator transaction binding the contract method 0x65bbea6b. // // Solidity: function set_ma_exp_time(uint256 _ma_exp_time, uint256 _D_ma_time) returns() -func (_Curve *CurveSession) SetMaExpTime(_ma_exp_time *big.Int, _D_ma_time *big.Int) (*types.Transaction, error) { - return _Curve.Contract.SetMaExpTime(&_Curve.TransactOpts, _ma_exp_time, _D_ma_time) +func (_StableSwapNG *StableSwapNGSession) SetMaExpTime(_ma_exp_time *big.Int, _D_ma_time *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.SetMaExpTime(&_StableSwapNG.TransactOpts, _ma_exp_time, _D_ma_time) } // SetMaExpTime is a paid mutator transaction binding the contract method 0x65bbea6b. // // Solidity: function set_ma_exp_time(uint256 _ma_exp_time, uint256 _D_ma_time) returns() -func (_Curve *CurveTransactorSession) SetMaExpTime(_ma_exp_time *big.Int, _D_ma_time *big.Int) (*types.Transaction, error) { - return _Curve.Contract.SetMaExpTime(&_Curve.TransactOpts, _ma_exp_time, _D_ma_time) +func (_StableSwapNG *StableSwapNGTransactorSession) SetMaExpTime(_ma_exp_time *big.Int, _D_ma_time *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.SetMaExpTime(&_StableSwapNG.TransactOpts, _ma_exp_time, _D_ma_time) } // SetNewFee is a paid mutator transaction binding the contract method 0x015c2838. // // Solidity: function set_new_fee(uint256 _new_fee, uint256 _new_offpeg_fee_multiplier) returns() -func (_Curve *CurveTransactor) SetNewFee(opts *bind.TransactOpts, _new_fee *big.Int, _new_offpeg_fee_multiplier *big.Int) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "set_new_fee", _new_fee, _new_offpeg_fee_multiplier) +func (_StableSwapNG *StableSwapNGTransactor) SetNewFee(opts *bind.TransactOpts, _new_fee *big.Int, _new_offpeg_fee_multiplier *big.Int) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "set_new_fee", _new_fee, _new_offpeg_fee_multiplier) } // SetNewFee is a paid mutator transaction binding the contract method 0x015c2838. // // Solidity: function set_new_fee(uint256 _new_fee, uint256 _new_offpeg_fee_multiplier) returns() -func (_Curve *CurveSession) SetNewFee(_new_fee *big.Int, _new_offpeg_fee_multiplier *big.Int) (*types.Transaction, error) { - return _Curve.Contract.SetNewFee(&_Curve.TransactOpts, _new_fee, _new_offpeg_fee_multiplier) +func (_StableSwapNG *StableSwapNGSession) SetNewFee(_new_fee *big.Int, _new_offpeg_fee_multiplier *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.SetNewFee(&_StableSwapNG.TransactOpts, _new_fee, _new_offpeg_fee_multiplier) } // SetNewFee is a paid mutator transaction binding the contract method 0x015c2838. // // Solidity: function set_new_fee(uint256 _new_fee, uint256 _new_offpeg_fee_multiplier) returns() -func (_Curve *CurveTransactorSession) SetNewFee(_new_fee *big.Int, _new_offpeg_fee_multiplier *big.Int) (*types.Transaction, error) { - return _Curve.Contract.SetNewFee(&_Curve.TransactOpts, _new_fee, _new_offpeg_fee_multiplier) +func (_StableSwapNG *StableSwapNGTransactorSession) SetNewFee(_new_fee *big.Int, _new_offpeg_fee_multiplier *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.SetNewFee(&_StableSwapNG.TransactOpts, _new_fee, _new_offpeg_fee_multiplier) } // StopRampA is a paid mutator transaction binding the contract method 0x551a6588. // // Solidity: function stop_ramp_A() returns() -func (_Curve *CurveTransactor) StopRampA(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "stop_ramp_A") +func (_StableSwapNG *StableSwapNGTransactor) StopRampA(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "stop_ramp_A") } // StopRampA is a paid mutator transaction binding the contract method 0x551a6588. // // Solidity: function stop_ramp_A() returns() -func (_Curve *CurveSession) StopRampA() (*types.Transaction, error) { - return _Curve.Contract.StopRampA(&_Curve.TransactOpts) +func (_StableSwapNG *StableSwapNGSession) StopRampA() (*types.Transaction, error) { + return _StableSwapNG.Contract.StopRampA(&_StableSwapNG.TransactOpts) } // StopRampA is a paid mutator transaction binding the contract method 0x551a6588. // // Solidity: function stop_ramp_A() returns() -func (_Curve *CurveTransactorSession) StopRampA() (*types.Transaction, error) { - return _Curve.Contract.StopRampA(&_Curve.TransactOpts) +func (_StableSwapNG *StableSwapNGTransactorSession) StopRampA() (*types.Transaction, error) { + return _StableSwapNG.Contract.StopRampA(&_StableSwapNG.TransactOpts) } // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. // // Solidity: function transfer(address _to, uint256 _value) returns(bool) -func (_Curve *CurveTransactor) Transfer(opts *bind.TransactOpts, _to common.Address, _value *big.Int) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "transfer", _to, _value) +func (_StableSwapNG *StableSwapNGTransactor) Transfer(opts *bind.TransactOpts, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "transfer", _to, _value) } // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. // // Solidity: function transfer(address _to, uint256 _value) returns(bool) -func (_Curve *CurveSession) Transfer(_to common.Address, _value *big.Int) (*types.Transaction, error) { - return _Curve.Contract.Transfer(&_Curve.TransactOpts, _to, _value) +func (_StableSwapNG *StableSwapNGSession) Transfer(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.Transfer(&_StableSwapNG.TransactOpts, _to, _value) } // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. // // Solidity: function transfer(address _to, uint256 _value) returns(bool) -func (_Curve *CurveTransactorSession) Transfer(_to common.Address, _value *big.Int) (*types.Transaction, error) { - return _Curve.Contract.Transfer(&_Curve.TransactOpts, _to, _value) +func (_StableSwapNG *StableSwapNGTransactorSession) Transfer(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.Transfer(&_StableSwapNG.TransactOpts, _to, _value) } // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. // // Solidity: function transferFrom(address _from, address _to, uint256 _value) returns(bool) -func (_Curve *CurveTransactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "transferFrom", _from, _to, _value) +func (_StableSwapNG *StableSwapNGTransactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "transferFrom", _from, _to, _value) } // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. // // Solidity: function transferFrom(address _from, address _to, uint256 _value) returns(bool) -func (_Curve *CurveSession) TransferFrom(_from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { - return _Curve.Contract.TransferFrom(&_Curve.TransactOpts, _from, _to, _value) +func (_StableSwapNG *StableSwapNGSession) TransferFrom(_from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.TransferFrom(&_StableSwapNG.TransactOpts, _from, _to, _value) } // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. // // Solidity: function transferFrom(address _from, address _to, uint256 _value) returns(bool) -func (_Curve *CurveTransactorSession) TransferFrom(_from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { - return _Curve.Contract.TransferFrom(&_Curve.TransactOpts, _from, _to, _value) +func (_StableSwapNG *StableSwapNGTransactorSession) TransferFrom(_from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _StableSwapNG.Contract.TransferFrom(&_StableSwapNG.TransactOpts, _from, _to, _value) } // WithdrawAdminFees is a paid mutator transaction binding the contract method 0x30c54085. // // Solidity: function withdraw_admin_fees() returns() -func (_Curve *CurveTransactor) WithdrawAdminFees(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Curve.contract.Transact(opts, "withdraw_admin_fees") +func (_StableSwapNG *StableSwapNGTransactor) WithdrawAdminFees(opts *bind.TransactOpts) (*types.Transaction, error) { + return _StableSwapNG.contract.Transact(opts, "withdraw_admin_fees") } // WithdrawAdminFees is a paid mutator transaction binding the contract method 0x30c54085. // // Solidity: function withdraw_admin_fees() returns() -func (_Curve *CurveSession) WithdrawAdminFees() (*types.Transaction, error) { - return _Curve.Contract.WithdrawAdminFees(&_Curve.TransactOpts) +func (_StableSwapNG *StableSwapNGSession) WithdrawAdminFees() (*types.Transaction, error) { + return _StableSwapNG.Contract.WithdrawAdminFees(&_StableSwapNG.TransactOpts) } // WithdrawAdminFees is a paid mutator transaction binding the contract method 0x30c54085. // // Solidity: function withdraw_admin_fees() returns() -func (_Curve *CurveTransactorSession) WithdrawAdminFees() (*types.Transaction, error) { - return _Curve.Contract.WithdrawAdminFees(&_Curve.TransactOpts) +func (_StableSwapNG *StableSwapNGTransactorSession) WithdrawAdminFees() (*types.Transaction, error) { + return _StableSwapNG.Contract.WithdrawAdminFees(&_StableSwapNG.TransactOpts) } -// CurveAddLiquidityIterator is returned from FilterAddLiquidity and is used to iterate over the raw logs and unpacked data for AddLiquidity events raised by the Curve contract. -type CurveAddLiquidityIterator struct { - Event *CurveAddLiquidity // Event containing the contract specifics and raw log +// StableSwapNGAddLiquidityIterator is returned from FilterAddLiquidity and is used to iterate over the raw logs and unpacked data for AddLiquidity events raised by the StableSwapNG contract. +type StableSwapNGAddLiquidityIterator struct { + Event *StableSwapNGAddLiquidity // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -1867,7 +1867,7 @@ type CurveAddLiquidityIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *CurveAddLiquidityIterator) Next() bool { +func (it *StableSwapNGAddLiquidityIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1876,7 +1876,7 @@ func (it *CurveAddLiquidityIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CurveAddLiquidity) + it.Event = new(StableSwapNGAddLiquidity) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1891,7 +1891,7 @@ func (it *CurveAddLiquidityIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(CurveAddLiquidity) + it.Event = new(StableSwapNGAddLiquidity) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1907,19 +1907,19 @@ func (it *CurveAddLiquidityIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *CurveAddLiquidityIterator) Error() error { +func (it *StableSwapNGAddLiquidityIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *CurveAddLiquidityIterator) Close() error { +func (it *StableSwapNGAddLiquidityIterator) Close() error { it.sub.Unsubscribe() return nil } -// CurveAddLiquidity represents a AddLiquidity event raised by the Curve contract. -type CurveAddLiquidity struct { +// StableSwapNGAddLiquidity represents a AddLiquidity event raised by the StableSwapNG contract. +type StableSwapNGAddLiquidity struct { Provider common.Address TokenAmounts []*big.Int Fees []*big.Int @@ -1931,31 +1931,31 @@ type CurveAddLiquidity struct { // FilterAddLiquidity is a free log retrieval operation binding the contract event 0x189c623b666b1b45b83d7178f39b8c087cb09774317ca2f53c2d3c3726f222a2. // // Solidity: event AddLiquidity(address indexed provider, uint256[] token_amounts, uint256[] fees, uint256 invariant, uint256 token_supply) -func (_Curve *CurveFilterer) FilterAddLiquidity(opts *bind.FilterOpts, provider []common.Address) (*CurveAddLiquidityIterator, error) { +func (_StableSwapNG *StableSwapNGFilterer) FilterAddLiquidity(opts *bind.FilterOpts, provider []common.Address) (*StableSwapNGAddLiquidityIterator, error) { var providerRule []interface{} for _, providerItem := range provider { providerRule = append(providerRule, providerItem) } - logs, sub, err := _Curve.contract.FilterLogs(opts, "AddLiquidity", providerRule) + logs, sub, err := _StableSwapNG.contract.FilterLogs(opts, "AddLiquidity", providerRule) if err != nil { return nil, err } - return &CurveAddLiquidityIterator{contract: _Curve.contract, event: "AddLiquidity", logs: logs, sub: sub}, nil + return &StableSwapNGAddLiquidityIterator{contract: _StableSwapNG.contract, event: "AddLiquidity", logs: logs, sub: sub}, nil } // WatchAddLiquidity is a free log subscription operation binding the contract event 0x189c623b666b1b45b83d7178f39b8c087cb09774317ca2f53c2d3c3726f222a2. // // Solidity: event AddLiquidity(address indexed provider, uint256[] token_amounts, uint256[] fees, uint256 invariant, uint256 token_supply) -func (_Curve *CurveFilterer) WatchAddLiquidity(opts *bind.WatchOpts, sink chan<- *CurveAddLiquidity, provider []common.Address) (event.Subscription, error) { +func (_StableSwapNG *StableSwapNGFilterer) WatchAddLiquidity(opts *bind.WatchOpts, sink chan<- *StableSwapNGAddLiquidity, provider []common.Address) (event.Subscription, error) { var providerRule []interface{} for _, providerItem := range provider { providerRule = append(providerRule, providerItem) } - logs, sub, err := _Curve.contract.WatchLogs(opts, "AddLiquidity", providerRule) + logs, sub, err := _StableSwapNG.contract.WatchLogs(opts, "AddLiquidity", providerRule) if err != nil { return nil, err } @@ -1965,8 +1965,8 @@ func (_Curve *CurveFilterer) WatchAddLiquidity(opts *bind.WatchOpts, sink chan<- select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(CurveAddLiquidity) - if err := _Curve.contract.UnpackLog(event, "AddLiquidity", log); err != nil { + event := new(StableSwapNGAddLiquidity) + if err := _StableSwapNG.contract.UnpackLog(event, "AddLiquidity", log); err != nil { return err } event.Raw = log @@ -1990,18 +1990,18 @@ func (_Curve *CurveFilterer) WatchAddLiquidity(opts *bind.WatchOpts, sink chan<- // ParseAddLiquidity is a log parse operation binding the contract event 0x189c623b666b1b45b83d7178f39b8c087cb09774317ca2f53c2d3c3726f222a2. // // Solidity: event AddLiquidity(address indexed provider, uint256[] token_amounts, uint256[] fees, uint256 invariant, uint256 token_supply) -func (_Curve *CurveFilterer) ParseAddLiquidity(log types.Log) (*CurveAddLiquidity, error) { - event := new(CurveAddLiquidity) - if err := _Curve.contract.UnpackLog(event, "AddLiquidity", log); err != nil { +func (_StableSwapNG *StableSwapNGFilterer) ParseAddLiquidity(log types.Log) (*StableSwapNGAddLiquidity, error) { + event := new(StableSwapNGAddLiquidity) + if err := _StableSwapNG.contract.UnpackLog(event, "AddLiquidity", log); err != nil { return nil, err } event.Raw = log return event, nil } -// CurveApplyNewFeeIterator is returned from FilterApplyNewFee and is used to iterate over the raw logs and unpacked data for ApplyNewFee events raised by the Curve contract. -type CurveApplyNewFeeIterator struct { - Event *CurveApplyNewFee // Event containing the contract specifics and raw log +// StableSwapNGApplyNewFeeIterator is returned from FilterApplyNewFee and is used to iterate over the raw logs and unpacked data for ApplyNewFee events raised by the StableSwapNG contract. +type StableSwapNGApplyNewFeeIterator struct { + Event *StableSwapNGApplyNewFee // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -2015,7 +2015,7 @@ type CurveApplyNewFeeIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *CurveApplyNewFeeIterator) Next() bool { +func (it *StableSwapNGApplyNewFeeIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -2024,7 +2024,7 @@ func (it *CurveApplyNewFeeIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CurveApplyNewFee) + it.Event = new(StableSwapNGApplyNewFee) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2039,7 +2039,7 @@ func (it *CurveApplyNewFeeIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(CurveApplyNewFee) + it.Event = new(StableSwapNGApplyNewFee) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2055,19 +2055,19 @@ func (it *CurveApplyNewFeeIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *CurveApplyNewFeeIterator) Error() error { +func (it *StableSwapNGApplyNewFeeIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *CurveApplyNewFeeIterator) Close() error { +func (it *StableSwapNGApplyNewFeeIterator) Close() error { it.sub.Unsubscribe() return nil } -// CurveApplyNewFee represents a ApplyNewFee event raised by the Curve contract. -type CurveApplyNewFee struct { +// StableSwapNGApplyNewFee represents a ApplyNewFee event raised by the StableSwapNG contract. +type StableSwapNGApplyNewFee struct { Fee *big.Int OffpegFeeMultiplier *big.Int Raw types.Log // Blockchain specific contextual infos @@ -2076,21 +2076,21 @@ type CurveApplyNewFee struct { // FilterApplyNewFee is a free log retrieval operation binding the contract event 0x750d10a7f37466ce785ee6bcb604aac543358db42afbcc332a3c12a49c80bf6d. // // Solidity: event ApplyNewFee(uint256 fee, uint256 offpeg_fee_multiplier) -func (_Curve *CurveFilterer) FilterApplyNewFee(opts *bind.FilterOpts) (*CurveApplyNewFeeIterator, error) { +func (_StableSwapNG *StableSwapNGFilterer) FilterApplyNewFee(opts *bind.FilterOpts) (*StableSwapNGApplyNewFeeIterator, error) { - logs, sub, err := _Curve.contract.FilterLogs(opts, "ApplyNewFee") + logs, sub, err := _StableSwapNG.contract.FilterLogs(opts, "ApplyNewFee") if err != nil { return nil, err } - return &CurveApplyNewFeeIterator{contract: _Curve.contract, event: "ApplyNewFee", logs: logs, sub: sub}, nil + return &StableSwapNGApplyNewFeeIterator{contract: _StableSwapNG.contract, event: "ApplyNewFee", logs: logs, sub: sub}, nil } // WatchApplyNewFee is a free log subscription operation binding the contract event 0x750d10a7f37466ce785ee6bcb604aac543358db42afbcc332a3c12a49c80bf6d. // // Solidity: event ApplyNewFee(uint256 fee, uint256 offpeg_fee_multiplier) -func (_Curve *CurveFilterer) WatchApplyNewFee(opts *bind.WatchOpts, sink chan<- *CurveApplyNewFee) (event.Subscription, error) { +func (_StableSwapNG *StableSwapNGFilterer) WatchApplyNewFee(opts *bind.WatchOpts, sink chan<- *StableSwapNGApplyNewFee) (event.Subscription, error) { - logs, sub, err := _Curve.contract.WatchLogs(opts, "ApplyNewFee") + logs, sub, err := _StableSwapNG.contract.WatchLogs(opts, "ApplyNewFee") if err != nil { return nil, err } @@ -2100,8 +2100,8 @@ func (_Curve *CurveFilterer) WatchApplyNewFee(opts *bind.WatchOpts, sink chan<- select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(CurveApplyNewFee) - if err := _Curve.contract.UnpackLog(event, "ApplyNewFee", log); err != nil { + event := new(StableSwapNGApplyNewFee) + if err := _StableSwapNG.contract.UnpackLog(event, "ApplyNewFee", log); err != nil { return err } event.Raw = log @@ -2125,18 +2125,18 @@ func (_Curve *CurveFilterer) WatchApplyNewFee(opts *bind.WatchOpts, sink chan<- // ParseApplyNewFee is a log parse operation binding the contract event 0x750d10a7f37466ce785ee6bcb604aac543358db42afbcc332a3c12a49c80bf6d. // // Solidity: event ApplyNewFee(uint256 fee, uint256 offpeg_fee_multiplier) -func (_Curve *CurveFilterer) ParseApplyNewFee(log types.Log) (*CurveApplyNewFee, error) { - event := new(CurveApplyNewFee) - if err := _Curve.contract.UnpackLog(event, "ApplyNewFee", log); err != nil { +func (_StableSwapNG *StableSwapNGFilterer) ParseApplyNewFee(log types.Log) (*StableSwapNGApplyNewFee, error) { + event := new(StableSwapNGApplyNewFee) + if err := _StableSwapNG.contract.UnpackLog(event, "ApplyNewFee", log); err != nil { return nil, err } event.Raw = log return event, nil } -// CurveApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the Curve contract. -type CurveApprovalIterator struct { - Event *CurveApproval // Event containing the contract specifics and raw log +// StableSwapNGApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the StableSwapNG contract. +type StableSwapNGApprovalIterator struct { + Event *StableSwapNGApproval // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -2150,7 +2150,7 @@ type CurveApprovalIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *CurveApprovalIterator) Next() bool { +func (it *StableSwapNGApprovalIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -2159,7 +2159,7 @@ func (it *CurveApprovalIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CurveApproval) + it.Event = new(StableSwapNGApproval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2174,7 +2174,7 @@ func (it *CurveApprovalIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(CurveApproval) + it.Event = new(StableSwapNGApproval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2190,19 +2190,19 @@ func (it *CurveApprovalIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *CurveApprovalIterator) Error() error { +func (it *StableSwapNGApprovalIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *CurveApprovalIterator) Close() error { +func (it *StableSwapNGApprovalIterator) Close() error { it.sub.Unsubscribe() return nil } -// CurveApproval represents a Approval event raised by the Curve contract. -type CurveApproval struct { +// StableSwapNGApproval represents a Approval event raised by the StableSwapNG contract. +type StableSwapNGApproval struct { Owner common.Address Spender common.Address Value *big.Int @@ -2212,7 +2212,7 @@ type CurveApproval struct { // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. // // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) -func (_Curve *CurveFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*CurveApprovalIterator, error) { +func (_StableSwapNG *StableSwapNGFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*StableSwapNGApprovalIterator, error) { var ownerRule []interface{} for _, ownerItem := range owner { @@ -2223,17 +2223,17 @@ func (_Curve *CurveFilterer) FilterApproval(opts *bind.FilterOpts, owner []commo spenderRule = append(spenderRule, spenderItem) } - logs, sub, err := _Curve.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + logs, sub, err := _StableSwapNG.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) if err != nil { return nil, err } - return &CurveApprovalIterator{contract: _Curve.contract, event: "Approval", logs: logs, sub: sub}, nil + return &StableSwapNGApprovalIterator{contract: _StableSwapNG.contract, event: "Approval", logs: logs, sub: sub}, nil } // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. // // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) -func (_Curve *CurveFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *CurveApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) { +func (_StableSwapNG *StableSwapNGFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *StableSwapNGApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) { var ownerRule []interface{} for _, ownerItem := range owner { @@ -2244,7 +2244,7 @@ func (_Curve *CurveFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *Cu spenderRule = append(spenderRule, spenderItem) } - logs, sub, err := _Curve.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + logs, sub, err := _StableSwapNG.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) if err != nil { return nil, err } @@ -2254,8 +2254,8 @@ func (_Curve *CurveFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *Cu select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(CurveApproval) - if err := _Curve.contract.UnpackLog(event, "Approval", log); err != nil { + event := new(StableSwapNGApproval) + if err := _StableSwapNG.contract.UnpackLog(event, "Approval", log); err != nil { return err } event.Raw = log @@ -2279,18 +2279,18 @@ func (_Curve *CurveFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *Cu // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. // // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) -func (_Curve *CurveFilterer) ParseApproval(log types.Log) (*CurveApproval, error) { - event := new(CurveApproval) - if err := _Curve.contract.UnpackLog(event, "Approval", log); err != nil { +func (_StableSwapNG *StableSwapNGFilterer) ParseApproval(log types.Log) (*StableSwapNGApproval, error) { + event := new(StableSwapNGApproval) + if err := _StableSwapNG.contract.UnpackLog(event, "Approval", log); err != nil { return nil, err } event.Raw = log return event, nil } -// CurveRampAIterator is returned from FilterRampA and is used to iterate over the raw logs and unpacked data for RampA events raised by the Curve contract. -type CurveRampAIterator struct { - Event *CurveRampA // Event containing the contract specifics and raw log +// StableSwapNGRampAIterator is returned from FilterRampA and is used to iterate over the raw logs and unpacked data for RampA events raised by the StableSwapNG contract. +type StableSwapNGRampAIterator struct { + Event *StableSwapNGRampA // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -2304,7 +2304,7 @@ type CurveRampAIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *CurveRampAIterator) Next() bool { +func (it *StableSwapNGRampAIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -2313,7 +2313,7 @@ func (it *CurveRampAIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CurveRampA) + it.Event = new(StableSwapNGRampA) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2328,7 +2328,7 @@ func (it *CurveRampAIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(CurveRampA) + it.Event = new(StableSwapNGRampA) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2344,19 +2344,19 @@ func (it *CurveRampAIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *CurveRampAIterator) Error() error { +func (it *StableSwapNGRampAIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *CurveRampAIterator) Close() error { +func (it *StableSwapNGRampAIterator) Close() error { it.sub.Unsubscribe() return nil } -// CurveRampA represents a RampA event raised by the Curve contract. -type CurveRampA struct { +// StableSwapNGRampA represents a RampA event raised by the StableSwapNG contract. +type StableSwapNGRampA struct { OldA *big.Int NewA *big.Int InitialTime *big.Int @@ -2367,21 +2367,21 @@ type CurveRampA struct { // FilterRampA is a free log retrieval operation binding the contract event 0xa2b71ec6df949300b59aab36b55e189697b750119dd349fcfa8c0f779e83c254. // // Solidity: event RampA(uint256 old_A, uint256 new_A, uint256 initial_time, uint256 future_time) -func (_Curve *CurveFilterer) FilterRampA(opts *bind.FilterOpts) (*CurveRampAIterator, error) { +func (_StableSwapNG *StableSwapNGFilterer) FilterRampA(opts *bind.FilterOpts) (*StableSwapNGRampAIterator, error) { - logs, sub, err := _Curve.contract.FilterLogs(opts, "RampA") + logs, sub, err := _StableSwapNG.contract.FilterLogs(opts, "RampA") if err != nil { return nil, err } - return &CurveRampAIterator{contract: _Curve.contract, event: "RampA", logs: logs, sub: sub}, nil + return &StableSwapNGRampAIterator{contract: _StableSwapNG.contract, event: "RampA", logs: logs, sub: sub}, nil } // WatchRampA is a free log subscription operation binding the contract event 0xa2b71ec6df949300b59aab36b55e189697b750119dd349fcfa8c0f779e83c254. // // Solidity: event RampA(uint256 old_A, uint256 new_A, uint256 initial_time, uint256 future_time) -func (_Curve *CurveFilterer) WatchRampA(opts *bind.WatchOpts, sink chan<- *CurveRampA) (event.Subscription, error) { +func (_StableSwapNG *StableSwapNGFilterer) WatchRampA(opts *bind.WatchOpts, sink chan<- *StableSwapNGRampA) (event.Subscription, error) { - logs, sub, err := _Curve.contract.WatchLogs(opts, "RampA") + logs, sub, err := _StableSwapNG.contract.WatchLogs(opts, "RampA") if err != nil { return nil, err } @@ -2391,8 +2391,8 @@ func (_Curve *CurveFilterer) WatchRampA(opts *bind.WatchOpts, sink chan<- *Curve select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(CurveRampA) - if err := _Curve.contract.UnpackLog(event, "RampA", log); err != nil { + event := new(StableSwapNGRampA) + if err := _StableSwapNG.contract.UnpackLog(event, "RampA", log); err != nil { return err } event.Raw = log @@ -2416,18 +2416,18 @@ func (_Curve *CurveFilterer) WatchRampA(opts *bind.WatchOpts, sink chan<- *Curve // ParseRampA is a log parse operation binding the contract event 0xa2b71ec6df949300b59aab36b55e189697b750119dd349fcfa8c0f779e83c254. // // Solidity: event RampA(uint256 old_A, uint256 new_A, uint256 initial_time, uint256 future_time) -func (_Curve *CurveFilterer) ParseRampA(log types.Log) (*CurveRampA, error) { - event := new(CurveRampA) - if err := _Curve.contract.UnpackLog(event, "RampA", log); err != nil { +func (_StableSwapNG *StableSwapNGFilterer) ParseRampA(log types.Log) (*StableSwapNGRampA, error) { + event := new(StableSwapNGRampA) + if err := _StableSwapNG.contract.UnpackLog(event, "RampA", log); err != nil { return nil, err } event.Raw = log return event, nil } -// CurveRemoveLiquidityIterator is returned from FilterRemoveLiquidity and is used to iterate over the raw logs and unpacked data for RemoveLiquidity events raised by the Curve contract. -type CurveRemoveLiquidityIterator struct { - Event *CurveRemoveLiquidity // Event containing the contract specifics and raw log +// StableSwapNGRemoveLiquidityIterator is returned from FilterRemoveLiquidity and is used to iterate over the raw logs and unpacked data for RemoveLiquidity events raised by the StableSwapNG contract. +type StableSwapNGRemoveLiquidityIterator struct { + Event *StableSwapNGRemoveLiquidity // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -2441,7 +2441,7 @@ type CurveRemoveLiquidityIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *CurveRemoveLiquidityIterator) Next() bool { +func (it *StableSwapNGRemoveLiquidityIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -2450,7 +2450,7 @@ func (it *CurveRemoveLiquidityIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CurveRemoveLiquidity) + it.Event = new(StableSwapNGRemoveLiquidity) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2465,7 +2465,7 @@ func (it *CurveRemoveLiquidityIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(CurveRemoveLiquidity) + it.Event = new(StableSwapNGRemoveLiquidity) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2481,19 +2481,19 @@ func (it *CurveRemoveLiquidityIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *CurveRemoveLiquidityIterator) Error() error { +func (it *StableSwapNGRemoveLiquidityIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *CurveRemoveLiquidityIterator) Close() error { +func (it *StableSwapNGRemoveLiquidityIterator) Close() error { it.sub.Unsubscribe() return nil } -// CurveRemoveLiquidity represents a RemoveLiquidity event raised by the Curve contract. -type CurveRemoveLiquidity struct { +// StableSwapNGRemoveLiquidity represents a RemoveLiquidity event raised by the StableSwapNG contract. +type StableSwapNGRemoveLiquidity struct { Provider common.Address TokenAmounts []*big.Int Fees []*big.Int @@ -2504,31 +2504,31 @@ type CurveRemoveLiquidity struct { // FilterRemoveLiquidity is a free log retrieval operation binding the contract event 0x347ad828e58cbe534d8f6b67985d791360756b18f0d95fd9f197a66cc46480ea. // // Solidity: event RemoveLiquidity(address indexed provider, uint256[] token_amounts, uint256[] fees, uint256 token_supply) -func (_Curve *CurveFilterer) FilterRemoveLiquidity(opts *bind.FilterOpts, provider []common.Address) (*CurveRemoveLiquidityIterator, error) { +func (_StableSwapNG *StableSwapNGFilterer) FilterRemoveLiquidity(opts *bind.FilterOpts, provider []common.Address) (*StableSwapNGRemoveLiquidityIterator, error) { var providerRule []interface{} for _, providerItem := range provider { providerRule = append(providerRule, providerItem) } - logs, sub, err := _Curve.contract.FilterLogs(opts, "RemoveLiquidity", providerRule) + logs, sub, err := _StableSwapNG.contract.FilterLogs(opts, "RemoveLiquidity", providerRule) if err != nil { return nil, err } - return &CurveRemoveLiquidityIterator{contract: _Curve.contract, event: "RemoveLiquidity", logs: logs, sub: sub}, nil + return &StableSwapNGRemoveLiquidityIterator{contract: _StableSwapNG.contract, event: "RemoveLiquidity", logs: logs, sub: sub}, nil } // WatchRemoveLiquidity is a free log subscription operation binding the contract event 0x347ad828e58cbe534d8f6b67985d791360756b18f0d95fd9f197a66cc46480ea. // // Solidity: event RemoveLiquidity(address indexed provider, uint256[] token_amounts, uint256[] fees, uint256 token_supply) -func (_Curve *CurveFilterer) WatchRemoveLiquidity(opts *bind.WatchOpts, sink chan<- *CurveRemoveLiquidity, provider []common.Address) (event.Subscription, error) { +func (_StableSwapNG *StableSwapNGFilterer) WatchRemoveLiquidity(opts *bind.WatchOpts, sink chan<- *StableSwapNGRemoveLiquidity, provider []common.Address) (event.Subscription, error) { var providerRule []interface{} for _, providerItem := range provider { providerRule = append(providerRule, providerItem) } - logs, sub, err := _Curve.contract.WatchLogs(opts, "RemoveLiquidity", providerRule) + logs, sub, err := _StableSwapNG.contract.WatchLogs(opts, "RemoveLiquidity", providerRule) if err != nil { return nil, err } @@ -2538,8 +2538,8 @@ func (_Curve *CurveFilterer) WatchRemoveLiquidity(opts *bind.WatchOpts, sink cha select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(CurveRemoveLiquidity) - if err := _Curve.contract.UnpackLog(event, "RemoveLiquidity", log); err != nil { + event := new(StableSwapNGRemoveLiquidity) + if err := _StableSwapNG.contract.UnpackLog(event, "RemoveLiquidity", log); err != nil { return err } event.Raw = log @@ -2563,18 +2563,18 @@ func (_Curve *CurveFilterer) WatchRemoveLiquidity(opts *bind.WatchOpts, sink cha // ParseRemoveLiquidity is a log parse operation binding the contract event 0x347ad828e58cbe534d8f6b67985d791360756b18f0d95fd9f197a66cc46480ea. // // Solidity: event RemoveLiquidity(address indexed provider, uint256[] token_amounts, uint256[] fees, uint256 token_supply) -func (_Curve *CurveFilterer) ParseRemoveLiquidity(log types.Log) (*CurveRemoveLiquidity, error) { - event := new(CurveRemoveLiquidity) - if err := _Curve.contract.UnpackLog(event, "RemoveLiquidity", log); err != nil { +func (_StableSwapNG *StableSwapNGFilterer) ParseRemoveLiquidity(log types.Log) (*StableSwapNGRemoveLiquidity, error) { + event := new(StableSwapNGRemoveLiquidity) + if err := _StableSwapNG.contract.UnpackLog(event, "RemoveLiquidity", log); err != nil { return nil, err } event.Raw = log return event, nil } -// CurveRemoveLiquidityImbalanceIterator is returned from FilterRemoveLiquidityImbalance and is used to iterate over the raw logs and unpacked data for RemoveLiquidityImbalance events raised by the Curve contract. -type CurveRemoveLiquidityImbalanceIterator struct { - Event *CurveRemoveLiquidityImbalance // Event containing the contract specifics and raw log +// StableSwapNGRemoveLiquidityImbalanceIterator is returned from FilterRemoveLiquidityImbalance and is used to iterate over the raw logs and unpacked data for RemoveLiquidityImbalance events raised by the StableSwapNG contract. +type StableSwapNGRemoveLiquidityImbalanceIterator struct { + Event *StableSwapNGRemoveLiquidityImbalance // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -2588,7 +2588,7 @@ type CurveRemoveLiquidityImbalanceIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *CurveRemoveLiquidityImbalanceIterator) Next() bool { +func (it *StableSwapNGRemoveLiquidityImbalanceIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -2597,7 +2597,7 @@ func (it *CurveRemoveLiquidityImbalanceIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CurveRemoveLiquidityImbalance) + it.Event = new(StableSwapNGRemoveLiquidityImbalance) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2612,7 +2612,7 @@ func (it *CurveRemoveLiquidityImbalanceIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(CurveRemoveLiquidityImbalance) + it.Event = new(StableSwapNGRemoveLiquidityImbalance) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2628,19 +2628,19 @@ func (it *CurveRemoveLiquidityImbalanceIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *CurveRemoveLiquidityImbalanceIterator) Error() error { +func (it *StableSwapNGRemoveLiquidityImbalanceIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *CurveRemoveLiquidityImbalanceIterator) Close() error { +func (it *StableSwapNGRemoveLiquidityImbalanceIterator) Close() error { it.sub.Unsubscribe() return nil } -// CurveRemoveLiquidityImbalance represents a RemoveLiquidityImbalance event raised by the Curve contract. -type CurveRemoveLiquidityImbalance struct { +// StableSwapNGRemoveLiquidityImbalance represents a RemoveLiquidityImbalance event raised by the StableSwapNG contract. +type StableSwapNGRemoveLiquidityImbalance struct { Provider common.Address TokenAmounts []*big.Int Fees []*big.Int @@ -2652,31 +2652,31 @@ type CurveRemoveLiquidityImbalance struct { // FilterRemoveLiquidityImbalance is a free log retrieval operation binding the contract event 0x3631c28b1f9dd213e0319fb167b554d76b6c283a41143eb400a0d1adb1af1755. // // Solidity: event RemoveLiquidityImbalance(address indexed provider, uint256[] token_amounts, uint256[] fees, uint256 invariant, uint256 token_supply) -func (_Curve *CurveFilterer) FilterRemoveLiquidityImbalance(opts *bind.FilterOpts, provider []common.Address) (*CurveRemoveLiquidityImbalanceIterator, error) { +func (_StableSwapNG *StableSwapNGFilterer) FilterRemoveLiquidityImbalance(opts *bind.FilterOpts, provider []common.Address) (*StableSwapNGRemoveLiquidityImbalanceIterator, error) { var providerRule []interface{} for _, providerItem := range provider { providerRule = append(providerRule, providerItem) } - logs, sub, err := _Curve.contract.FilterLogs(opts, "RemoveLiquidityImbalance", providerRule) + logs, sub, err := _StableSwapNG.contract.FilterLogs(opts, "RemoveLiquidityImbalance", providerRule) if err != nil { return nil, err } - return &CurveRemoveLiquidityImbalanceIterator{contract: _Curve.contract, event: "RemoveLiquidityImbalance", logs: logs, sub: sub}, nil + return &StableSwapNGRemoveLiquidityImbalanceIterator{contract: _StableSwapNG.contract, event: "RemoveLiquidityImbalance", logs: logs, sub: sub}, nil } // WatchRemoveLiquidityImbalance is a free log subscription operation binding the contract event 0x3631c28b1f9dd213e0319fb167b554d76b6c283a41143eb400a0d1adb1af1755. // // Solidity: event RemoveLiquidityImbalance(address indexed provider, uint256[] token_amounts, uint256[] fees, uint256 invariant, uint256 token_supply) -func (_Curve *CurveFilterer) WatchRemoveLiquidityImbalance(opts *bind.WatchOpts, sink chan<- *CurveRemoveLiquidityImbalance, provider []common.Address) (event.Subscription, error) { +func (_StableSwapNG *StableSwapNGFilterer) WatchRemoveLiquidityImbalance(opts *bind.WatchOpts, sink chan<- *StableSwapNGRemoveLiquidityImbalance, provider []common.Address) (event.Subscription, error) { var providerRule []interface{} for _, providerItem := range provider { providerRule = append(providerRule, providerItem) } - logs, sub, err := _Curve.contract.WatchLogs(opts, "RemoveLiquidityImbalance", providerRule) + logs, sub, err := _StableSwapNG.contract.WatchLogs(opts, "RemoveLiquidityImbalance", providerRule) if err != nil { return nil, err } @@ -2686,8 +2686,8 @@ func (_Curve *CurveFilterer) WatchRemoveLiquidityImbalance(opts *bind.WatchOpts, select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(CurveRemoveLiquidityImbalance) - if err := _Curve.contract.UnpackLog(event, "RemoveLiquidityImbalance", log); err != nil { + event := new(StableSwapNGRemoveLiquidityImbalance) + if err := _StableSwapNG.contract.UnpackLog(event, "RemoveLiquidityImbalance", log); err != nil { return err } event.Raw = log @@ -2711,18 +2711,18 @@ func (_Curve *CurveFilterer) WatchRemoveLiquidityImbalance(opts *bind.WatchOpts, // ParseRemoveLiquidityImbalance is a log parse operation binding the contract event 0x3631c28b1f9dd213e0319fb167b554d76b6c283a41143eb400a0d1adb1af1755. // // Solidity: event RemoveLiquidityImbalance(address indexed provider, uint256[] token_amounts, uint256[] fees, uint256 invariant, uint256 token_supply) -func (_Curve *CurveFilterer) ParseRemoveLiquidityImbalance(log types.Log) (*CurveRemoveLiquidityImbalance, error) { - event := new(CurveRemoveLiquidityImbalance) - if err := _Curve.contract.UnpackLog(event, "RemoveLiquidityImbalance", log); err != nil { +func (_StableSwapNG *StableSwapNGFilterer) ParseRemoveLiquidityImbalance(log types.Log) (*StableSwapNGRemoveLiquidityImbalance, error) { + event := new(StableSwapNGRemoveLiquidityImbalance) + if err := _StableSwapNG.contract.UnpackLog(event, "RemoveLiquidityImbalance", log); err != nil { return nil, err } event.Raw = log return event, nil } -// CurveRemoveLiquidityOneIterator is returned from FilterRemoveLiquidityOne and is used to iterate over the raw logs and unpacked data for RemoveLiquidityOne events raised by the Curve contract. -type CurveRemoveLiquidityOneIterator struct { - Event *CurveRemoveLiquidityOne // Event containing the contract specifics and raw log +// StableSwapNGRemoveLiquidityOneIterator is returned from FilterRemoveLiquidityOne and is used to iterate over the raw logs and unpacked data for RemoveLiquidityOne events raised by the StableSwapNG contract. +type StableSwapNGRemoveLiquidityOneIterator struct { + Event *StableSwapNGRemoveLiquidityOne // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -2736,7 +2736,7 @@ type CurveRemoveLiquidityOneIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *CurveRemoveLiquidityOneIterator) Next() bool { +func (it *StableSwapNGRemoveLiquidityOneIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -2745,7 +2745,7 @@ func (it *CurveRemoveLiquidityOneIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CurveRemoveLiquidityOne) + it.Event = new(StableSwapNGRemoveLiquidityOne) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2760,7 +2760,7 @@ func (it *CurveRemoveLiquidityOneIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(CurveRemoveLiquidityOne) + it.Event = new(StableSwapNGRemoveLiquidityOne) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2776,19 +2776,19 @@ func (it *CurveRemoveLiquidityOneIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *CurveRemoveLiquidityOneIterator) Error() error { +func (it *StableSwapNGRemoveLiquidityOneIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *CurveRemoveLiquidityOneIterator) Close() error { +func (it *StableSwapNGRemoveLiquidityOneIterator) Close() error { it.sub.Unsubscribe() return nil } -// CurveRemoveLiquidityOne represents a RemoveLiquidityOne event raised by the Curve contract. -type CurveRemoveLiquidityOne struct { +// StableSwapNGRemoveLiquidityOne represents a RemoveLiquidityOne event raised by the StableSwapNG contract. +type StableSwapNGRemoveLiquidityOne struct { Provider common.Address TokenId *big.Int TokenAmount *big.Int @@ -2800,31 +2800,31 @@ type CurveRemoveLiquidityOne struct { // FilterRemoveLiquidityOne is a free log retrieval operation binding the contract event 0x6f48129db1f37ccb9cc5dd7e119cb32750cabdf75b48375d730d26ce3659bbe1. // // Solidity: event RemoveLiquidityOne(address indexed provider, int128 token_id, uint256 token_amount, uint256 coin_amount, uint256 token_supply) -func (_Curve *CurveFilterer) FilterRemoveLiquidityOne(opts *bind.FilterOpts, provider []common.Address) (*CurveRemoveLiquidityOneIterator, error) { +func (_StableSwapNG *StableSwapNGFilterer) FilterRemoveLiquidityOne(opts *bind.FilterOpts, provider []common.Address) (*StableSwapNGRemoveLiquidityOneIterator, error) { var providerRule []interface{} for _, providerItem := range provider { providerRule = append(providerRule, providerItem) } - logs, sub, err := _Curve.contract.FilterLogs(opts, "RemoveLiquidityOne", providerRule) + logs, sub, err := _StableSwapNG.contract.FilterLogs(opts, "RemoveLiquidityOne", providerRule) if err != nil { return nil, err } - return &CurveRemoveLiquidityOneIterator{contract: _Curve.contract, event: "RemoveLiquidityOne", logs: logs, sub: sub}, nil + return &StableSwapNGRemoveLiquidityOneIterator{contract: _StableSwapNG.contract, event: "RemoveLiquidityOne", logs: logs, sub: sub}, nil } // WatchRemoveLiquidityOne is a free log subscription operation binding the contract event 0x6f48129db1f37ccb9cc5dd7e119cb32750cabdf75b48375d730d26ce3659bbe1. // // Solidity: event RemoveLiquidityOne(address indexed provider, int128 token_id, uint256 token_amount, uint256 coin_amount, uint256 token_supply) -func (_Curve *CurveFilterer) WatchRemoveLiquidityOne(opts *bind.WatchOpts, sink chan<- *CurveRemoveLiquidityOne, provider []common.Address) (event.Subscription, error) { +func (_StableSwapNG *StableSwapNGFilterer) WatchRemoveLiquidityOne(opts *bind.WatchOpts, sink chan<- *StableSwapNGRemoveLiquidityOne, provider []common.Address) (event.Subscription, error) { var providerRule []interface{} for _, providerItem := range provider { providerRule = append(providerRule, providerItem) } - logs, sub, err := _Curve.contract.WatchLogs(opts, "RemoveLiquidityOne", providerRule) + logs, sub, err := _StableSwapNG.contract.WatchLogs(opts, "RemoveLiquidityOne", providerRule) if err != nil { return nil, err } @@ -2834,8 +2834,8 @@ func (_Curve *CurveFilterer) WatchRemoveLiquidityOne(opts *bind.WatchOpts, sink select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(CurveRemoveLiquidityOne) - if err := _Curve.contract.UnpackLog(event, "RemoveLiquidityOne", log); err != nil { + event := new(StableSwapNGRemoveLiquidityOne) + if err := _StableSwapNG.contract.UnpackLog(event, "RemoveLiquidityOne", log); err != nil { return err } event.Raw = log @@ -2859,18 +2859,18 @@ func (_Curve *CurveFilterer) WatchRemoveLiquidityOne(opts *bind.WatchOpts, sink // ParseRemoveLiquidityOne is a log parse operation binding the contract event 0x6f48129db1f37ccb9cc5dd7e119cb32750cabdf75b48375d730d26ce3659bbe1. // // Solidity: event RemoveLiquidityOne(address indexed provider, int128 token_id, uint256 token_amount, uint256 coin_amount, uint256 token_supply) -func (_Curve *CurveFilterer) ParseRemoveLiquidityOne(log types.Log) (*CurveRemoveLiquidityOne, error) { - event := new(CurveRemoveLiquidityOne) - if err := _Curve.contract.UnpackLog(event, "RemoveLiquidityOne", log); err != nil { +func (_StableSwapNG *StableSwapNGFilterer) ParseRemoveLiquidityOne(log types.Log) (*StableSwapNGRemoveLiquidityOne, error) { + event := new(StableSwapNGRemoveLiquidityOne) + if err := _StableSwapNG.contract.UnpackLog(event, "RemoveLiquidityOne", log); err != nil { return nil, err } event.Raw = log return event, nil } -// CurveSetNewMATimeIterator is returned from FilterSetNewMATime and is used to iterate over the raw logs and unpacked data for SetNewMATime events raised by the Curve contract. -type CurveSetNewMATimeIterator struct { - Event *CurveSetNewMATime // Event containing the contract specifics and raw log +// StableSwapNGSetNewMATimeIterator is returned from FilterSetNewMATime and is used to iterate over the raw logs and unpacked data for SetNewMATime events raised by the StableSwapNG contract. +type StableSwapNGSetNewMATimeIterator struct { + Event *StableSwapNGSetNewMATime // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -2884,7 +2884,7 @@ type CurveSetNewMATimeIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *CurveSetNewMATimeIterator) Next() bool { +func (it *StableSwapNGSetNewMATimeIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -2893,7 +2893,7 @@ func (it *CurveSetNewMATimeIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CurveSetNewMATime) + it.Event = new(StableSwapNGSetNewMATime) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2908,7 +2908,7 @@ func (it *CurveSetNewMATimeIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(CurveSetNewMATime) + it.Event = new(StableSwapNGSetNewMATime) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2924,19 +2924,19 @@ func (it *CurveSetNewMATimeIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *CurveSetNewMATimeIterator) Error() error { +func (it *StableSwapNGSetNewMATimeIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *CurveSetNewMATimeIterator) Close() error { +func (it *StableSwapNGSetNewMATimeIterator) Close() error { it.sub.Unsubscribe() return nil } -// CurveSetNewMATime represents a SetNewMATime event raised by the Curve contract. -type CurveSetNewMATime struct { +// StableSwapNGSetNewMATime represents a SetNewMATime event raised by the StableSwapNG contract. +type StableSwapNGSetNewMATime struct { MaExpTime *big.Int DMaTime *big.Int Raw types.Log // Blockchain specific contextual infos @@ -2945,21 +2945,21 @@ type CurveSetNewMATime struct { // FilterSetNewMATime is a free log retrieval operation binding the contract event 0x68dc4e067dff1862b896b7a0faf55f97df1a60d0aaa79481b69d675f2026a28c. // // Solidity: event SetNewMATime(uint256 ma_exp_time, uint256 D_ma_time) -func (_Curve *CurveFilterer) FilterSetNewMATime(opts *bind.FilterOpts) (*CurveSetNewMATimeIterator, error) { +func (_StableSwapNG *StableSwapNGFilterer) FilterSetNewMATime(opts *bind.FilterOpts) (*StableSwapNGSetNewMATimeIterator, error) { - logs, sub, err := _Curve.contract.FilterLogs(opts, "SetNewMATime") + logs, sub, err := _StableSwapNG.contract.FilterLogs(opts, "SetNewMATime") if err != nil { return nil, err } - return &CurveSetNewMATimeIterator{contract: _Curve.contract, event: "SetNewMATime", logs: logs, sub: sub}, nil + return &StableSwapNGSetNewMATimeIterator{contract: _StableSwapNG.contract, event: "SetNewMATime", logs: logs, sub: sub}, nil } // WatchSetNewMATime is a free log subscription operation binding the contract event 0x68dc4e067dff1862b896b7a0faf55f97df1a60d0aaa79481b69d675f2026a28c. // // Solidity: event SetNewMATime(uint256 ma_exp_time, uint256 D_ma_time) -func (_Curve *CurveFilterer) WatchSetNewMATime(opts *bind.WatchOpts, sink chan<- *CurveSetNewMATime) (event.Subscription, error) { +func (_StableSwapNG *StableSwapNGFilterer) WatchSetNewMATime(opts *bind.WatchOpts, sink chan<- *StableSwapNGSetNewMATime) (event.Subscription, error) { - logs, sub, err := _Curve.contract.WatchLogs(opts, "SetNewMATime") + logs, sub, err := _StableSwapNG.contract.WatchLogs(opts, "SetNewMATime") if err != nil { return nil, err } @@ -2969,8 +2969,8 @@ func (_Curve *CurveFilterer) WatchSetNewMATime(opts *bind.WatchOpts, sink chan<- select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(CurveSetNewMATime) - if err := _Curve.contract.UnpackLog(event, "SetNewMATime", log); err != nil { + event := new(StableSwapNGSetNewMATime) + if err := _StableSwapNG.contract.UnpackLog(event, "SetNewMATime", log); err != nil { return err } event.Raw = log @@ -2994,18 +2994,18 @@ func (_Curve *CurveFilterer) WatchSetNewMATime(opts *bind.WatchOpts, sink chan<- // ParseSetNewMATime is a log parse operation binding the contract event 0x68dc4e067dff1862b896b7a0faf55f97df1a60d0aaa79481b69d675f2026a28c. // // Solidity: event SetNewMATime(uint256 ma_exp_time, uint256 D_ma_time) -func (_Curve *CurveFilterer) ParseSetNewMATime(log types.Log) (*CurveSetNewMATime, error) { - event := new(CurveSetNewMATime) - if err := _Curve.contract.UnpackLog(event, "SetNewMATime", log); err != nil { +func (_StableSwapNG *StableSwapNGFilterer) ParseSetNewMATime(log types.Log) (*StableSwapNGSetNewMATime, error) { + event := new(StableSwapNGSetNewMATime) + if err := _StableSwapNG.contract.UnpackLog(event, "SetNewMATime", log); err != nil { return nil, err } event.Raw = log return event, nil } -// CurveStopRampAIterator is returned from FilterStopRampA and is used to iterate over the raw logs and unpacked data for StopRampA events raised by the Curve contract. -type CurveStopRampAIterator struct { - Event *CurveStopRampA // Event containing the contract specifics and raw log +// StableSwapNGStopRampAIterator is returned from FilterStopRampA and is used to iterate over the raw logs and unpacked data for StopRampA events raised by the StableSwapNG contract. +type StableSwapNGStopRampAIterator struct { + Event *StableSwapNGStopRampA // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -3019,7 +3019,7 @@ type CurveStopRampAIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *CurveStopRampAIterator) Next() bool { +func (it *StableSwapNGStopRampAIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -3028,7 +3028,7 @@ func (it *CurveStopRampAIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CurveStopRampA) + it.Event = new(StableSwapNGStopRampA) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -3043,7 +3043,7 @@ func (it *CurveStopRampAIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(CurveStopRampA) + it.Event = new(StableSwapNGStopRampA) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -3059,19 +3059,19 @@ func (it *CurveStopRampAIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *CurveStopRampAIterator) Error() error { +func (it *StableSwapNGStopRampAIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *CurveStopRampAIterator) Close() error { +func (it *StableSwapNGStopRampAIterator) Close() error { it.sub.Unsubscribe() return nil } -// CurveStopRampA represents a StopRampA event raised by the Curve contract. -type CurveStopRampA struct { +// StableSwapNGStopRampA represents a StopRampA event raised by the StableSwapNG contract. +type StableSwapNGStopRampA struct { A *big.Int T *big.Int Raw types.Log // Blockchain specific contextual infos @@ -3080,21 +3080,21 @@ type CurveStopRampA struct { // FilterStopRampA is a free log retrieval operation binding the contract event 0x46e22fb3709ad289f62ce63d469248536dbc78d82b84a3d7e74ad606dc201938. // // Solidity: event StopRampA(uint256 A, uint256 t) -func (_Curve *CurveFilterer) FilterStopRampA(opts *bind.FilterOpts) (*CurveStopRampAIterator, error) { +func (_StableSwapNG *StableSwapNGFilterer) FilterStopRampA(opts *bind.FilterOpts) (*StableSwapNGStopRampAIterator, error) { - logs, sub, err := _Curve.contract.FilterLogs(opts, "StopRampA") + logs, sub, err := _StableSwapNG.contract.FilterLogs(opts, "StopRampA") if err != nil { return nil, err } - return &CurveStopRampAIterator{contract: _Curve.contract, event: "StopRampA", logs: logs, sub: sub}, nil + return &StableSwapNGStopRampAIterator{contract: _StableSwapNG.contract, event: "StopRampA", logs: logs, sub: sub}, nil } // WatchStopRampA is a free log subscription operation binding the contract event 0x46e22fb3709ad289f62ce63d469248536dbc78d82b84a3d7e74ad606dc201938. // // Solidity: event StopRampA(uint256 A, uint256 t) -func (_Curve *CurveFilterer) WatchStopRampA(opts *bind.WatchOpts, sink chan<- *CurveStopRampA) (event.Subscription, error) { +func (_StableSwapNG *StableSwapNGFilterer) WatchStopRampA(opts *bind.WatchOpts, sink chan<- *StableSwapNGStopRampA) (event.Subscription, error) { - logs, sub, err := _Curve.contract.WatchLogs(opts, "StopRampA") + logs, sub, err := _StableSwapNG.contract.WatchLogs(opts, "StopRampA") if err != nil { return nil, err } @@ -3104,8 +3104,8 @@ func (_Curve *CurveFilterer) WatchStopRampA(opts *bind.WatchOpts, sink chan<- *C select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(CurveStopRampA) - if err := _Curve.contract.UnpackLog(event, "StopRampA", log); err != nil { + event := new(StableSwapNGStopRampA) + if err := _StableSwapNG.contract.UnpackLog(event, "StopRampA", log); err != nil { return err } event.Raw = log @@ -3129,18 +3129,18 @@ func (_Curve *CurveFilterer) WatchStopRampA(opts *bind.WatchOpts, sink chan<- *C // ParseStopRampA is a log parse operation binding the contract event 0x46e22fb3709ad289f62ce63d469248536dbc78d82b84a3d7e74ad606dc201938. // // Solidity: event StopRampA(uint256 A, uint256 t) -func (_Curve *CurveFilterer) ParseStopRampA(log types.Log) (*CurveStopRampA, error) { - event := new(CurveStopRampA) - if err := _Curve.contract.UnpackLog(event, "StopRampA", log); err != nil { +func (_StableSwapNG *StableSwapNGFilterer) ParseStopRampA(log types.Log) (*StableSwapNGStopRampA, error) { + event := new(StableSwapNGStopRampA) + if err := _StableSwapNG.contract.UnpackLog(event, "StopRampA", log); err != nil { return nil, err } event.Raw = log return event, nil } -// CurveTokenExchangeIterator is returned from FilterTokenExchange and is used to iterate over the raw logs and unpacked data for TokenExchange events raised by the Curve contract. -type CurveTokenExchangeIterator struct { - Event *CurveTokenExchange // Event containing the contract specifics and raw log +// StableSwapNGTokenExchangeIterator is returned from FilterTokenExchange and is used to iterate over the raw logs and unpacked data for TokenExchange events raised by the StableSwapNG contract. +type StableSwapNGTokenExchangeIterator struct { + Event *StableSwapNGTokenExchange // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -3154,7 +3154,7 @@ type CurveTokenExchangeIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *CurveTokenExchangeIterator) Next() bool { +func (it *StableSwapNGTokenExchangeIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -3163,7 +3163,7 @@ func (it *CurveTokenExchangeIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CurveTokenExchange) + it.Event = new(StableSwapNGTokenExchange) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -3178,7 +3178,7 @@ func (it *CurveTokenExchangeIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(CurveTokenExchange) + it.Event = new(StableSwapNGTokenExchange) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -3194,19 +3194,19 @@ func (it *CurveTokenExchangeIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *CurveTokenExchangeIterator) Error() error { +func (it *StableSwapNGTokenExchangeIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *CurveTokenExchangeIterator) Close() error { +func (it *StableSwapNGTokenExchangeIterator) Close() error { it.sub.Unsubscribe() return nil } -// CurveTokenExchange represents a TokenExchange event raised by the Curve contract. -type CurveTokenExchange struct { +// StableSwapNGTokenExchange represents a TokenExchange event raised by the StableSwapNG contract. +type StableSwapNGTokenExchange struct { Buyer common.Address SoldId *big.Int TokensSold *big.Int @@ -3218,31 +3218,31 @@ type CurveTokenExchange struct { // FilterTokenExchange is a free log retrieval operation binding the contract event 0x8b3e96f2b889fa771c53c981b40daf005f63f637f1869f707052d15a3dd97140. // // Solidity: event TokenExchange(address indexed buyer, int128 sold_id, uint256 tokens_sold, int128 bought_id, uint256 tokens_bought) -func (_Curve *CurveFilterer) FilterTokenExchange(opts *bind.FilterOpts, buyer []common.Address) (*CurveTokenExchangeIterator, error) { +func (_StableSwapNG *StableSwapNGFilterer) FilterTokenExchange(opts *bind.FilterOpts, buyer []common.Address) (*StableSwapNGTokenExchangeIterator, error) { var buyerRule []interface{} for _, buyerItem := range buyer { buyerRule = append(buyerRule, buyerItem) } - logs, sub, err := _Curve.contract.FilterLogs(opts, "TokenExchange", buyerRule) + logs, sub, err := _StableSwapNG.contract.FilterLogs(opts, "TokenExchange", buyerRule) if err != nil { return nil, err } - return &CurveTokenExchangeIterator{contract: _Curve.contract, event: "TokenExchange", logs: logs, sub: sub}, nil + return &StableSwapNGTokenExchangeIterator{contract: _StableSwapNG.contract, event: "TokenExchange", logs: logs, sub: sub}, nil } // WatchTokenExchange is a free log subscription operation binding the contract event 0x8b3e96f2b889fa771c53c981b40daf005f63f637f1869f707052d15a3dd97140. // // Solidity: event TokenExchange(address indexed buyer, int128 sold_id, uint256 tokens_sold, int128 bought_id, uint256 tokens_bought) -func (_Curve *CurveFilterer) WatchTokenExchange(opts *bind.WatchOpts, sink chan<- *CurveTokenExchange, buyer []common.Address) (event.Subscription, error) { +func (_StableSwapNG *StableSwapNGFilterer) WatchTokenExchange(opts *bind.WatchOpts, sink chan<- *StableSwapNGTokenExchange, buyer []common.Address) (event.Subscription, error) { var buyerRule []interface{} for _, buyerItem := range buyer { buyerRule = append(buyerRule, buyerItem) } - logs, sub, err := _Curve.contract.WatchLogs(opts, "TokenExchange", buyerRule) + logs, sub, err := _StableSwapNG.contract.WatchLogs(opts, "TokenExchange", buyerRule) if err != nil { return nil, err } @@ -3252,8 +3252,8 @@ func (_Curve *CurveFilterer) WatchTokenExchange(opts *bind.WatchOpts, sink chan< select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(CurveTokenExchange) - if err := _Curve.contract.UnpackLog(event, "TokenExchange", log); err != nil { + event := new(StableSwapNGTokenExchange) + if err := _StableSwapNG.contract.UnpackLog(event, "TokenExchange", log); err != nil { return err } event.Raw = log @@ -3277,18 +3277,18 @@ func (_Curve *CurveFilterer) WatchTokenExchange(opts *bind.WatchOpts, sink chan< // ParseTokenExchange is a log parse operation binding the contract event 0x8b3e96f2b889fa771c53c981b40daf005f63f637f1869f707052d15a3dd97140. // // Solidity: event TokenExchange(address indexed buyer, int128 sold_id, uint256 tokens_sold, int128 bought_id, uint256 tokens_bought) -func (_Curve *CurveFilterer) ParseTokenExchange(log types.Log) (*CurveTokenExchange, error) { - event := new(CurveTokenExchange) - if err := _Curve.contract.UnpackLog(event, "TokenExchange", log); err != nil { +func (_StableSwapNG *StableSwapNGFilterer) ParseTokenExchange(log types.Log) (*StableSwapNGTokenExchange, error) { + event := new(StableSwapNGTokenExchange) + if err := _StableSwapNG.contract.UnpackLog(event, "TokenExchange", log); err != nil { return nil, err } event.Raw = log return event, nil } -// CurveTokenExchangeUnderlyingIterator is returned from FilterTokenExchangeUnderlying and is used to iterate over the raw logs and unpacked data for TokenExchangeUnderlying events raised by the Curve contract. -type CurveTokenExchangeUnderlyingIterator struct { - Event *CurveTokenExchangeUnderlying // Event containing the contract specifics and raw log +// StableSwapNGTokenExchangeUnderlyingIterator is returned from FilterTokenExchangeUnderlying and is used to iterate over the raw logs and unpacked data for TokenExchangeUnderlying events raised by the StableSwapNG contract. +type StableSwapNGTokenExchangeUnderlyingIterator struct { + Event *StableSwapNGTokenExchangeUnderlying // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -3302,7 +3302,7 @@ type CurveTokenExchangeUnderlyingIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *CurveTokenExchangeUnderlyingIterator) Next() bool { +func (it *StableSwapNGTokenExchangeUnderlyingIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -3311,7 +3311,7 @@ func (it *CurveTokenExchangeUnderlyingIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CurveTokenExchangeUnderlying) + it.Event = new(StableSwapNGTokenExchangeUnderlying) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -3326,7 +3326,7 @@ func (it *CurveTokenExchangeUnderlyingIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(CurveTokenExchangeUnderlying) + it.Event = new(StableSwapNGTokenExchangeUnderlying) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -3342,19 +3342,19 @@ func (it *CurveTokenExchangeUnderlyingIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *CurveTokenExchangeUnderlyingIterator) Error() error { +func (it *StableSwapNGTokenExchangeUnderlyingIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *CurveTokenExchangeUnderlyingIterator) Close() error { +func (it *StableSwapNGTokenExchangeUnderlyingIterator) Close() error { it.sub.Unsubscribe() return nil } -// CurveTokenExchangeUnderlying represents a TokenExchangeUnderlying event raised by the Curve contract. -type CurveTokenExchangeUnderlying struct { +// StableSwapNGTokenExchangeUnderlying represents a TokenExchangeUnderlying event raised by the StableSwapNG contract. +type StableSwapNGTokenExchangeUnderlying struct { Buyer common.Address SoldId *big.Int TokensSold *big.Int @@ -3366,31 +3366,31 @@ type CurveTokenExchangeUnderlying struct { // FilterTokenExchangeUnderlying is a free log retrieval operation binding the contract event 0xd013ca23e77a65003c2c659c5442c00c805371b7fc1ebd4c206c41d1536bd90b. // // Solidity: event TokenExchangeUnderlying(address indexed buyer, int128 sold_id, uint256 tokens_sold, int128 bought_id, uint256 tokens_bought) -func (_Curve *CurveFilterer) FilterTokenExchangeUnderlying(opts *bind.FilterOpts, buyer []common.Address) (*CurveTokenExchangeUnderlyingIterator, error) { +func (_StableSwapNG *StableSwapNGFilterer) FilterTokenExchangeUnderlying(opts *bind.FilterOpts, buyer []common.Address) (*StableSwapNGTokenExchangeUnderlyingIterator, error) { var buyerRule []interface{} for _, buyerItem := range buyer { buyerRule = append(buyerRule, buyerItem) } - logs, sub, err := _Curve.contract.FilterLogs(opts, "TokenExchangeUnderlying", buyerRule) + logs, sub, err := _StableSwapNG.contract.FilterLogs(opts, "TokenExchangeUnderlying", buyerRule) if err != nil { return nil, err } - return &CurveTokenExchangeUnderlyingIterator{contract: _Curve.contract, event: "TokenExchangeUnderlying", logs: logs, sub: sub}, nil + return &StableSwapNGTokenExchangeUnderlyingIterator{contract: _StableSwapNG.contract, event: "TokenExchangeUnderlying", logs: logs, sub: sub}, nil } // WatchTokenExchangeUnderlying is a free log subscription operation binding the contract event 0xd013ca23e77a65003c2c659c5442c00c805371b7fc1ebd4c206c41d1536bd90b. // // Solidity: event TokenExchangeUnderlying(address indexed buyer, int128 sold_id, uint256 tokens_sold, int128 bought_id, uint256 tokens_bought) -func (_Curve *CurveFilterer) WatchTokenExchangeUnderlying(opts *bind.WatchOpts, sink chan<- *CurveTokenExchangeUnderlying, buyer []common.Address) (event.Subscription, error) { +func (_StableSwapNG *StableSwapNGFilterer) WatchTokenExchangeUnderlying(opts *bind.WatchOpts, sink chan<- *StableSwapNGTokenExchangeUnderlying, buyer []common.Address) (event.Subscription, error) { var buyerRule []interface{} for _, buyerItem := range buyer { buyerRule = append(buyerRule, buyerItem) } - logs, sub, err := _Curve.contract.WatchLogs(opts, "TokenExchangeUnderlying", buyerRule) + logs, sub, err := _StableSwapNG.contract.WatchLogs(opts, "TokenExchangeUnderlying", buyerRule) if err != nil { return nil, err } @@ -3400,8 +3400,8 @@ func (_Curve *CurveFilterer) WatchTokenExchangeUnderlying(opts *bind.WatchOpts, select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(CurveTokenExchangeUnderlying) - if err := _Curve.contract.UnpackLog(event, "TokenExchangeUnderlying", log); err != nil { + event := new(StableSwapNGTokenExchangeUnderlying) + if err := _StableSwapNG.contract.UnpackLog(event, "TokenExchangeUnderlying", log); err != nil { return err } event.Raw = log @@ -3425,18 +3425,18 @@ func (_Curve *CurveFilterer) WatchTokenExchangeUnderlying(opts *bind.WatchOpts, // ParseTokenExchangeUnderlying is a log parse operation binding the contract event 0xd013ca23e77a65003c2c659c5442c00c805371b7fc1ebd4c206c41d1536bd90b. // // Solidity: event TokenExchangeUnderlying(address indexed buyer, int128 sold_id, uint256 tokens_sold, int128 bought_id, uint256 tokens_bought) -func (_Curve *CurveFilterer) ParseTokenExchangeUnderlying(log types.Log) (*CurveTokenExchangeUnderlying, error) { - event := new(CurveTokenExchangeUnderlying) - if err := _Curve.contract.UnpackLog(event, "TokenExchangeUnderlying", log); err != nil { +func (_StableSwapNG *StableSwapNGFilterer) ParseTokenExchangeUnderlying(log types.Log) (*StableSwapNGTokenExchangeUnderlying, error) { + event := new(StableSwapNGTokenExchangeUnderlying) + if err := _StableSwapNG.contract.UnpackLog(event, "TokenExchangeUnderlying", log); err != nil { return nil, err } event.Raw = log return event, nil } -// CurveTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the Curve contract. -type CurveTransferIterator struct { - Event *CurveTransfer // Event containing the contract specifics and raw log +// StableSwapNGTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the StableSwapNG contract. +type StableSwapNGTransferIterator struct { + Event *StableSwapNGTransfer // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -3450,7 +3450,7 @@ type CurveTransferIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *CurveTransferIterator) Next() bool { +func (it *StableSwapNGTransferIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -3459,7 +3459,7 @@ func (it *CurveTransferIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CurveTransfer) + it.Event = new(StableSwapNGTransfer) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -3474,7 +3474,7 @@ func (it *CurveTransferIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(CurveTransfer) + it.Event = new(StableSwapNGTransfer) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -3490,19 +3490,19 @@ func (it *CurveTransferIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *CurveTransferIterator) Error() error { +func (it *StableSwapNGTransferIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *CurveTransferIterator) Close() error { +func (it *StableSwapNGTransferIterator) Close() error { it.sub.Unsubscribe() return nil } -// CurveTransfer represents a Transfer event raised by the Curve contract. -type CurveTransfer struct { +// StableSwapNGTransfer represents a Transfer event raised by the StableSwapNG contract. +type StableSwapNGTransfer struct { Sender common.Address Receiver common.Address Value *big.Int @@ -3512,7 +3512,7 @@ type CurveTransfer struct { // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. // // Solidity: event Transfer(address indexed sender, address indexed receiver, uint256 value) -func (_Curve *CurveFilterer) FilterTransfer(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*CurveTransferIterator, error) { +func (_StableSwapNG *StableSwapNGFilterer) FilterTransfer(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*StableSwapNGTransferIterator, error) { var senderRule []interface{} for _, senderItem := range sender { @@ -3523,17 +3523,17 @@ func (_Curve *CurveFilterer) FilterTransfer(opts *bind.FilterOpts, sender []comm receiverRule = append(receiverRule, receiverItem) } - logs, sub, err := _Curve.contract.FilterLogs(opts, "Transfer", senderRule, receiverRule) + logs, sub, err := _StableSwapNG.contract.FilterLogs(opts, "Transfer", senderRule, receiverRule) if err != nil { return nil, err } - return &CurveTransferIterator{contract: _Curve.contract, event: "Transfer", logs: logs, sub: sub}, nil + return &StableSwapNGTransferIterator{contract: _StableSwapNG.contract, event: "Transfer", logs: logs, sub: sub}, nil } // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. // // Solidity: event Transfer(address indexed sender, address indexed receiver, uint256 value) -func (_Curve *CurveFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *CurveTransfer, sender []common.Address, receiver []common.Address) (event.Subscription, error) { +func (_StableSwapNG *StableSwapNGFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *StableSwapNGTransfer, sender []common.Address, receiver []common.Address) (event.Subscription, error) { var senderRule []interface{} for _, senderItem := range sender { @@ -3544,7 +3544,7 @@ func (_Curve *CurveFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *Cu receiverRule = append(receiverRule, receiverItem) } - logs, sub, err := _Curve.contract.WatchLogs(opts, "Transfer", senderRule, receiverRule) + logs, sub, err := _StableSwapNG.contract.WatchLogs(opts, "Transfer", senderRule, receiverRule) if err != nil { return nil, err } @@ -3554,8 +3554,8 @@ func (_Curve *CurveFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *Cu select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(CurveTransfer) - if err := _Curve.contract.UnpackLog(event, "Transfer", log); err != nil { + event := new(StableSwapNGTransfer) + if err := _StableSwapNG.contract.UnpackLog(event, "Transfer", log); err != nil { return err } event.Raw = log @@ -3579,9 +3579,9 @@ func (_Curve *CurveFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *Cu // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. // // Solidity: event Transfer(address indexed sender, address indexed receiver, uint256 value) -func (_Curve *CurveFilterer) ParseTransfer(log types.Log) (*CurveTransfer, error) { - event := new(CurveTransfer) - if err := _Curve.contract.UnpackLog(event, "Transfer", log); err != nil { +func (_StableSwapNG *StableSwapNGFilterer) ParseTransfer(log types.Log) (*StableSwapNGTransfer, error) { + event := new(StableSwapNGTransfer) + if err := _StableSwapNG.contract.UnpackLog(event, "Transfer", log); err != nil { return nil, err } event.Raw = log diff --git a/abi/curve/twocryptooptimized.go b/abi/curve/twocryptooptimized.go new file mode 100644 index 0000000..b9f45f0 --- /dev/null +++ b/abi/curve/twocryptooptimized.go @@ -0,0 +1,3517 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package curve + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// TwocryptoOptimizedMetaData contains all meta data concerning the TwocryptoOptimized contract. +var TwocryptoOptimizedMetaData = &bind.MetaData{ + ABI: "[{\"name\":\"Transfer\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"TokenExchange\",\"inputs\":[{\"name\":\"buyer\",\"type\":\"address\",\"indexed\":true},{\"name\":\"sold_id\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"tokens_sold\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"bought_id\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"tokens_bought\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"fee\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"packed_price_scale\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"AddLiquidity\",\"inputs\":[{\"name\":\"provider\",\"type\":\"address\",\"indexed\":true},{\"name\":\"token_amounts\",\"type\":\"uint256[2]\",\"indexed\":false},{\"name\":\"fee\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"token_supply\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"packed_price_scale\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"RemoveLiquidity\",\"inputs\":[{\"name\":\"provider\",\"type\":\"address\",\"indexed\":true},{\"name\":\"token_amounts\",\"type\":\"uint256[2]\",\"indexed\":false},{\"name\":\"token_supply\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"RemoveLiquidityOne\",\"inputs\":[{\"name\":\"provider\",\"type\":\"address\",\"indexed\":true},{\"name\":\"token_amount\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"coin_index\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"coin_amount\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"approx_fee\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"packed_price_scale\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"NewParameters\",\"inputs\":[{\"name\":\"mid_fee\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"out_fee\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"fee_gamma\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"allowed_extra_profit\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"adjustment_step\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"ma_time\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"RampAgamma\",\"inputs\":[{\"name\":\"initial_A\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"future_A\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"initial_gamma\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"future_gamma\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"initial_time\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"future_time\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"StopRampA\",\"inputs\":[{\"name\":\"current_A\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"current_gamma\",\"type\":\"uint256\",\"indexed\":false},{\"name\":\"time\",\"type\":\"uint256\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"name\":\"ClaimAdminFee\",\"inputs\":[{\"name\":\"admin\",\"type\":\"address\",\"indexed\":true},{\"name\":\"tokens\",\"type\":\"uint256[2]\",\"indexed\":false}],\"anonymous\":false,\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"constructor\",\"inputs\":[{\"name\":\"_name\",\"type\":\"string\"},{\"name\":\"_symbol\",\"type\":\"string\"},{\"name\":\"_coins\",\"type\":\"address[2]\"},{\"name\":\"_math\",\"type\":\"address\"},{\"name\":\"_salt\",\"type\":\"bytes32\"},{\"name\":\"packed_precisions\",\"type\":\"uint256\"},{\"name\":\"packed_gamma_A\",\"type\":\"uint256\"},{\"name\":\"packed_fee_params\",\"type\":\"uint256\"},{\"name\":\"packed_rebalancing_params\",\"type\":\"uint256\"},{\"name\":\"initial_price\",\"type\":\"uint256\"}],\"outputs\":[]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"exchange\",\"inputs\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"j\",\"type\":\"uint256\"},{\"name\":\"dx\",\"type\":\"uint256\"},{\"name\":\"min_dy\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"exchange\",\"inputs\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"j\",\"type\":\"uint256\"},{\"name\":\"dx\",\"type\":\"uint256\"},{\"name\":\"min_dy\",\"type\":\"uint256\"},{\"name\":\"receiver\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"exchange_received\",\"inputs\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"j\",\"type\":\"uint256\"},{\"name\":\"dx\",\"type\":\"uint256\"},{\"name\":\"min_dy\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"exchange_received\",\"inputs\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"j\",\"type\":\"uint256\"},{\"name\":\"dx\",\"type\":\"uint256\"},{\"name\":\"min_dy\",\"type\":\"uint256\"},{\"name\":\"receiver\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"add_liquidity\",\"inputs\":[{\"name\":\"amounts\",\"type\":\"uint256[2]\"},{\"name\":\"min_mint_amount\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"add_liquidity\",\"inputs\":[{\"name\":\"amounts\",\"type\":\"uint256[2]\"},{\"name\":\"min_mint_amount\",\"type\":\"uint256\"},{\"name\":\"receiver\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"remove_liquidity\",\"inputs\":[{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"min_amounts\",\"type\":\"uint256[2]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[2]\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"remove_liquidity\",\"inputs\":[{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"min_amounts\",\"type\":\"uint256[2]\"},{\"name\":\"receiver\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[2]\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"remove_liquidity_one_coin\",\"inputs\":[{\"name\":\"token_amount\",\"type\":\"uint256\"},{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"min_amount\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"remove_liquidity_one_coin\",\"inputs\":[{\"name\":\"token_amount\",\"type\":\"uint256\"},{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"min_amount\",\"type\":\"uint256\"},{\"name\":\"receiver\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"permit\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_v\",\"type\":\"uint8\"},{\"name\":\"_r\",\"type\":\"bytes32\"},{\"name\":\"_s\",\"type\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"fee_receiver\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"admin\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"calc_token_amount\",\"inputs\":[{\"name\":\"amounts\",\"type\":\"uint256[2]\"},{\"name\":\"deposit\",\"type\":\"bool\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"get_dy\",\"inputs\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"j\",\"type\":\"uint256\"},{\"name\":\"dx\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"get_dx\",\"inputs\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"j\",\"type\":\"uint256\"},{\"name\":\"dy\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"lp_price\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"get_virtual_price\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"price_oracle\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"price_scale\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"fee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"calc_withdraw_one_coin\",\"inputs\":[{\"name\":\"token_amount\",\"type\":\"uint256\"},{\"name\":\"i\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"calc_token_fee\",\"inputs\":[{\"name\":\"amounts\",\"type\":\"uint256[2]\"},{\"name\":\"xp\",\"type\":\"uint256[2]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"A\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"gamma\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"mid_fee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"out_fee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"fee_gamma\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowed_extra_profit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"adjustment_step\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ma_time\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"precisions\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[2]\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"fee_calc\",\"inputs\":[{\"name\":\"xp\",\"type\":\"uint256[2]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"ramp_A_gamma\",\"inputs\":[{\"name\":\"future_A\",\"type\":\"uint256\"},{\"name\":\"future_gamma\",\"type\":\"uint256\"},{\"name\":\"future_time\",\"type\":\"uint256\"}],\"outputs\":[]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"stop_ramp_A_gamma\",\"inputs\":[],\"outputs\":[]},{\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"apply_new_parameters\",\"inputs\":[{\"name\":\"_new_mid_fee\",\"type\":\"uint256\"},{\"name\":\"_new_out_fee\",\"type\":\"uint256\"},{\"name\":\"_new_fee_gamma\",\"type\":\"uint256\"},{\"name\":\"_new_allowed_extra_profit\",\"type\":\"uint256\"},{\"name\":\"_new_adjustment_step\",\"type\":\"uint256\"},{\"name\":\"_new_ma_time\",\"type\":\"uint256\"}],\"outputs\":[]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"MATH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"coins\",\"inputs\":[{\"name\":\"arg0\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"factory\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"last_prices\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"last_timestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"initial_A_gamma\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"initial_A_gamma_time\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"future_A_gamma\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"future_A_gamma_time\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balances\",\"inputs\":[{\"name\":\"arg0\",\"type\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"D\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"xcp_profit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"xcp_profit_a\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"virtual_price\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"packed_rebalancing_params\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"packed_fee_params\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"ADMIN_FEE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"arg0\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"arg0\",\"type\":\"address\"},{\"name\":\"arg1\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"inputs\":[{\"name\":\"arg0\",\"type\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}]},{\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"salt\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}]}]", +} + +// TwocryptoOptimizedABI is the input ABI used to generate the binding from. +// Deprecated: Use TwocryptoOptimizedMetaData.ABI instead. +var TwocryptoOptimizedABI = TwocryptoOptimizedMetaData.ABI + +// TwocryptoOptimized is an auto generated Go binding around an Ethereum contract. +type TwocryptoOptimized struct { + TwocryptoOptimizedCaller // Read-only binding to the contract + TwocryptoOptimizedTransactor // Write-only binding to the contract + TwocryptoOptimizedFilterer // Log filterer for contract events +} + +// TwocryptoOptimizedCaller is an auto generated read-only Go binding around an Ethereum contract. +type TwocryptoOptimizedCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TwocryptoOptimizedTransactor is an auto generated write-only Go binding around an Ethereum contract. +type TwocryptoOptimizedTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TwocryptoOptimizedFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type TwocryptoOptimizedFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TwocryptoOptimizedSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type TwocryptoOptimizedSession struct { + Contract *TwocryptoOptimized // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TwocryptoOptimizedCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type TwocryptoOptimizedCallerSession struct { + Contract *TwocryptoOptimizedCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// TwocryptoOptimizedTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type TwocryptoOptimizedTransactorSession struct { + Contract *TwocryptoOptimizedTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TwocryptoOptimizedRaw is an auto generated low-level Go binding around an Ethereum contract. +type TwocryptoOptimizedRaw struct { + Contract *TwocryptoOptimized // Generic contract binding to access the raw methods on +} + +// TwocryptoOptimizedCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type TwocryptoOptimizedCallerRaw struct { + Contract *TwocryptoOptimizedCaller // Generic read-only contract binding to access the raw methods on +} + +// TwocryptoOptimizedTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type TwocryptoOptimizedTransactorRaw struct { + Contract *TwocryptoOptimizedTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewTwocryptoOptimized creates a new instance of TwocryptoOptimized, bound to a specific deployed contract. +func NewTwocryptoOptimized(address common.Address, backend bind.ContractBackend) (*TwocryptoOptimized, error) { + contract, err := bindTwocryptoOptimized(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &TwocryptoOptimized{TwocryptoOptimizedCaller: TwocryptoOptimizedCaller{contract: contract}, TwocryptoOptimizedTransactor: TwocryptoOptimizedTransactor{contract: contract}, TwocryptoOptimizedFilterer: TwocryptoOptimizedFilterer{contract: contract}}, nil +} + +// NewTwocryptoOptimizedCaller creates a new read-only instance of TwocryptoOptimized, bound to a specific deployed contract. +func NewTwocryptoOptimizedCaller(address common.Address, caller bind.ContractCaller) (*TwocryptoOptimizedCaller, error) { + contract, err := bindTwocryptoOptimized(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &TwocryptoOptimizedCaller{contract: contract}, nil +} + +// NewTwocryptoOptimizedTransactor creates a new write-only instance of TwocryptoOptimized, bound to a specific deployed contract. +func NewTwocryptoOptimizedTransactor(address common.Address, transactor bind.ContractTransactor) (*TwocryptoOptimizedTransactor, error) { + contract, err := bindTwocryptoOptimized(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &TwocryptoOptimizedTransactor{contract: contract}, nil +} + +// NewTwocryptoOptimizedFilterer creates a new log filterer instance of TwocryptoOptimized, bound to a specific deployed contract. +func NewTwocryptoOptimizedFilterer(address common.Address, filterer bind.ContractFilterer) (*TwocryptoOptimizedFilterer, error) { + contract, err := bindTwocryptoOptimized(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &TwocryptoOptimizedFilterer{contract: contract}, nil +} + +// bindTwocryptoOptimized binds a generic wrapper to an already deployed contract. +func bindTwocryptoOptimized(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := TwocryptoOptimizedMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_TwocryptoOptimized *TwocryptoOptimizedRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _TwocryptoOptimized.Contract.TwocryptoOptimizedCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_TwocryptoOptimized *TwocryptoOptimizedRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.TwocryptoOptimizedTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_TwocryptoOptimized *TwocryptoOptimizedRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.TwocryptoOptimizedTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_TwocryptoOptimized *TwocryptoOptimizedCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _TwocryptoOptimized.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.contract.Transact(opts, method, params...) +} + +// A is a free data retrieval call binding the contract method 0xf446c1d0. +// +// Solidity: function A() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) A(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "A") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// A is a free data retrieval call binding the contract method 0xf446c1d0. +// +// Solidity: function A() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) A() (*big.Int, error) { + return _TwocryptoOptimized.Contract.A(&_TwocryptoOptimized.CallOpts) +} + +// A is a free data retrieval call binding the contract method 0xf446c1d0. +// +// Solidity: function A() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) A() (*big.Int, error) { + return _TwocryptoOptimized.Contract.A(&_TwocryptoOptimized.CallOpts) +} + +// ADMINFEE is a free data retrieval call binding the contract method 0x4469ed14. +// +// Solidity: function ADMIN_FEE() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) ADMINFEE(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "ADMIN_FEE") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ADMINFEE is a free data retrieval call binding the contract method 0x4469ed14. +// +// Solidity: function ADMIN_FEE() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) ADMINFEE() (*big.Int, error) { + return _TwocryptoOptimized.Contract.ADMINFEE(&_TwocryptoOptimized.CallOpts) +} + +// ADMINFEE is a free data retrieval call binding the contract method 0x4469ed14. +// +// Solidity: function ADMIN_FEE() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) ADMINFEE() (*big.Int, error) { + return _TwocryptoOptimized.Contract.ADMINFEE(&_TwocryptoOptimized.CallOpts) +} + +// D is a free data retrieval call binding the contract method 0x0f529ba2. +// +// Solidity: function D() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) D(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "D") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// D is a free data retrieval call binding the contract method 0x0f529ba2. +// +// Solidity: function D() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) D() (*big.Int, error) { + return _TwocryptoOptimized.Contract.D(&_TwocryptoOptimized.CallOpts) +} + +// D is a free data retrieval call binding the contract method 0x0f529ba2. +// +// Solidity: function D() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) D() (*big.Int, error) { + return _TwocryptoOptimized.Contract.D(&_TwocryptoOptimized.CallOpts) +} + +// DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515. +// +// Solidity: function DOMAIN_SEPARATOR() view returns(bytes32) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) DOMAINSEPARATOR(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "DOMAIN_SEPARATOR") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515. +// +// Solidity: function DOMAIN_SEPARATOR() view returns(bytes32) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) DOMAINSEPARATOR() ([32]byte, error) { + return _TwocryptoOptimized.Contract.DOMAINSEPARATOR(&_TwocryptoOptimized.CallOpts) +} + +// DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515. +// +// Solidity: function DOMAIN_SEPARATOR() view returns(bytes32) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) DOMAINSEPARATOR() ([32]byte, error) { + return _TwocryptoOptimized.Contract.DOMAINSEPARATOR(&_TwocryptoOptimized.CallOpts) +} + +// MATH is a free data retrieval call binding the contract method 0xed6c1546. +// +// Solidity: function MATH() view returns(address) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) MATH(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "MATH") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// MATH is a free data retrieval call binding the contract method 0xed6c1546. +// +// Solidity: function MATH() view returns(address) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) MATH() (common.Address, error) { + return _TwocryptoOptimized.Contract.MATH(&_TwocryptoOptimized.CallOpts) +} + +// MATH is a free data retrieval call binding the contract method 0xed6c1546. +// +// Solidity: function MATH() view returns(address) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) MATH() (common.Address, error) { + return _TwocryptoOptimized.Contract.MATH(&_TwocryptoOptimized.CallOpts) +} + +// AdjustmentStep is a free data retrieval call binding the contract method 0x083812e5. +// +// Solidity: function adjustment_step() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) AdjustmentStep(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "adjustment_step") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// AdjustmentStep is a free data retrieval call binding the contract method 0x083812e5. +// +// Solidity: function adjustment_step() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) AdjustmentStep() (*big.Int, error) { + return _TwocryptoOptimized.Contract.AdjustmentStep(&_TwocryptoOptimized.CallOpts) +} + +// AdjustmentStep is a free data retrieval call binding the contract method 0x083812e5. +// +// Solidity: function adjustment_step() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) AdjustmentStep() (*big.Int, error) { + return _TwocryptoOptimized.Contract.AdjustmentStep(&_TwocryptoOptimized.CallOpts) +} + +// Admin is a free data retrieval call binding the contract method 0xf851a440. +// +// Solidity: function admin() view returns(address) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) Admin(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "admin") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Admin is a free data retrieval call binding the contract method 0xf851a440. +// +// Solidity: function admin() view returns(address) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Admin() (common.Address, error) { + return _TwocryptoOptimized.Contract.Admin(&_TwocryptoOptimized.CallOpts) +} + +// Admin is a free data retrieval call binding the contract method 0xf851a440. +// +// Solidity: function admin() view returns(address) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) Admin() (common.Address, error) { + return _TwocryptoOptimized.Contract.Admin(&_TwocryptoOptimized.CallOpts) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address arg0, address arg1) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) Allowance(opts *bind.CallOpts, arg0 common.Address, arg1 common.Address) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "allowance", arg0, arg1) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address arg0, address arg1) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Allowance(arg0 common.Address, arg1 common.Address) (*big.Int, error) { + return _TwocryptoOptimized.Contract.Allowance(&_TwocryptoOptimized.CallOpts, arg0, arg1) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address arg0, address arg1) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) Allowance(arg0 common.Address, arg1 common.Address) (*big.Int, error) { + return _TwocryptoOptimized.Contract.Allowance(&_TwocryptoOptimized.CallOpts, arg0, arg1) +} + +// AllowedExtraProfit is a free data retrieval call binding the contract method 0x49fe9e77. +// +// Solidity: function allowed_extra_profit() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) AllowedExtraProfit(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "allowed_extra_profit") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// AllowedExtraProfit is a free data retrieval call binding the contract method 0x49fe9e77. +// +// Solidity: function allowed_extra_profit() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) AllowedExtraProfit() (*big.Int, error) { + return _TwocryptoOptimized.Contract.AllowedExtraProfit(&_TwocryptoOptimized.CallOpts) +} + +// AllowedExtraProfit is a free data retrieval call binding the contract method 0x49fe9e77. +// +// Solidity: function allowed_extra_profit() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) AllowedExtraProfit() (*big.Int, error) { + return _TwocryptoOptimized.Contract.AllowedExtraProfit(&_TwocryptoOptimized.CallOpts) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address arg0) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) BalanceOf(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "balanceOf", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address arg0) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) BalanceOf(arg0 common.Address) (*big.Int, error) { + return _TwocryptoOptimized.Contract.BalanceOf(&_TwocryptoOptimized.CallOpts, arg0) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address arg0) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) BalanceOf(arg0 common.Address) (*big.Int, error) { + return _TwocryptoOptimized.Contract.BalanceOf(&_TwocryptoOptimized.CallOpts, arg0) +} + +// Balances is a free data retrieval call binding the contract method 0x4903b0d1. +// +// Solidity: function balances(uint256 arg0) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) Balances(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "balances", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Balances is a free data retrieval call binding the contract method 0x4903b0d1. +// +// Solidity: function balances(uint256 arg0) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Balances(arg0 *big.Int) (*big.Int, error) { + return _TwocryptoOptimized.Contract.Balances(&_TwocryptoOptimized.CallOpts, arg0) +} + +// Balances is a free data retrieval call binding the contract method 0x4903b0d1. +// +// Solidity: function balances(uint256 arg0) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) Balances(arg0 *big.Int) (*big.Int, error) { + return _TwocryptoOptimized.Contract.Balances(&_TwocryptoOptimized.CallOpts, arg0) +} + +// CalcTokenAmount is a free data retrieval call binding the contract method 0xed8e84f3. +// +// Solidity: function calc_token_amount(uint256[2] amounts, bool deposit) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) CalcTokenAmount(opts *bind.CallOpts, amounts [2]*big.Int, deposit bool) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "calc_token_amount", amounts, deposit) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// CalcTokenAmount is a free data retrieval call binding the contract method 0xed8e84f3. +// +// Solidity: function calc_token_amount(uint256[2] amounts, bool deposit) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) CalcTokenAmount(amounts [2]*big.Int, deposit bool) (*big.Int, error) { + return _TwocryptoOptimized.Contract.CalcTokenAmount(&_TwocryptoOptimized.CallOpts, amounts, deposit) +} + +// CalcTokenAmount is a free data retrieval call binding the contract method 0xed8e84f3. +// +// Solidity: function calc_token_amount(uint256[2] amounts, bool deposit) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) CalcTokenAmount(amounts [2]*big.Int, deposit bool) (*big.Int, error) { + return _TwocryptoOptimized.Contract.CalcTokenAmount(&_TwocryptoOptimized.CallOpts, amounts, deposit) +} + +// CalcTokenFee is a free data retrieval call binding the contract method 0xbcc8342e. +// +// Solidity: function calc_token_fee(uint256[2] amounts, uint256[2] xp) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) CalcTokenFee(opts *bind.CallOpts, amounts [2]*big.Int, xp [2]*big.Int) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "calc_token_fee", amounts, xp) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// CalcTokenFee is a free data retrieval call binding the contract method 0xbcc8342e. +// +// Solidity: function calc_token_fee(uint256[2] amounts, uint256[2] xp) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) CalcTokenFee(amounts [2]*big.Int, xp [2]*big.Int) (*big.Int, error) { + return _TwocryptoOptimized.Contract.CalcTokenFee(&_TwocryptoOptimized.CallOpts, amounts, xp) +} + +// CalcTokenFee is a free data retrieval call binding the contract method 0xbcc8342e. +// +// Solidity: function calc_token_fee(uint256[2] amounts, uint256[2] xp) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) CalcTokenFee(amounts [2]*big.Int, xp [2]*big.Int) (*big.Int, error) { + return _TwocryptoOptimized.Contract.CalcTokenFee(&_TwocryptoOptimized.CallOpts, amounts, xp) +} + +// CalcWithdrawOneCoin is a free data retrieval call binding the contract method 0x4fb08c5e. +// +// Solidity: function calc_withdraw_one_coin(uint256 token_amount, uint256 i) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) CalcWithdrawOneCoin(opts *bind.CallOpts, token_amount *big.Int, i *big.Int) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "calc_withdraw_one_coin", token_amount, i) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// CalcWithdrawOneCoin is a free data retrieval call binding the contract method 0x4fb08c5e. +// +// Solidity: function calc_withdraw_one_coin(uint256 token_amount, uint256 i) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) CalcWithdrawOneCoin(token_amount *big.Int, i *big.Int) (*big.Int, error) { + return _TwocryptoOptimized.Contract.CalcWithdrawOneCoin(&_TwocryptoOptimized.CallOpts, token_amount, i) +} + +// CalcWithdrawOneCoin is a free data retrieval call binding the contract method 0x4fb08c5e. +// +// Solidity: function calc_withdraw_one_coin(uint256 token_amount, uint256 i) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) CalcWithdrawOneCoin(token_amount *big.Int, i *big.Int) (*big.Int, error) { + return _TwocryptoOptimized.Contract.CalcWithdrawOneCoin(&_TwocryptoOptimized.CallOpts, token_amount, i) +} + +// Coins is a free data retrieval call binding the contract method 0xc6610657. +// +// Solidity: function coins(uint256 arg0) view returns(address) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) Coins(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "coins", arg0) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Coins is a free data retrieval call binding the contract method 0xc6610657. +// +// Solidity: function coins(uint256 arg0) view returns(address) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Coins(arg0 *big.Int) (common.Address, error) { + return _TwocryptoOptimized.Contract.Coins(&_TwocryptoOptimized.CallOpts, arg0) +} + +// Coins is a free data retrieval call binding the contract method 0xc6610657. +// +// Solidity: function coins(uint256 arg0) view returns(address) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) Coins(arg0 *big.Int) (common.Address, error) { + return _TwocryptoOptimized.Contract.Coins(&_TwocryptoOptimized.CallOpts, arg0) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "decimals") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Decimals() (uint8, error) { + return _TwocryptoOptimized.Contract.Decimals(&_TwocryptoOptimized.CallOpts) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) Decimals() (uint8, error) { + return _TwocryptoOptimized.Contract.Decimals(&_TwocryptoOptimized.CallOpts) +} + +// Factory is a free data retrieval call binding the contract method 0xc45a0155. +// +// Solidity: function factory() view returns(address) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) Factory(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "factory") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Factory is a free data retrieval call binding the contract method 0xc45a0155. +// +// Solidity: function factory() view returns(address) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Factory() (common.Address, error) { + return _TwocryptoOptimized.Contract.Factory(&_TwocryptoOptimized.CallOpts) +} + +// Factory is a free data retrieval call binding the contract method 0xc45a0155. +// +// Solidity: function factory() view returns(address) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) Factory() (common.Address, error) { + return _TwocryptoOptimized.Contract.Factory(&_TwocryptoOptimized.CallOpts) +} + +// Fee is a free data retrieval call binding the contract method 0xddca3f43. +// +// Solidity: function fee() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) Fee(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "fee") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Fee is a free data retrieval call binding the contract method 0xddca3f43. +// +// Solidity: function fee() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Fee() (*big.Int, error) { + return _TwocryptoOptimized.Contract.Fee(&_TwocryptoOptimized.CallOpts) +} + +// Fee is a free data retrieval call binding the contract method 0xddca3f43. +// +// Solidity: function fee() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) Fee() (*big.Int, error) { + return _TwocryptoOptimized.Contract.Fee(&_TwocryptoOptimized.CallOpts) +} + +// FeeCalc is a free data retrieval call binding the contract method 0x80823d9e. +// +// Solidity: function fee_calc(uint256[2] xp) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) FeeCalc(opts *bind.CallOpts, xp [2]*big.Int) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "fee_calc", xp) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// FeeCalc is a free data retrieval call binding the contract method 0x80823d9e. +// +// Solidity: function fee_calc(uint256[2] xp) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) FeeCalc(xp [2]*big.Int) (*big.Int, error) { + return _TwocryptoOptimized.Contract.FeeCalc(&_TwocryptoOptimized.CallOpts, xp) +} + +// FeeCalc is a free data retrieval call binding the contract method 0x80823d9e. +// +// Solidity: function fee_calc(uint256[2] xp) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) FeeCalc(xp [2]*big.Int) (*big.Int, error) { + return _TwocryptoOptimized.Contract.FeeCalc(&_TwocryptoOptimized.CallOpts, xp) +} + +// FeeGamma is a free data retrieval call binding the contract method 0x72d4f0e2. +// +// Solidity: function fee_gamma() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) FeeGamma(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "fee_gamma") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// FeeGamma is a free data retrieval call binding the contract method 0x72d4f0e2. +// +// Solidity: function fee_gamma() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) FeeGamma() (*big.Int, error) { + return _TwocryptoOptimized.Contract.FeeGamma(&_TwocryptoOptimized.CallOpts) +} + +// FeeGamma is a free data retrieval call binding the contract method 0x72d4f0e2. +// +// Solidity: function fee_gamma() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) FeeGamma() (*big.Int, error) { + return _TwocryptoOptimized.Contract.FeeGamma(&_TwocryptoOptimized.CallOpts) +} + +// FeeReceiver is a free data retrieval call binding the contract method 0xcab4d3db. +// +// Solidity: function fee_receiver() view returns(address) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) FeeReceiver(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "fee_receiver") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// FeeReceiver is a free data retrieval call binding the contract method 0xcab4d3db. +// +// Solidity: function fee_receiver() view returns(address) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) FeeReceiver() (common.Address, error) { + return _TwocryptoOptimized.Contract.FeeReceiver(&_TwocryptoOptimized.CallOpts) +} + +// FeeReceiver is a free data retrieval call binding the contract method 0xcab4d3db. +// +// Solidity: function fee_receiver() view returns(address) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) FeeReceiver() (common.Address, error) { + return _TwocryptoOptimized.Contract.FeeReceiver(&_TwocryptoOptimized.CallOpts) +} + +// FutureAGamma is a free data retrieval call binding the contract method 0xf30cfad5. +// +// Solidity: function future_A_gamma() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) FutureAGamma(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "future_A_gamma") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// FutureAGamma is a free data retrieval call binding the contract method 0xf30cfad5. +// +// Solidity: function future_A_gamma() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) FutureAGamma() (*big.Int, error) { + return _TwocryptoOptimized.Contract.FutureAGamma(&_TwocryptoOptimized.CallOpts) +} + +// FutureAGamma is a free data retrieval call binding the contract method 0xf30cfad5. +// +// Solidity: function future_A_gamma() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) FutureAGamma() (*big.Int, error) { + return _TwocryptoOptimized.Contract.FutureAGamma(&_TwocryptoOptimized.CallOpts) +} + +// FutureAGammaTime is a free data retrieval call binding the contract method 0xf9ed9597. +// +// Solidity: function future_A_gamma_time() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) FutureAGammaTime(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "future_A_gamma_time") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// FutureAGammaTime is a free data retrieval call binding the contract method 0xf9ed9597. +// +// Solidity: function future_A_gamma_time() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) FutureAGammaTime() (*big.Int, error) { + return _TwocryptoOptimized.Contract.FutureAGammaTime(&_TwocryptoOptimized.CallOpts) +} + +// FutureAGammaTime is a free data retrieval call binding the contract method 0xf9ed9597. +// +// Solidity: function future_A_gamma_time() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) FutureAGammaTime() (*big.Int, error) { + return _TwocryptoOptimized.Contract.FutureAGammaTime(&_TwocryptoOptimized.CallOpts) +} + +// Gamma is a free data retrieval call binding the contract method 0xb1373929. +// +// Solidity: function gamma() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) Gamma(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "gamma") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Gamma is a free data retrieval call binding the contract method 0xb1373929. +// +// Solidity: function gamma() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Gamma() (*big.Int, error) { + return _TwocryptoOptimized.Contract.Gamma(&_TwocryptoOptimized.CallOpts) +} + +// Gamma is a free data retrieval call binding the contract method 0xb1373929. +// +// Solidity: function gamma() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) Gamma() (*big.Int, error) { + return _TwocryptoOptimized.Contract.Gamma(&_TwocryptoOptimized.CallOpts) +} + +// GetDx is a free data retrieval call binding the contract method 0x37ed3a7a. +// +// Solidity: function get_dx(uint256 i, uint256 j, uint256 dy) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) GetDx(opts *bind.CallOpts, i *big.Int, j *big.Int, dy *big.Int) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "get_dx", i, j, dy) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetDx is a free data retrieval call binding the contract method 0x37ed3a7a. +// +// Solidity: function get_dx(uint256 i, uint256 j, uint256 dy) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) GetDx(i *big.Int, j *big.Int, dy *big.Int) (*big.Int, error) { + return _TwocryptoOptimized.Contract.GetDx(&_TwocryptoOptimized.CallOpts, i, j, dy) +} + +// GetDx is a free data retrieval call binding the contract method 0x37ed3a7a. +// +// Solidity: function get_dx(uint256 i, uint256 j, uint256 dy) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) GetDx(i *big.Int, j *big.Int, dy *big.Int) (*big.Int, error) { + return _TwocryptoOptimized.Contract.GetDx(&_TwocryptoOptimized.CallOpts, i, j, dy) +} + +// GetDy is a free data retrieval call binding the contract method 0x556d6e9f. +// +// Solidity: function get_dy(uint256 i, uint256 j, uint256 dx) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) GetDy(opts *bind.CallOpts, i *big.Int, j *big.Int, dx *big.Int) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "get_dy", i, j, dx) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetDy is a free data retrieval call binding the contract method 0x556d6e9f. +// +// Solidity: function get_dy(uint256 i, uint256 j, uint256 dx) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) GetDy(i *big.Int, j *big.Int, dx *big.Int) (*big.Int, error) { + return _TwocryptoOptimized.Contract.GetDy(&_TwocryptoOptimized.CallOpts, i, j, dx) +} + +// GetDy is a free data retrieval call binding the contract method 0x556d6e9f. +// +// Solidity: function get_dy(uint256 i, uint256 j, uint256 dx) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) GetDy(i *big.Int, j *big.Int, dx *big.Int) (*big.Int, error) { + return _TwocryptoOptimized.Contract.GetDy(&_TwocryptoOptimized.CallOpts, i, j, dx) +} + +// GetVirtualPrice is a free data retrieval call binding the contract method 0xbb7b8b80. +// +// Solidity: function get_virtual_price() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) GetVirtualPrice(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "get_virtual_price") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetVirtualPrice is a free data retrieval call binding the contract method 0xbb7b8b80. +// +// Solidity: function get_virtual_price() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) GetVirtualPrice() (*big.Int, error) { + return _TwocryptoOptimized.Contract.GetVirtualPrice(&_TwocryptoOptimized.CallOpts) +} + +// GetVirtualPrice is a free data retrieval call binding the contract method 0xbb7b8b80. +// +// Solidity: function get_virtual_price() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) GetVirtualPrice() (*big.Int, error) { + return _TwocryptoOptimized.Contract.GetVirtualPrice(&_TwocryptoOptimized.CallOpts) +} + +// InitialAGamma is a free data retrieval call binding the contract method 0x204fe3d5. +// +// Solidity: function initial_A_gamma() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) InitialAGamma(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "initial_A_gamma") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// InitialAGamma is a free data retrieval call binding the contract method 0x204fe3d5. +// +// Solidity: function initial_A_gamma() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) InitialAGamma() (*big.Int, error) { + return _TwocryptoOptimized.Contract.InitialAGamma(&_TwocryptoOptimized.CallOpts) +} + +// InitialAGamma is a free data retrieval call binding the contract method 0x204fe3d5. +// +// Solidity: function initial_A_gamma() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) InitialAGamma() (*big.Int, error) { + return _TwocryptoOptimized.Contract.InitialAGamma(&_TwocryptoOptimized.CallOpts) +} + +// InitialAGammaTime is a free data retrieval call binding the contract method 0xe89876ff. +// +// Solidity: function initial_A_gamma_time() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) InitialAGammaTime(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "initial_A_gamma_time") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// InitialAGammaTime is a free data retrieval call binding the contract method 0xe89876ff. +// +// Solidity: function initial_A_gamma_time() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) InitialAGammaTime() (*big.Int, error) { + return _TwocryptoOptimized.Contract.InitialAGammaTime(&_TwocryptoOptimized.CallOpts) +} + +// InitialAGammaTime is a free data retrieval call binding the contract method 0xe89876ff. +// +// Solidity: function initial_A_gamma_time() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) InitialAGammaTime() (*big.Int, error) { + return _TwocryptoOptimized.Contract.InitialAGammaTime(&_TwocryptoOptimized.CallOpts) +} + +// LastPrices is a free data retrieval call binding the contract method 0xc146bf94. +// +// Solidity: function last_prices() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) LastPrices(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "last_prices") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// LastPrices is a free data retrieval call binding the contract method 0xc146bf94. +// +// Solidity: function last_prices() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) LastPrices() (*big.Int, error) { + return _TwocryptoOptimized.Contract.LastPrices(&_TwocryptoOptimized.CallOpts) +} + +// LastPrices is a free data retrieval call binding the contract method 0xc146bf94. +// +// Solidity: function last_prices() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) LastPrices() (*big.Int, error) { + return _TwocryptoOptimized.Contract.LastPrices(&_TwocryptoOptimized.CallOpts) +} + +// LastTimestamp is a free data retrieval call binding the contract method 0x4d23bfa0. +// +// Solidity: function last_timestamp() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) LastTimestamp(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "last_timestamp") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// LastTimestamp is a free data retrieval call binding the contract method 0x4d23bfa0. +// +// Solidity: function last_timestamp() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) LastTimestamp() (*big.Int, error) { + return _TwocryptoOptimized.Contract.LastTimestamp(&_TwocryptoOptimized.CallOpts) +} + +// LastTimestamp is a free data retrieval call binding the contract method 0x4d23bfa0. +// +// Solidity: function last_timestamp() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) LastTimestamp() (*big.Int, error) { + return _TwocryptoOptimized.Contract.LastTimestamp(&_TwocryptoOptimized.CallOpts) +} + +// LpPrice is a free data retrieval call binding the contract method 0x54f0f7d5. +// +// Solidity: function lp_price() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) LpPrice(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "lp_price") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// LpPrice is a free data retrieval call binding the contract method 0x54f0f7d5. +// +// Solidity: function lp_price() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) LpPrice() (*big.Int, error) { + return _TwocryptoOptimized.Contract.LpPrice(&_TwocryptoOptimized.CallOpts) +} + +// LpPrice is a free data retrieval call binding the contract method 0x54f0f7d5. +// +// Solidity: function lp_price() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) LpPrice() (*big.Int, error) { + return _TwocryptoOptimized.Contract.LpPrice(&_TwocryptoOptimized.CallOpts) +} + +// MaTime is a free data retrieval call binding the contract method 0x09c3da6a. +// +// Solidity: function ma_time() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) MaTime(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "ma_time") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MaTime is a free data retrieval call binding the contract method 0x09c3da6a. +// +// Solidity: function ma_time() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) MaTime() (*big.Int, error) { + return _TwocryptoOptimized.Contract.MaTime(&_TwocryptoOptimized.CallOpts) +} + +// MaTime is a free data retrieval call binding the contract method 0x09c3da6a. +// +// Solidity: function ma_time() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) MaTime() (*big.Int, error) { + return _TwocryptoOptimized.Contract.MaTime(&_TwocryptoOptimized.CallOpts) +} + +// MidFee is a free data retrieval call binding the contract method 0x92526c0c. +// +// Solidity: function mid_fee() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) MidFee(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "mid_fee") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MidFee is a free data retrieval call binding the contract method 0x92526c0c. +// +// Solidity: function mid_fee() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) MidFee() (*big.Int, error) { + return _TwocryptoOptimized.Contract.MidFee(&_TwocryptoOptimized.CallOpts) +} + +// MidFee is a free data retrieval call binding the contract method 0x92526c0c. +// +// Solidity: function mid_fee() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) MidFee() (*big.Int, error) { + return _TwocryptoOptimized.Contract.MidFee(&_TwocryptoOptimized.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "name") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Name() (string, error) { + return _TwocryptoOptimized.Contract.Name(&_TwocryptoOptimized.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) Name() (string, error) { + return _TwocryptoOptimized.Contract.Name(&_TwocryptoOptimized.CallOpts) +} + +// Nonces is a free data retrieval call binding the contract method 0x7ecebe00. +// +// Solidity: function nonces(address arg0) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) Nonces(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "nonces", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Nonces is a free data retrieval call binding the contract method 0x7ecebe00. +// +// Solidity: function nonces(address arg0) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Nonces(arg0 common.Address) (*big.Int, error) { + return _TwocryptoOptimized.Contract.Nonces(&_TwocryptoOptimized.CallOpts, arg0) +} + +// Nonces is a free data retrieval call binding the contract method 0x7ecebe00. +// +// Solidity: function nonces(address arg0) view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) Nonces(arg0 common.Address) (*big.Int, error) { + return _TwocryptoOptimized.Contract.Nonces(&_TwocryptoOptimized.CallOpts, arg0) +} + +// OutFee is a free data retrieval call binding the contract method 0xee8de675. +// +// Solidity: function out_fee() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) OutFee(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "out_fee") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// OutFee is a free data retrieval call binding the contract method 0xee8de675. +// +// Solidity: function out_fee() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) OutFee() (*big.Int, error) { + return _TwocryptoOptimized.Contract.OutFee(&_TwocryptoOptimized.CallOpts) +} + +// OutFee is a free data retrieval call binding the contract method 0xee8de675. +// +// Solidity: function out_fee() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) OutFee() (*big.Int, error) { + return _TwocryptoOptimized.Contract.OutFee(&_TwocryptoOptimized.CallOpts) +} + +// PackedFeeParams is a free data retrieval call binding the contract method 0xe3616405. +// +// Solidity: function packed_fee_params() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) PackedFeeParams(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "packed_fee_params") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// PackedFeeParams is a free data retrieval call binding the contract method 0xe3616405. +// +// Solidity: function packed_fee_params() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) PackedFeeParams() (*big.Int, error) { + return _TwocryptoOptimized.Contract.PackedFeeParams(&_TwocryptoOptimized.CallOpts) +} + +// PackedFeeParams is a free data retrieval call binding the contract method 0xe3616405. +// +// Solidity: function packed_fee_params() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) PackedFeeParams() (*big.Int, error) { + return _TwocryptoOptimized.Contract.PackedFeeParams(&_TwocryptoOptimized.CallOpts) +} + +// PackedRebalancingParams is a free data retrieval call binding the contract method 0x3dd65478. +// +// Solidity: function packed_rebalancing_params() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) PackedRebalancingParams(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "packed_rebalancing_params") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// PackedRebalancingParams is a free data retrieval call binding the contract method 0x3dd65478. +// +// Solidity: function packed_rebalancing_params() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) PackedRebalancingParams() (*big.Int, error) { + return _TwocryptoOptimized.Contract.PackedRebalancingParams(&_TwocryptoOptimized.CallOpts) +} + +// PackedRebalancingParams is a free data retrieval call binding the contract method 0x3dd65478. +// +// Solidity: function packed_rebalancing_params() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) PackedRebalancingParams() (*big.Int, error) { + return _TwocryptoOptimized.Contract.PackedRebalancingParams(&_TwocryptoOptimized.CallOpts) +} + +// Precisions is a free data retrieval call binding the contract method 0x3620604b. +// +// Solidity: function precisions() view returns(uint256[2]) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) Precisions(opts *bind.CallOpts) ([2]*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "precisions") + + if err != nil { + return *new([2]*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new([2]*big.Int)).(*[2]*big.Int) + + return out0, err + +} + +// Precisions is a free data retrieval call binding the contract method 0x3620604b. +// +// Solidity: function precisions() view returns(uint256[2]) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Precisions() ([2]*big.Int, error) { + return _TwocryptoOptimized.Contract.Precisions(&_TwocryptoOptimized.CallOpts) +} + +// Precisions is a free data retrieval call binding the contract method 0x3620604b. +// +// Solidity: function precisions() view returns(uint256[2]) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) Precisions() ([2]*big.Int, error) { + return _TwocryptoOptimized.Contract.Precisions(&_TwocryptoOptimized.CallOpts) +} + +// PriceOracle is a free data retrieval call binding the contract method 0x86fc88d3. +// +// Solidity: function price_oracle() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) PriceOracle(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "price_oracle") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// PriceOracle is a free data retrieval call binding the contract method 0x86fc88d3. +// +// Solidity: function price_oracle() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) PriceOracle() (*big.Int, error) { + return _TwocryptoOptimized.Contract.PriceOracle(&_TwocryptoOptimized.CallOpts) +} + +// PriceOracle is a free data retrieval call binding the contract method 0x86fc88d3. +// +// Solidity: function price_oracle() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) PriceOracle() (*big.Int, error) { + return _TwocryptoOptimized.Contract.PriceOracle(&_TwocryptoOptimized.CallOpts) +} + +// PriceScale is a free data retrieval call binding the contract method 0xb9e8c9fd. +// +// Solidity: function price_scale() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) PriceScale(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "price_scale") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// PriceScale is a free data retrieval call binding the contract method 0xb9e8c9fd. +// +// Solidity: function price_scale() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) PriceScale() (*big.Int, error) { + return _TwocryptoOptimized.Contract.PriceScale(&_TwocryptoOptimized.CallOpts) +} + +// PriceScale is a free data retrieval call binding the contract method 0xb9e8c9fd. +// +// Solidity: function price_scale() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) PriceScale() (*big.Int, error) { + return _TwocryptoOptimized.Contract.PriceScale(&_TwocryptoOptimized.CallOpts) +} + +// Salt is a free data retrieval call binding the contract method 0xbfa0b133. +// +// Solidity: function salt() view returns(bytes32) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) Salt(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "salt") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// Salt is a free data retrieval call binding the contract method 0xbfa0b133. +// +// Solidity: function salt() view returns(bytes32) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Salt() ([32]byte, error) { + return _TwocryptoOptimized.Contract.Salt(&_TwocryptoOptimized.CallOpts) +} + +// Salt is a free data retrieval call binding the contract method 0xbfa0b133. +// +// Solidity: function salt() view returns(bytes32) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) Salt() ([32]byte, error) { + return _TwocryptoOptimized.Contract.Salt(&_TwocryptoOptimized.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "symbol") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Symbol() (string, error) { + return _TwocryptoOptimized.Contract.Symbol(&_TwocryptoOptimized.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) Symbol() (string, error) { + return _TwocryptoOptimized.Contract.Symbol(&_TwocryptoOptimized.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "totalSupply") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) TotalSupply() (*big.Int, error) { + return _TwocryptoOptimized.Contract.TotalSupply(&_TwocryptoOptimized.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) TotalSupply() (*big.Int, error) { + return _TwocryptoOptimized.Contract.TotalSupply(&_TwocryptoOptimized.CallOpts) +} + +// Version is a free data retrieval call binding the contract method 0x54fd4d50. +// +// Solidity: function version() view returns(string) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) Version(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "version") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Version is a free data retrieval call binding the contract method 0x54fd4d50. +// +// Solidity: function version() view returns(string) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Version() (string, error) { + return _TwocryptoOptimized.Contract.Version(&_TwocryptoOptimized.CallOpts) +} + +// Version is a free data retrieval call binding the contract method 0x54fd4d50. +// +// Solidity: function version() view returns(string) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) Version() (string, error) { + return _TwocryptoOptimized.Contract.Version(&_TwocryptoOptimized.CallOpts) +} + +// VirtualPrice is a free data retrieval call binding the contract method 0x0c46b72a. +// +// Solidity: function virtual_price() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) VirtualPrice(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "virtual_price") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// VirtualPrice is a free data retrieval call binding the contract method 0x0c46b72a. +// +// Solidity: function virtual_price() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) VirtualPrice() (*big.Int, error) { + return _TwocryptoOptimized.Contract.VirtualPrice(&_TwocryptoOptimized.CallOpts) +} + +// VirtualPrice is a free data retrieval call binding the contract method 0x0c46b72a. +// +// Solidity: function virtual_price() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) VirtualPrice() (*big.Int, error) { + return _TwocryptoOptimized.Contract.VirtualPrice(&_TwocryptoOptimized.CallOpts) +} + +// XcpProfit is a free data retrieval call binding the contract method 0x7ba1a74d. +// +// Solidity: function xcp_profit() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) XcpProfit(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "xcp_profit") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// XcpProfit is a free data retrieval call binding the contract method 0x7ba1a74d. +// +// Solidity: function xcp_profit() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) XcpProfit() (*big.Int, error) { + return _TwocryptoOptimized.Contract.XcpProfit(&_TwocryptoOptimized.CallOpts) +} + +// XcpProfit is a free data retrieval call binding the contract method 0x7ba1a74d. +// +// Solidity: function xcp_profit() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) XcpProfit() (*big.Int, error) { + return _TwocryptoOptimized.Contract.XcpProfit(&_TwocryptoOptimized.CallOpts) +} + +// XcpProfitA is a free data retrieval call binding the contract method 0x0b7b594b. +// +// Solidity: function xcp_profit_a() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCaller) XcpProfitA(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TwocryptoOptimized.contract.Call(opts, &out, "xcp_profit_a") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// XcpProfitA is a free data retrieval call binding the contract method 0x0b7b594b. +// +// Solidity: function xcp_profit_a() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) XcpProfitA() (*big.Int, error) { + return _TwocryptoOptimized.Contract.XcpProfitA(&_TwocryptoOptimized.CallOpts) +} + +// XcpProfitA is a free data retrieval call binding the contract method 0x0b7b594b. +// +// Solidity: function xcp_profit_a() view returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedCallerSession) XcpProfitA() (*big.Int, error) { + return _TwocryptoOptimized.Contract.XcpProfitA(&_TwocryptoOptimized.CallOpts) +} + +// AddLiquidity is a paid mutator transaction binding the contract method 0x0b4c7e4d. +// +// Solidity: function add_liquidity(uint256[2] amounts, uint256 min_mint_amount) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) AddLiquidity(opts *bind.TransactOpts, amounts [2]*big.Int, min_mint_amount *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "add_liquidity", amounts, min_mint_amount) +} + +// AddLiquidity is a paid mutator transaction binding the contract method 0x0b4c7e4d. +// +// Solidity: function add_liquidity(uint256[2] amounts, uint256 min_mint_amount) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) AddLiquidity(amounts [2]*big.Int, min_mint_amount *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.AddLiquidity(&_TwocryptoOptimized.TransactOpts, amounts, min_mint_amount) +} + +// AddLiquidity is a paid mutator transaction binding the contract method 0x0b4c7e4d. +// +// Solidity: function add_liquidity(uint256[2] amounts, uint256 min_mint_amount) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) AddLiquidity(amounts [2]*big.Int, min_mint_amount *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.AddLiquidity(&_TwocryptoOptimized.TransactOpts, amounts, min_mint_amount) +} + +// AddLiquidity0 is a paid mutator transaction binding the contract method 0x0c3e4b54. +// +// Solidity: function add_liquidity(uint256[2] amounts, uint256 min_mint_amount, address receiver) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) AddLiquidity0(opts *bind.TransactOpts, amounts [2]*big.Int, min_mint_amount *big.Int, receiver common.Address) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "add_liquidity0", amounts, min_mint_amount, receiver) +} + +// AddLiquidity0 is a paid mutator transaction binding the contract method 0x0c3e4b54. +// +// Solidity: function add_liquidity(uint256[2] amounts, uint256 min_mint_amount, address receiver) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) AddLiquidity0(amounts [2]*big.Int, min_mint_amount *big.Int, receiver common.Address) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.AddLiquidity0(&_TwocryptoOptimized.TransactOpts, amounts, min_mint_amount, receiver) +} + +// AddLiquidity0 is a paid mutator transaction binding the contract method 0x0c3e4b54. +// +// Solidity: function add_liquidity(uint256[2] amounts, uint256 min_mint_amount, address receiver) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) AddLiquidity0(amounts [2]*big.Int, min_mint_amount *big.Int, receiver common.Address) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.AddLiquidity0(&_TwocryptoOptimized.TransactOpts, amounts, min_mint_amount, receiver) +} + +// ApplyNewParameters is a paid mutator transaction binding the contract method 0x6dbcf350. +// +// Solidity: function apply_new_parameters(uint256 _new_mid_fee, uint256 _new_out_fee, uint256 _new_fee_gamma, uint256 _new_allowed_extra_profit, uint256 _new_adjustment_step, uint256 _new_ma_time) returns() +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) ApplyNewParameters(opts *bind.TransactOpts, _new_mid_fee *big.Int, _new_out_fee *big.Int, _new_fee_gamma *big.Int, _new_allowed_extra_profit *big.Int, _new_adjustment_step *big.Int, _new_ma_time *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "apply_new_parameters", _new_mid_fee, _new_out_fee, _new_fee_gamma, _new_allowed_extra_profit, _new_adjustment_step, _new_ma_time) +} + +// ApplyNewParameters is a paid mutator transaction binding the contract method 0x6dbcf350. +// +// Solidity: function apply_new_parameters(uint256 _new_mid_fee, uint256 _new_out_fee, uint256 _new_fee_gamma, uint256 _new_allowed_extra_profit, uint256 _new_adjustment_step, uint256 _new_ma_time) returns() +func (_TwocryptoOptimized *TwocryptoOptimizedSession) ApplyNewParameters(_new_mid_fee *big.Int, _new_out_fee *big.Int, _new_fee_gamma *big.Int, _new_allowed_extra_profit *big.Int, _new_adjustment_step *big.Int, _new_ma_time *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.ApplyNewParameters(&_TwocryptoOptimized.TransactOpts, _new_mid_fee, _new_out_fee, _new_fee_gamma, _new_allowed_extra_profit, _new_adjustment_step, _new_ma_time) +} + +// ApplyNewParameters is a paid mutator transaction binding the contract method 0x6dbcf350. +// +// Solidity: function apply_new_parameters(uint256 _new_mid_fee, uint256 _new_out_fee, uint256 _new_fee_gamma, uint256 _new_allowed_extra_profit, uint256 _new_adjustment_step, uint256 _new_ma_time) returns() +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) ApplyNewParameters(_new_mid_fee *big.Int, _new_out_fee *big.Int, _new_fee_gamma *big.Int, _new_allowed_extra_profit *big.Int, _new_adjustment_step *big.Int, _new_ma_time *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.ApplyNewParameters(&_TwocryptoOptimized.TransactOpts, _new_mid_fee, _new_out_fee, _new_fee_gamma, _new_allowed_extra_profit, _new_adjustment_step, _new_ma_time) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address _spender, uint256 _value) returns(bool) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) Approve(opts *bind.TransactOpts, _spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "approve", _spender, _value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address _spender, uint256 _value) returns(bool) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Approve(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.Approve(&_TwocryptoOptimized.TransactOpts, _spender, _value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address _spender, uint256 _value) returns(bool) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) Approve(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.Approve(&_TwocryptoOptimized.TransactOpts, _spender, _value) +} + +// Exchange is a paid mutator transaction binding the contract method 0x5b41b908. +// +// Solidity: function exchange(uint256 i, uint256 j, uint256 dx, uint256 min_dy) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) Exchange(opts *bind.TransactOpts, i *big.Int, j *big.Int, dx *big.Int, min_dy *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "exchange", i, j, dx, min_dy) +} + +// Exchange is a paid mutator transaction binding the contract method 0x5b41b908. +// +// Solidity: function exchange(uint256 i, uint256 j, uint256 dx, uint256 min_dy) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Exchange(i *big.Int, j *big.Int, dx *big.Int, min_dy *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.Exchange(&_TwocryptoOptimized.TransactOpts, i, j, dx, min_dy) +} + +// Exchange is a paid mutator transaction binding the contract method 0x5b41b908. +// +// Solidity: function exchange(uint256 i, uint256 j, uint256 dx, uint256 min_dy) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) Exchange(i *big.Int, j *big.Int, dx *big.Int, min_dy *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.Exchange(&_TwocryptoOptimized.TransactOpts, i, j, dx, min_dy) +} + +// Exchange0 is a paid mutator transaction binding the contract method 0xa64833a0. +// +// Solidity: function exchange(uint256 i, uint256 j, uint256 dx, uint256 min_dy, address receiver) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) Exchange0(opts *bind.TransactOpts, i *big.Int, j *big.Int, dx *big.Int, min_dy *big.Int, receiver common.Address) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "exchange0", i, j, dx, min_dy, receiver) +} + +// Exchange0 is a paid mutator transaction binding the contract method 0xa64833a0. +// +// Solidity: function exchange(uint256 i, uint256 j, uint256 dx, uint256 min_dy, address receiver) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Exchange0(i *big.Int, j *big.Int, dx *big.Int, min_dy *big.Int, receiver common.Address) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.Exchange0(&_TwocryptoOptimized.TransactOpts, i, j, dx, min_dy, receiver) +} + +// Exchange0 is a paid mutator transaction binding the contract method 0xa64833a0. +// +// Solidity: function exchange(uint256 i, uint256 j, uint256 dx, uint256 min_dy, address receiver) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) Exchange0(i *big.Int, j *big.Int, dx *big.Int, min_dy *big.Int, receiver common.Address) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.Exchange0(&_TwocryptoOptimized.TransactOpts, i, j, dx, min_dy, receiver) +} + +// ExchangeReceived is a paid mutator transaction binding the contract method 0x29b244bb. +// +// Solidity: function exchange_received(uint256 i, uint256 j, uint256 dx, uint256 min_dy) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) ExchangeReceived(opts *bind.TransactOpts, i *big.Int, j *big.Int, dx *big.Int, min_dy *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "exchange_received", i, j, dx, min_dy) +} + +// ExchangeReceived is a paid mutator transaction binding the contract method 0x29b244bb. +// +// Solidity: function exchange_received(uint256 i, uint256 j, uint256 dx, uint256 min_dy) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) ExchangeReceived(i *big.Int, j *big.Int, dx *big.Int, min_dy *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.ExchangeReceived(&_TwocryptoOptimized.TransactOpts, i, j, dx, min_dy) +} + +// ExchangeReceived is a paid mutator transaction binding the contract method 0x29b244bb. +// +// Solidity: function exchange_received(uint256 i, uint256 j, uint256 dx, uint256 min_dy) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) ExchangeReceived(i *big.Int, j *big.Int, dx *big.Int, min_dy *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.ExchangeReceived(&_TwocryptoOptimized.TransactOpts, i, j, dx, min_dy) +} + +// ExchangeReceived0 is a paid mutator transaction binding the contract method 0x767691e7. +// +// Solidity: function exchange_received(uint256 i, uint256 j, uint256 dx, uint256 min_dy, address receiver) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) ExchangeReceived0(opts *bind.TransactOpts, i *big.Int, j *big.Int, dx *big.Int, min_dy *big.Int, receiver common.Address) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "exchange_received0", i, j, dx, min_dy, receiver) +} + +// ExchangeReceived0 is a paid mutator transaction binding the contract method 0x767691e7. +// +// Solidity: function exchange_received(uint256 i, uint256 j, uint256 dx, uint256 min_dy, address receiver) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) ExchangeReceived0(i *big.Int, j *big.Int, dx *big.Int, min_dy *big.Int, receiver common.Address) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.ExchangeReceived0(&_TwocryptoOptimized.TransactOpts, i, j, dx, min_dy, receiver) +} + +// ExchangeReceived0 is a paid mutator transaction binding the contract method 0x767691e7. +// +// Solidity: function exchange_received(uint256 i, uint256 j, uint256 dx, uint256 min_dy, address receiver) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) ExchangeReceived0(i *big.Int, j *big.Int, dx *big.Int, min_dy *big.Int, receiver common.Address) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.ExchangeReceived0(&_TwocryptoOptimized.TransactOpts, i, j, dx, min_dy, receiver) +} + +// Permit is a paid mutator transaction binding the contract method 0xd505accf. +// +// Solidity: function permit(address _owner, address _spender, uint256 _value, uint256 _deadline, uint8 _v, bytes32 _r, bytes32 _s) returns(bool) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) Permit(opts *bind.TransactOpts, _owner common.Address, _spender common.Address, _value *big.Int, _deadline *big.Int, _v uint8, _r [32]byte, _s [32]byte) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "permit", _owner, _spender, _value, _deadline, _v, _r, _s) +} + +// Permit is a paid mutator transaction binding the contract method 0xd505accf. +// +// Solidity: function permit(address _owner, address _spender, uint256 _value, uint256 _deadline, uint8 _v, bytes32 _r, bytes32 _s) returns(bool) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Permit(_owner common.Address, _spender common.Address, _value *big.Int, _deadline *big.Int, _v uint8, _r [32]byte, _s [32]byte) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.Permit(&_TwocryptoOptimized.TransactOpts, _owner, _spender, _value, _deadline, _v, _r, _s) +} + +// Permit is a paid mutator transaction binding the contract method 0xd505accf. +// +// Solidity: function permit(address _owner, address _spender, uint256 _value, uint256 _deadline, uint8 _v, bytes32 _r, bytes32 _s) returns(bool) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) Permit(_owner common.Address, _spender common.Address, _value *big.Int, _deadline *big.Int, _v uint8, _r [32]byte, _s [32]byte) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.Permit(&_TwocryptoOptimized.TransactOpts, _owner, _spender, _value, _deadline, _v, _r, _s) +} + +// RampAGamma is a paid mutator transaction binding the contract method 0x5e248072. +// +// Solidity: function ramp_A_gamma(uint256 future_A, uint256 future_gamma, uint256 future_time) returns() +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) RampAGamma(opts *bind.TransactOpts, future_A *big.Int, future_gamma *big.Int, future_time *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "ramp_A_gamma", future_A, future_gamma, future_time) +} + +// RampAGamma is a paid mutator transaction binding the contract method 0x5e248072. +// +// Solidity: function ramp_A_gamma(uint256 future_A, uint256 future_gamma, uint256 future_time) returns() +func (_TwocryptoOptimized *TwocryptoOptimizedSession) RampAGamma(future_A *big.Int, future_gamma *big.Int, future_time *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.RampAGamma(&_TwocryptoOptimized.TransactOpts, future_A, future_gamma, future_time) +} + +// RampAGamma is a paid mutator transaction binding the contract method 0x5e248072. +// +// Solidity: function ramp_A_gamma(uint256 future_A, uint256 future_gamma, uint256 future_time) returns() +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) RampAGamma(future_A *big.Int, future_gamma *big.Int, future_time *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.RampAGamma(&_TwocryptoOptimized.TransactOpts, future_A, future_gamma, future_time) +} + +// RemoveLiquidity is a paid mutator transaction binding the contract method 0x5b36389c. +// +// Solidity: function remove_liquidity(uint256 _amount, uint256[2] min_amounts) returns(uint256[2]) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) RemoveLiquidity(opts *bind.TransactOpts, _amount *big.Int, min_amounts [2]*big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "remove_liquidity", _amount, min_amounts) +} + +// RemoveLiquidity is a paid mutator transaction binding the contract method 0x5b36389c. +// +// Solidity: function remove_liquidity(uint256 _amount, uint256[2] min_amounts) returns(uint256[2]) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) RemoveLiquidity(_amount *big.Int, min_amounts [2]*big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.RemoveLiquidity(&_TwocryptoOptimized.TransactOpts, _amount, min_amounts) +} + +// RemoveLiquidity is a paid mutator transaction binding the contract method 0x5b36389c. +// +// Solidity: function remove_liquidity(uint256 _amount, uint256[2] min_amounts) returns(uint256[2]) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) RemoveLiquidity(_amount *big.Int, min_amounts [2]*big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.RemoveLiquidity(&_TwocryptoOptimized.TransactOpts, _amount, min_amounts) +} + +// RemoveLiquidity0 is a paid mutator transaction binding the contract method 0x3eb1719f. +// +// Solidity: function remove_liquidity(uint256 _amount, uint256[2] min_amounts, address receiver) returns(uint256[2]) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) RemoveLiquidity0(opts *bind.TransactOpts, _amount *big.Int, min_amounts [2]*big.Int, receiver common.Address) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "remove_liquidity0", _amount, min_amounts, receiver) +} + +// RemoveLiquidity0 is a paid mutator transaction binding the contract method 0x3eb1719f. +// +// Solidity: function remove_liquidity(uint256 _amount, uint256[2] min_amounts, address receiver) returns(uint256[2]) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) RemoveLiquidity0(_amount *big.Int, min_amounts [2]*big.Int, receiver common.Address) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.RemoveLiquidity0(&_TwocryptoOptimized.TransactOpts, _amount, min_amounts, receiver) +} + +// RemoveLiquidity0 is a paid mutator transaction binding the contract method 0x3eb1719f. +// +// Solidity: function remove_liquidity(uint256 _amount, uint256[2] min_amounts, address receiver) returns(uint256[2]) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) RemoveLiquidity0(_amount *big.Int, min_amounts [2]*big.Int, receiver common.Address) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.RemoveLiquidity0(&_TwocryptoOptimized.TransactOpts, _amount, min_amounts, receiver) +} + +// RemoveLiquidityOneCoin is a paid mutator transaction binding the contract method 0xf1dc3cc9. +// +// Solidity: function remove_liquidity_one_coin(uint256 token_amount, uint256 i, uint256 min_amount) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) RemoveLiquidityOneCoin(opts *bind.TransactOpts, token_amount *big.Int, i *big.Int, min_amount *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "remove_liquidity_one_coin", token_amount, i, min_amount) +} + +// RemoveLiquidityOneCoin is a paid mutator transaction binding the contract method 0xf1dc3cc9. +// +// Solidity: function remove_liquidity_one_coin(uint256 token_amount, uint256 i, uint256 min_amount) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) RemoveLiquidityOneCoin(token_amount *big.Int, i *big.Int, min_amount *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.RemoveLiquidityOneCoin(&_TwocryptoOptimized.TransactOpts, token_amount, i, min_amount) +} + +// RemoveLiquidityOneCoin is a paid mutator transaction binding the contract method 0xf1dc3cc9. +// +// Solidity: function remove_liquidity_one_coin(uint256 token_amount, uint256 i, uint256 min_amount) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) RemoveLiquidityOneCoin(token_amount *big.Int, i *big.Int, min_amount *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.RemoveLiquidityOneCoin(&_TwocryptoOptimized.TransactOpts, token_amount, i, min_amount) +} + +// RemoveLiquidityOneCoin0 is a paid mutator transaction binding the contract method 0x0fbcee6e. +// +// Solidity: function remove_liquidity_one_coin(uint256 token_amount, uint256 i, uint256 min_amount, address receiver) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) RemoveLiquidityOneCoin0(opts *bind.TransactOpts, token_amount *big.Int, i *big.Int, min_amount *big.Int, receiver common.Address) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "remove_liquidity_one_coin0", token_amount, i, min_amount, receiver) +} + +// RemoveLiquidityOneCoin0 is a paid mutator transaction binding the contract method 0x0fbcee6e. +// +// Solidity: function remove_liquidity_one_coin(uint256 token_amount, uint256 i, uint256 min_amount, address receiver) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) RemoveLiquidityOneCoin0(token_amount *big.Int, i *big.Int, min_amount *big.Int, receiver common.Address) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.RemoveLiquidityOneCoin0(&_TwocryptoOptimized.TransactOpts, token_amount, i, min_amount, receiver) +} + +// RemoveLiquidityOneCoin0 is a paid mutator transaction binding the contract method 0x0fbcee6e. +// +// Solidity: function remove_liquidity_one_coin(uint256 token_amount, uint256 i, uint256 min_amount, address receiver) returns(uint256) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) RemoveLiquidityOneCoin0(token_amount *big.Int, i *big.Int, min_amount *big.Int, receiver common.Address) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.RemoveLiquidityOneCoin0(&_TwocryptoOptimized.TransactOpts, token_amount, i, min_amount, receiver) +} + +// StopRampAGamma is a paid mutator transaction binding the contract method 0x244c7c2e. +// +// Solidity: function stop_ramp_A_gamma() returns() +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) StopRampAGamma(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "stop_ramp_A_gamma") +} + +// StopRampAGamma is a paid mutator transaction binding the contract method 0x244c7c2e. +// +// Solidity: function stop_ramp_A_gamma() returns() +func (_TwocryptoOptimized *TwocryptoOptimizedSession) StopRampAGamma() (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.StopRampAGamma(&_TwocryptoOptimized.TransactOpts) +} + +// StopRampAGamma is a paid mutator transaction binding the contract method 0x244c7c2e. +// +// Solidity: function stop_ramp_A_gamma() returns() +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) StopRampAGamma() (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.StopRampAGamma(&_TwocryptoOptimized.TransactOpts) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address _to, uint256 _value) returns(bool) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) Transfer(opts *bind.TransactOpts, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "transfer", _to, _value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address _to, uint256 _value) returns(bool) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) Transfer(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.Transfer(&_TwocryptoOptimized.TransactOpts, _to, _value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address _to, uint256 _value) returns(bool) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) Transfer(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.Transfer(&_TwocryptoOptimized.TransactOpts, _to, _value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address _from, address _to, uint256 _value) returns(bool) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.contract.Transact(opts, "transferFrom", _from, _to, _value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address _from, address _to, uint256 _value) returns(bool) +func (_TwocryptoOptimized *TwocryptoOptimizedSession) TransferFrom(_from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.TransferFrom(&_TwocryptoOptimized.TransactOpts, _from, _to, _value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(address _from, address _to, uint256 _value) returns(bool) +func (_TwocryptoOptimized *TwocryptoOptimizedTransactorSession) TransferFrom(_from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _TwocryptoOptimized.Contract.TransferFrom(&_TwocryptoOptimized.TransactOpts, _from, _to, _value) +} + +// TwocryptoOptimizedAddLiquidityIterator is returned from FilterAddLiquidity and is used to iterate over the raw logs and unpacked data for AddLiquidity events raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedAddLiquidityIterator struct { + Event *TwocryptoOptimizedAddLiquidity // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TwocryptoOptimizedAddLiquidityIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedAddLiquidity) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedAddLiquidity) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TwocryptoOptimizedAddLiquidityIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TwocryptoOptimizedAddLiquidityIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TwocryptoOptimizedAddLiquidity represents a AddLiquidity event raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedAddLiquidity struct { + Provider common.Address + TokenAmounts [2]*big.Int + Fee *big.Int + TokenSupply *big.Int + PackedPriceScale *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterAddLiquidity is a free log retrieval operation binding the contract event 0x7196cbf63df1f2ec20638e683ebe51d18260be510592ee1e2efe3f3cfd4c33e9. +// +// Solidity: event AddLiquidity(address indexed provider, uint256[2] token_amounts, uint256 fee, uint256 token_supply, uint256 packed_price_scale) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) FilterAddLiquidity(opts *bind.FilterOpts, provider []common.Address) (*TwocryptoOptimizedAddLiquidityIterator, error) { + + var providerRule []interface{} + for _, providerItem := range provider { + providerRule = append(providerRule, providerItem) + } + + logs, sub, err := _TwocryptoOptimized.contract.FilterLogs(opts, "AddLiquidity", providerRule) + if err != nil { + return nil, err + } + return &TwocryptoOptimizedAddLiquidityIterator{contract: _TwocryptoOptimized.contract, event: "AddLiquidity", logs: logs, sub: sub}, nil +} + +// WatchAddLiquidity is a free log subscription operation binding the contract event 0x7196cbf63df1f2ec20638e683ebe51d18260be510592ee1e2efe3f3cfd4c33e9. +// +// Solidity: event AddLiquidity(address indexed provider, uint256[2] token_amounts, uint256 fee, uint256 token_supply, uint256 packed_price_scale) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) WatchAddLiquidity(opts *bind.WatchOpts, sink chan<- *TwocryptoOptimizedAddLiquidity, provider []common.Address) (event.Subscription, error) { + + var providerRule []interface{} + for _, providerItem := range provider { + providerRule = append(providerRule, providerItem) + } + + logs, sub, err := _TwocryptoOptimized.contract.WatchLogs(opts, "AddLiquidity", providerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TwocryptoOptimizedAddLiquidity) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "AddLiquidity", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseAddLiquidity is a log parse operation binding the contract event 0x7196cbf63df1f2ec20638e683ebe51d18260be510592ee1e2efe3f3cfd4c33e9. +// +// Solidity: event AddLiquidity(address indexed provider, uint256[2] token_amounts, uint256 fee, uint256 token_supply, uint256 packed_price_scale) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) ParseAddLiquidity(log types.Log) (*TwocryptoOptimizedAddLiquidity, error) { + event := new(TwocryptoOptimizedAddLiquidity) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "AddLiquidity", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TwocryptoOptimizedApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedApprovalIterator struct { + Event *TwocryptoOptimizedApproval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TwocryptoOptimizedApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TwocryptoOptimizedApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TwocryptoOptimizedApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TwocryptoOptimizedApproval represents a Approval event raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedApproval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*TwocryptoOptimizedApprovalIterator, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _TwocryptoOptimized.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &TwocryptoOptimizedApprovalIterator{contract: _TwocryptoOptimized.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *TwocryptoOptimizedApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) { + + var ownerRule []interface{} + for _, ownerItem := range owner { + ownerRule = append(ownerRule, ownerItem) + } + var spenderRule []interface{} + for _, spenderItem := range spender { + spenderRule = append(spenderRule, spenderItem) + } + + logs, sub, err := _TwocryptoOptimized.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TwocryptoOptimizedApproval) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: event Approval(address indexed owner, address indexed spender, uint256 value) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) ParseApproval(log types.Log) (*TwocryptoOptimizedApproval, error) { + event := new(TwocryptoOptimizedApproval) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TwocryptoOptimizedClaimAdminFeeIterator is returned from FilterClaimAdminFee and is used to iterate over the raw logs and unpacked data for ClaimAdminFee events raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedClaimAdminFeeIterator struct { + Event *TwocryptoOptimizedClaimAdminFee // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TwocryptoOptimizedClaimAdminFeeIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedClaimAdminFee) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedClaimAdminFee) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TwocryptoOptimizedClaimAdminFeeIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TwocryptoOptimizedClaimAdminFeeIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TwocryptoOptimizedClaimAdminFee represents a ClaimAdminFee event raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedClaimAdminFee struct { + Admin common.Address + Tokens [2]*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterClaimAdminFee is a free log retrieval operation binding the contract event 0x3bbd5f2f4711532d6e9ee88dfdf2f1468e9a4c3ae5e14d2e1a67bf4242d008d0. +// +// Solidity: event ClaimAdminFee(address indexed admin, uint256[2] tokens) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) FilterClaimAdminFee(opts *bind.FilterOpts, admin []common.Address) (*TwocryptoOptimizedClaimAdminFeeIterator, error) { + + var adminRule []interface{} + for _, adminItem := range admin { + adminRule = append(adminRule, adminItem) + } + + logs, sub, err := _TwocryptoOptimized.contract.FilterLogs(opts, "ClaimAdminFee", adminRule) + if err != nil { + return nil, err + } + return &TwocryptoOptimizedClaimAdminFeeIterator{contract: _TwocryptoOptimized.contract, event: "ClaimAdminFee", logs: logs, sub: sub}, nil +} + +// WatchClaimAdminFee is a free log subscription operation binding the contract event 0x3bbd5f2f4711532d6e9ee88dfdf2f1468e9a4c3ae5e14d2e1a67bf4242d008d0. +// +// Solidity: event ClaimAdminFee(address indexed admin, uint256[2] tokens) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) WatchClaimAdminFee(opts *bind.WatchOpts, sink chan<- *TwocryptoOptimizedClaimAdminFee, admin []common.Address) (event.Subscription, error) { + + var adminRule []interface{} + for _, adminItem := range admin { + adminRule = append(adminRule, adminItem) + } + + logs, sub, err := _TwocryptoOptimized.contract.WatchLogs(opts, "ClaimAdminFee", adminRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TwocryptoOptimizedClaimAdminFee) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "ClaimAdminFee", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseClaimAdminFee is a log parse operation binding the contract event 0x3bbd5f2f4711532d6e9ee88dfdf2f1468e9a4c3ae5e14d2e1a67bf4242d008d0. +// +// Solidity: event ClaimAdminFee(address indexed admin, uint256[2] tokens) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) ParseClaimAdminFee(log types.Log) (*TwocryptoOptimizedClaimAdminFee, error) { + event := new(TwocryptoOptimizedClaimAdminFee) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "ClaimAdminFee", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TwocryptoOptimizedNewParametersIterator is returned from FilterNewParameters and is used to iterate over the raw logs and unpacked data for NewParameters events raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedNewParametersIterator struct { + Event *TwocryptoOptimizedNewParameters // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TwocryptoOptimizedNewParametersIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedNewParameters) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedNewParameters) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TwocryptoOptimizedNewParametersIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TwocryptoOptimizedNewParametersIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TwocryptoOptimizedNewParameters represents a NewParameters event raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedNewParameters struct { + MidFee *big.Int + OutFee *big.Int + FeeGamma *big.Int + AllowedExtraProfit *big.Int + AdjustmentStep *big.Int + MaTime *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterNewParameters is a free log retrieval operation binding the contract event 0xa32137411fc7c20db359079cd84af0e2cad58cd7a182a8a5e23e08e554e88bf0. +// +// Solidity: event NewParameters(uint256 mid_fee, uint256 out_fee, uint256 fee_gamma, uint256 allowed_extra_profit, uint256 adjustment_step, uint256 ma_time) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) FilterNewParameters(opts *bind.FilterOpts) (*TwocryptoOptimizedNewParametersIterator, error) { + + logs, sub, err := _TwocryptoOptimized.contract.FilterLogs(opts, "NewParameters") + if err != nil { + return nil, err + } + return &TwocryptoOptimizedNewParametersIterator{contract: _TwocryptoOptimized.contract, event: "NewParameters", logs: logs, sub: sub}, nil +} + +// WatchNewParameters is a free log subscription operation binding the contract event 0xa32137411fc7c20db359079cd84af0e2cad58cd7a182a8a5e23e08e554e88bf0. +// +// Solidity: event NewParameters(uint256 mid_fee, uint256 out_fee, uint256 fee_gamma, uint256 allowed_extra_profit, uint256 adjustment_step, uint256 ma_time) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) WatchNewParameters(opts *bind.WatchOpts, sink chan<- *TwocryptoOptimizedNewParameters) (event.Subscription, error) { + + logs, sub, err := _TwocryptoOptimized.contract.WatchLogs(opts, "NewParameters") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TwocryptoOptimizedNewParameters) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "NewParameters", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseNewParameters is a log parse operation binding the contract event 0xa32137411fc7c20db359079cd84af0e2cad58cd7a182a8a5e23e08e554e88bf0. +// +// Solidity: event NewParameters(uint256 mid_fee, uint256 out_fee, uint256 fee_gamma, uint256 allowed_extra_profit, uint256 adjustment_step, uint256 ma_time) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) ParseNewParameters(log types.Log) (*TwocryptoOptimizedNewParameters, error) { + event := new(TwocryptoOptimizedNewParameters) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "NewParameters", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TwocryptoOptimizedRampAgammaIterator is returned from FilterRampAgamma and is used to iterate over the raw logs and unpacked data for RampAgamma events raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedRampAgammaIterator struct { + Event *TwocryptoOptimizedRampAgamma // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TwocryptoOptimizedRampAgammaIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedRampAgamma) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedRampAgamma) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TwocryptoOptimizedRampAgammaIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TwocryptoOptimizedRampAgammaIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TwocryptoOptimizedRampAgamma represents a RampAgamma event raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedRampAgamma struct { + InitialA *big.Int + FutureA *big.Int + InitialGamma *big.Int + FutureGamma *big.Int + InitialTime *big.Int + FutureTime *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRampAgamma is a free log retrieval operation binding the contract event 0xe35f0559b0642164e286b30df2077ec3a05426617a25db7578fd20ba39a6cd05. +// +// Solidity: event RampAgamma(uint256 initial_A, uint256 future_A, uint256 initial_gamma, uint256 future_gamma, uint256 initial_time, uint256 future_time) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) FilterRampAgamma(opts *bind.FilterOpts) (*TwocryptoOptimizedRampAgammaIterator, error) { + + logs, sub, err := _TwocryptoOptimized.contract.FilterLogs(opts, "RampAgamma") + if err != nil { + return nil, err + } + return &TwocryptoOptimizedRampAgammaIterator{contract: _TwocryptoOptimized.contract, event: "RampAgamma", logs: logs, sub: sub}, nil +} + +// WatchRampAgamma is a free log subscription operation binding the contract event 0xe35f0559b0642164e286b30df2077ec3a05426617a25db7578fd20ba39a6cd05. +// +// Solidity: event RampAgamma(uint256 initial_A, uint256 future_A, uint256 initial_gamma, uint256 future_gamma, uint256 initial_time, uint256 future_time) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) WatchRampAgamma(opts *bind.WatchOpts, sink chan<- *TwocryptoOptimizedRampAgamma) (event.Subscription, error) { + + logs, sub, err := _TwocryptoOptimized.contract.WatchLogs(opts, "RampAgamma") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TwocryptoOptimizedRampAgamma) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "RampAgamma", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRampAgamma is a log parse operation binding the contract event 0xe35f0559b0642164e286b30df2077ec3a05426617a25db7578fd20ba39a6cd05. +// +// Solidity: event RampAgamma(uint256 initial_A, uint256 future_A, uint256 initial_gamma, uint256 future_gamma, uint256 initial_time, uint256 future_time) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) ParseRampAgamma(log types.Log) (*TwocryptoOptimizedRampAgamma, error) { + event := new(TwocryptoOptimizedRampAgamma) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "RampAgamma", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TwocryptoOptimizedRemoveLiquidityIterator is returned from FilterRemoveLiquidity and is used to iterate over the raw logs and unpacked data for RemoveLiquidity events raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedRemoveLiquidityIterator struct { + Event *TwocryptoOptimizedRemoveLiquidity // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TwocryptoOptimizedRemoveLiquidityIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedRemoveLiquidity) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedRemoveLiquidity) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TwocryptoOptimizedRemoveLiquidityIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TwocryptoOptimizedRemoveLiquidityIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TwocryptoOptimizedRemoveLiquidity represents a RemoveLiquidity event raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedRemoveLiquidity struct { + Provider common.Address + TokenAmounts [2]*big.Int + TokenSupply *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRemoveLiquidity is a free log retrieval operation binding the contract event 0xdd3c0336a16f1b64f172b7bb0dad5b2b3c7c76f91e8c4aafd6aae60dce800153. +// +// Solidity: event RemoveLiquidity(address indexed provider, uint256[2] token_amounts, uint256 token_supply) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) FilterRemoveLiquidity(opts *bind.FilterOpts, provider []common.Address) (*TwocryptoOptimizedRemoveLiquidityIterator, error) { + + var providerRule []interface{} + for _, providerItem := range provider { + providerRule = append(providerRule, providerItem) + } + + logs, sub, err := _TwocryptoOptimized.contract.FilterLogs(opts, "RemoveLiquidity", providerRule) + if err != nil { + return nil, err + } + return &TwocryptoOptimizedRemoveLiquidityIterator{contract: _TwocryptoOptimized.contract, event: "RemoveLiquidity", logs: logs, sub: sub}, nil +} + +// WatchRemoveLiquidity is a free log subscription operation binding the contract event 0xdd3c0336a16f1b64f172b7bb0dad5b2b3c7c76f91e8c4aafd6aae60dce800153. +// +// Solidity: event RemoveLiquidity(address indexed provider, uint256[2] token_amounts, uint256 token_supply) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) WatchRemoveLiquidity(opts *bind.WatchOpts, sink chan<- *TwocryptoOptimizedRemoveLiquidity, provider []common.Address) (event.Subscription, error) { + + var providerRule []interface{} + for _, providerItem := range provider { + providerRule = append(providerRule, providerItem) + } + + logs, sub, err := _TwocryptoOptimized.contract.WatchLogs(opts, "RemoveLiquidity", providerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TwocryptoOptimizedRemoveLiquidity) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "RemoveLiquidity", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRemoveLiquidity is a log parse operation binding the contract event 0xdd3c0336a16f1b64f172b7bb0dad5b2b3c7c76f91e8c4aafd6aae60dce800153. +// +// Solidity: event RemoveLiquidity(address indexed provider, uint256[2] token_amounts, uint256 token_supply) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) ParseRemoveLiquidity(log types.Log) (*TwocryptoOptimizedRemoveLiquidity, error) { + event := new(TwocryptoOptimizedRemoveLiquidity) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "RemoveLiquidity", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TwocryptoOptimizedRemoveLiquidityOneIterator is returned from FilterRemoveLiquidityOne and is used to iterate over the raw logs and unpacked data for RemoveLiquidityOne events raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedRemoveLiquidityOneIterator struct { + Event *TwocryptoOptimizedRemoveLiquidityOne // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TwocryptoOptimizedRemoveLiquidityOneIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedRemoveLiquidityOne) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedRemoveLiquidityOne) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TwocryptoOptimizedRemoveLiquidityOneIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TwocryptoOptimizedRemoveLiquidityOneIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TwocryptoOptimizedRemoveLiquidityOne represents a RemoveLiquidityOne event raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedRemoveLiquidityOne struct { + Provider common.Address + TokenAmount *big.Int + CoinIndex *big.Int + CoinAmount *big.Int + ApproxFee *big.Int + PackedPriceScale *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRemoveLiquidityOne is a free log retrieval operation binding the contract event 0xe200e24d4a4c7cd367dd9befe394dc8a14e6d58c88ff5e2f512d65a9e0aa9c5c. +// +// Solidity: event RemoveLiquidityOne(address indexed provider, uint256 token_amount, uint256 coin_index, uint256 coin_amount, uint256 approx_fee, uint256 packed_price_scale) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) FilterRemoveLiquidityOne(opts *bind.FilterOpts, provider []common.Address) (*TwocryptoOptimizedRemoveLiquidityOneIterator, error) { + + var providerRule []interface{} + for _, providerItem := range provider { + providerRule = append(providerRule, providerItem) + } + + logs, sub, err := _TwocryptoOptimized.contract.FilterLogs(opts, "RemoveLiquidityOne", providerRule) + if err != nil { + return nil, err + } + return &TwocryptoOptimizedRemoveLiquidityOneIterator{contract: _TwocryptoOptimized.contract, event: "RemoveLiquidityOne", logs: logs, sub: sub}, nil +} + +// WatchRemoveLiquidityOne is a free log subscription operation binding the contract event 0xe200e24d4a4c7cd367dd9befe394dc8a14e6d58c88ff5e2f512d65a9e0aa9c5c. +// +// Solidity: event RemoveLiquidityOne(address indexed provider, uint256 token_amount, uint256 coin_index, uint256 coin_amount, uint256 approx_fee, uint256 packed_price_scale) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) WatchRemoveLiquidityOne(opts *bind.WatchOpts, sink chan<- *TwocryptoOptimizedRemoveLiquidityOne, provider []common.Address) (event.Subscription, error) { + + var providerRule []interface{} + for _, providerItem := range provider { + providerRule = append(providerRule, providerItem) + } + + logs, sub, err := _TwocryptoOptimized.contract.WatchLogs(opts, "RemoveLiquidityOne", providerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TwocryptoOptimizedRemoveLiquidityOne) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "RemoveLiquidityOne", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRemoveLiquidityOne is a log parse operation binding the contract event 0xe200e24d4a4c7cd367dd9befe394dc8a14e6d58c88ff5e2f512d65a9e0aa9c5c. +// +// Solidity: event RemoveLiquidityOne(address indexed provider, uint256 token_amount, uint256 coin_index, uint256 coin_amount, uint256 approx_fee, uint256 packed_price_scale) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) ParseRemoveLiquidityOne(log types.Log) (*TwocryptoOptimizedRemoveLiquidityOne, error) { + event := new(TwocryptoOptimizedRemoveLiquidityOne) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "RemoveLiquidityOne", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TwocryptoOptimizedStopRampAIterator is returned from FilterStopRampA and is used to iterate over the raw logs and unpacked data for StopRampA events raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedStopRampAIterator struct { + Event *TwocryptoOptimizedStopRampA // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TwocryptoOptimizedStopRampAIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedStopRampA) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedStopRampA) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TwocryptoOptimizedStopRampAIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TwocryptoOptimizedStopRampAIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TwocryptoOptimizedStopRampA represents a StopRampA event raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedStopRampA struct { + CurrentA *big.Int + CurrentGamma *big.Int + Time *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterStopRampA is a free log retrieval operation binding the contract event 0x5f0e7fba3d100c9e19446e1c92fe436f0a9a22fe99669360e4fdd6d3de2fc284. +// +// Solidity: event StopRampA(uint256 current_A, uint256 current_gamma, uint256 time) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) FilterStopRampA(opts *bind.FilterOpts) (*TwocryptoOptimizedStopRampAIterator, error) { + + logs, sub, err := _TwocryptoOptimized.contract.FilterLogs(opts, "StopRampA") + if err != nil { + return nil, err + } + return &TwocryptoOptimizedStopRampAIterator{contract: _TwocryptoOptimized.contract, event: "StopRampA", logs: logs, sub: sub}, nil +} + +// WatchStopRampA is a free log subscription operation binding the contract event 0x5f0e7fba3d100c9e19446e1c92fe436f0a9a22fe99669360e4fdd6d3de2fc284. +// +// Solidity: event StopRampA(uint256 current_A, uint256 current_gamma, uint256 time) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) WatchStopRampA(opts *bind.WatchOpts, sink chan<- *TwocryptoOptimizedStopRampA) (event.Subscription, error) { + + logs, sub, err := _TwocryptoOptimized.contract.WatchLogs(opts, "StopRampA") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TwocryptoOptimizedStopRampA) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "StopRampA", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseStopRampA is a log parse operation binding the contract event 0x5f0e7fba3d100c9e19446e1c92fe436f0a9a22fe99669360e4fdd6d3de2fc284. +// +// Solidity: event StopRampA(uint256 current_A, uint256 current_gamma, uint256 time) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) ParseStopRampA(log types.Log) (*TwocryptoOptimizedStopRampA, error) { + event := new(TwocryptoOptimizedStopRampA) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "StopRampA", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TwocryptoOptimizedTokenExchangeIterator is returned from FilterTokenExchange and is used to iterate over the raw logs and unpacked data for TokenExchange events raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedTokenExchangeIterator struct { + Event *TwocryptoOptimizedTokenExchange // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TwocryptoOptimizedTokenExchangeIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedTokenExchange) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedTokenExchange) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TwocryptoOptimizedTokenExchangeIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TwocryptoOptimizedTokenExchangeIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TwocryptoOptimizedTokenExchange represents a TokenExchange event raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedTokenExchange struct { + Buyer common.Address + SoldId *big.Int + TokensSold *big.Int + BoughtId *big.Int + TokensBought *big.Int + Fee *big.Int + PackedPriceScale *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTokenExchange is a free log retrieval operation binding the contract event 0x143f1f8e861fbdeddd5b46e844b7d3ac7b86a122f36e8c463859ee6811b1f29c. +// +// Solidity: event TokenExchange(address indexed buyer, uint256 sold_id, uint256 tokens_sold, uint256 bought_id, uint256 tokens_bought, uint256 fee, uint256 packed_price_scale) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) FilterTokenExchange(opts *bind.FilterOpts, buyer []common.Address) (*TwocryptoOptimizedTokenExchangeIterator, error) { + + var buyerRule []interface{} + for _, buyerItem := range buyer { + buyerRule = append(buyerRule, buyerItem) + } + + logs, sub, err := _TwocryptoOptimized.contract.FilterLogs(opts, "TokenExchange", buyerRule) + if err != nil { + return nil, err + } + return &TwocryptoOptimizedTokenExchangeIterator{contract: _TwocryptoOptimized.contract, event: "TokenExchange", logs: logs, sub: sub}, nil +} + +// WatchTokenExchange is a free log subscription operation binding the contract event 0x143f1f8e861fbdeddd5b46e844b7d3ac7b86a122f36e8c463859ee6811b1f29c. +// +// Solidity: event TokenExchange(address indexed buyer, uint256 sold_id, uint256 tokens_sold, uint256 bought_id, uint256 tokens_bought, uint256 fee, uint256 packed_price_scale) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) WatchTokenExchange(opts *bind.WatchOpts, sink chan<- *TwocryptoOptimizedTokenExchange, buyer []common.Address) (event.Subscription, error) { + + var buyerRule []interface{} + for _, buyerItem := range buyer { + buyerRule = append(buyerRule, buyerItem) + } + + logs, sub, err := _TwocryptoOptimized.contract.WatchLogs(opts, "TokenExchange", buyerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TwocryptoOptimizedTokenExchange) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "TokenExchange", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTokenExchange is a log parse operation binding the contract event 0x143f1f8e861fbdeddd5b46e844b7d3ac7b86a122f36e8c463859ee6811b1f29c. +// +// Solidity: event TokenExchange(address indexed buyer, uint256 sold_id, uint256 tokens_sold, uint256 bought_id, uint256 tokens_bought, uint256 fee, uint256 packed_price_scale) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) ParseTokenExchange(log types.Log) (*TwocryptoOptimizedTokenExchange, error) { + event := new(TwocryptoOptimizedTokenExchange) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "TokenExchange", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TwocryptoOptimizedTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedTransferIterator struct { + Event *TwocryptoOptimizedTransfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TwocryptoOptimizedTransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TwocryptoOptimizedTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TwocryptoOptimizedTransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TwocryptoOptimizedTransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TwocryptoOptimizedTransfer represents a Transfer event raised by the TwocryptoOptimized contract. +type TwocryptoOptimizedTransfer struct { + Sender common.Address + Receiver common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed sender, address indexed receiver, uint256 value) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) FilterTransfer(opts *bind.FilterOpts, sender []common.Address, receiver []common.Address) (*TwocryptoOptimizedTransferIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _TwocryptoOptimized.contract.FilterLogs(opts, "Transfer", senderRule, receiverRule) + if err != nil { + return nil, err + } + return &TwocryptoOptimizedTransferIterator{contract: _TwocryptoOptimized.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed sender, address indexed receiver, uint256 value) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *TwocryptoOptimizedTransfer, sender []common.Address, receiver []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var receiverRule []interface{} + for _, receiverItem := range receiver { + receiverRule = append(receiverRule, receiverItem) + } + + logs, sub, err := _TwocryptoOptimized.contract.WatchLogs(opts, "Transfer", senderRule, receiverRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TwocryptoOptimizedTransfer) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: event Transfer(address indexed sender, address indexed receiver, uint256 value) +func (_TwocryptoOptimized *TwocryptoOptimizedFilterer) ParseTransfer(log types.Log) (*TwocryptoOptimizedTransfer, error) { + event := new(TwocryptoOptimizedTransfer) + if err := _TwocryptoOptimized.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/client/spot_prices.go b/client/spot_prices.go index 9367759..8df1c6d 100644 --- a/client/spot_prices.go +++ b/client/spot_prices.go @@ -45,9 +45,15 @@ func (c *Client) PollSpotPrices(pools []pool.Pool) { c.logger.Info().Interface("Pancake spotPrice", spotPrice).Msg("spot price received") c.indexer.AddPrice(spotPrice) case pool.PoolCurve: - spotPrice = c.QueryCurveSpotPrice(p, blockNum) - c.logger.Info().Interface("Curve spotPrice", spotPrice).Msg("spot price received") - c.indexer.AddPrice(spotPrice) + if p.PoolType == pool.StableSwapNG { + spotPrice = c.QueryCurveStableSwapNGSpotPrice(p, blockNum) + c.logger.Info().Interface("Curve stableswapng spotPrice", spotPrice).Msg("spot price received") + c.indexer.AddPrice(spotPrice) + } else if p.PoolType == pool.TwocryptoOptimized { + spotPrice = c.QueryCurveTwoCryptoOptimizedSpotPrice(p, blockNum) + c.logger.Info().Interface("Curve twocryptooptimized spotPrice", spotPrice).Msg("spot price received") + c.indexer.AddPrice(spotPrice) + } } } } @@ -136,9 +142,9 @@ func (c *Client) QueryPancakeSpotPrice(p pool.Pool, blockNum uint64) indexer.Spo } } -// QueryCurveSpotPrice queries the spot price of a curve pool -func (c *Client) QueryCurveSpotPrice(p pool.Pool, blockNum uint64) indexer.SpotPrice { - curveCaller, err := curve.NewCurveCaller(common.HexToAddress(p.Address), c.ethClient) +// QueryCurveStableSwapNGSpotPrice queries the spot price of a curve stableswapng pool +func (c *Client) QueryCurveStableSwapNGSpotPrice(p pool.Pool, blockNum uint64) indexer.SpotPrice { + curveCaller, err := curve.NewStableSwapNGCaller(common.HexToAddress(p.Address), c.ethClient) if err != nil { c.reportError(fmt.Errorf("error initializing %s pool caller: %w", p.ExchangePair(), err)) return indexer.SpotPrice{} @@ -160,3 +166,28 @@ func (c *Client) QueryCurveSpotPrice(p pool.Pool, blockNum uint64) indexer.SpotP Price: sdkmath.LegacyNewDecFromBigIntWithPrec(poolPrice, 18), } } + +// QueryCurveTwoCryptoOptimizedSpotPrice queries the spot price of a curve twocryptooptimized pool +func (c *Client) QueryCurveTwoCryptoOptimizedSpotPrice(p pool.Pool, blockNum uint64) indexer.SpotPrice { + curveCaller, err := curve.NewTwocryptoOptimizedCaller(common.HexToAddress(p.Address), c.ethClient) + if err != nil { + c.reportError(fmt.Errorf("error initializing %s pool caller: %w", p.ExchangePair(), err)) + return indexer.SpotPrice{} + } + + // price comes inverted + poolPriceInverted, err := curveCaller.LastPrices(nil) + if err != nil { + c.reportError(fmt.Errorf("error getting %s token last price from pool: %w", p.ExchangePair(), err)) + return indexer.SpotPrice{} + } + scale := new(big.Int).Exp(big.NewInt(10), big.NewInt(36), nil) + poolPrice := new(big.Int).Quo(scale, poolPriceInverted) + + return indexer.SpotPrice{ + BlockNum: indexer.BlockNum(blockNum), + Timestamp: utils.CurrentUnixTime(), + ExchangePair: p.ExchangePair(), + Price: sdkmath.LegacyNewDecFromBigIntWithPrec(poolPrice, 18), + } +} diff --git a/client/swaps.go b/client/swaps.go index 910328c..cee0747 100644 --- a/client/swaps.go +++ b/client/swaps.go @@ -45,9 +45,16 @@ func (c *Client) WatchSwapsAndRestart(p pool.Pool) { c.reportError(fmt.Errorf("error watching %s swap events", p.ExchangePair())) } case pool.PoolCurve: - err := c.WatchCurveSwapEvent(p) - if err != nil { - c.reportError(fmt.Errorf("error watching %s swap events", p.ExchangePair())) + if p.PoolType == pool.StableSwapNG { + err := c.WatchCurveStableSwapNGSwapEvent(p) + if err != nil { + c.reportError(fmt.Errorf("error watching %s swap events", p.ExchangePair())) + } + } else if p.PoolType == pool.TwocryptoOptimized { + err := c.WatchCurveTwoCryptoOptimizedSwapEvent(p) + if err != nil { + c.reportError(fmt.Errorf("error watching %s swap events", p.ExchangePair())) + } } } } @@ -218,19 +225,19 @@ func (c *Client) WatchPancakeSwapEvent(p pool.Pool) error { } } -// WatchCurveSwapEvent watches for swap events on a curve pool -func (c *Client) WatchCurveSwapEvent(p pool.Pool) error { - curveCaller, err := curve.NewCurveCaller(common.HexToAddress(p.Address), c.ethClient) +// WatchCurveStableSwapNGSwapEvent watches for swap events on a curve StableSwapNG pool +func (c *Client) WatchCurveStableSwapNGSwapEvent(p pool.Pool) error { + curveCaller, err := curve.NewStableSwapNGCaller(common.HexToAddress(p.Address), c.ethClient) if err != nil { return err } - curveFilterer, err := curve.NewCurveFilterer(common.HexToAddress(p.Address), c.ethClient) + curveFilterer, err := curve.NewStableSwapNGFilterer(common.HexToAddress(p.Address), c.ethClient) if err != nil { return err } - eventSink := make(chan *curve.CurveTokenExchange) + eventSink := make(chan *curve.StableSwapNGTokenExchange) opts := &bind.WatchOpts{Start: nil, Context: c.ctx} c.logger.Info().Msgf("subscribing to %s swap events", p.ExchangePair()) subscription, err := curveFilterer.WatchTokenExchange(opts, eventSink, nil) @@ -255,9 +262,63 @@ func (c *Client) WatchCurveSwapEvent(p pool.Pool) error { scale := new(big.Int).Exp(big.NewInt(10), big.NewInt(36), nil) poolPrice := new(big.Int).Quo(scale, poolPriceInverted) - swap := p.ConvertCurveEventToSwap(event, poolPrice) - spotPrice := p.ConvertCurveEventToSpotPrice(event, poolPrice) - c.logger.Info().Interface("curve swap", swap).Msg("curve swap event received") + swap := p.ConvertCurveStableSwapNGEventToSwap(event, poolPrice) + spotPrice := p.ConvertCurveStableSwapNGEventToSpotPrice(event, poolPrice) + c.logger.Info().Interface("curve stableswapng swap", swap). + Msg("curve stableswapng swap event received") + c.indexer.AddSwap(swap) + c.indexer.AddPrice(spotPrice) + } + } +} + +// WatchCurveTwoCryptoOptimizedSwapEvent watches for swap events on a curve TwoCryptoOptimized pool +func (c *Client) WatchCurveTwoCryptoOptimizedSwapEvent(p pool.Pool) error { + curveCaller, err := curve.NewTwocryptoOptimizedCaller( + common.HexToAddress(p.Address), + c.ethClient, + ) + if err != nil { + return err + } + + curveFilterer, err := curve.NewTwocryptoOptimizedFilterer( + common.HexToAddress(p.Address), + c.ethClient, + ) + if err != nil { + return err + } + + eventSink := make(chan *curve.TwocryptoOptimizedTokenExchange) + opts := &bind.WatchOpts{Start: nil, Context: c.ctx} + c.logger.Info().Msgf("subscribing to %s swap events", p.ExchangePair()) + subscription, err := curveFilterer.WatchTokenExchange(opts, eventSink, nil) + if err != nil { + return err + } + + for { + select { + case <-c.ctx.Done(): + c.logger.Info().Msgf("unsubscribing from %s swap events", p.ExchangePair()) + subscription.Unsubscribe() + return nil + case err := <-subscription.Err(): + return err + case event := <-eventSink: + // price comes inverted + poolPriceInverted, err := curveCaller.LastPrices(nil) + if err != nil { + return err + } + scale := new(big.Int).Exp(big.NewInt(10), big.NewInt(36), nil) + poolPrice := new(big.Int).Quo(scale, poolPriceInverted) + + swap := p.ConvertCurveTwoCryptoOptimizedEventToSwap(event, poolPrice) + spotPrice := p.ConvertCurveTwoCryptoOptimizedEventToSpotPrice(event, poolPrice) + c.logger.Info().Interface("curve twocryptooptimized swap", swap). + Msg("curve twocryptooptimized swap event received") c.indexer.AddSwap(swap) c.indexer.AddPrice(spotPrice) } diff --git a/config/config.go b/config/config.go index 47c8f5c..902969c 100644 --- a/config/config.go +++ b/config/config.go @@ -66,6 +66,15 @@ func (c Config) Validate() (err error) { if _, ok := pool.SupportedExchanges[exchange.Name]; !ok { return fmt.Errorf("unsupported exchange: %s", exchange.Name) } + + // validate pool types of curve pools + if exchange.Name == pool.ExchangeCurve { + for _, p := range exchange.Pools { + if p.PoolType != pool.StableSwapNG && p.PoolType != pool.TwocryptoOptimized { + return fmt.Errorf("unsupported pool type for curve exchange: %s", p.PoolType) + } + } + } } return nil diff --git a/config/config_test.go b/config/config_test.go index c9028ea..80c992e 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -107,3 +107,68 @@ exchanges: _, err = ParseConfig(tmpfile.Name()) assert.ErrorContains(t, err, "unsupported exchange: invalid exchange") } + +func TestValidPoolTypes(t *testing.T) { + tmpfile, err := os.CreateTemp("", "config_test") + if err != nil { + t.Fatal(err) + } + defer os.Remove(tmpfile.Name()) + + _, err = tmpfile.Write([]byte(` +exchanges: + - name: curve + node_urls: + - http://node1.com + pools: + - base: "WBTC" + quote: "WETH" + address: "testAddress1" + pool_type: "stableswapng" + - base: "WETH" + quote: "USDC" + address: "testAddress2" + pool_type: "twocryptooptimized" + server: + listen_addr: "http://localhost:8080" +`)) + if err != nil { + t.Fatal(err) + } + + if err := tmpfile.Close(); err != nil { + t.Fatal(err) + } +} + +func TestInvalidPoolType(t *testing.T) { + tmpfile, err := os.CreateTemp("", "config_test") + if err != nil { + t.Fatal(err) + } + defer os.Remove(tmpfile.Name()) + + _, err = tmpfile.Write([]byte(` +exchanges: + - name: curve + node_urls: + - http://node1.com + pools: + - base: "WBTC" + quote: "WETH" + address: "testAddress1" + pool_type: "invalid pool type" + server: + listen_addr: "http://localhost:8080" +`)) + if err != nil { + t.Fatal(err) + } + + if err := tmpfile.Close(); err != nil { + t.Fatal(err) + } + + _, err = ParseConfig(tmpfile.Name()) + assert.ErrorContains(t, err, "unsupported pool type for curve exchange: invalid pool type") +} diff --git a/pool/pool.go b/pool/pool.go index e2775e8..9e23281 100644 --- a/pool/pool.go +++ b/pool/pool.go @@ -23,6 +23,9 @@ type Pool struct { BaseDecimal uint64 `yaml:"base_decimal"` QuoteDecimal uint64 `yaml:"quote_decimal"` InvertPrice bool `yaml:"invert_price"` + + // used for exchanges with multiple pool implementations + PoolType PoolType `yaml:"pool_type"` } func (p *Pool) ExchangePair() string { @@ -105,7 +108,35 @@ func (p *Pool) ConvertPancakeEventToSwap(event *pancake.PancakeSwap) indexer.Swa } } -func (p *Pool) ConvertCurveEventToSpotPrice(event *curve.CurveTokenExchange, price *big.Int) indexer.SpotPrice { +func (p *Pool) ConvertCurveStableSwapNGEventToSpotPrice( + event *curve.StableSwapNGTokenExchange, + price *big.Int, +) indexer.SpotPrice { + return indexer.SpotPrice{ + BlockNum: indexer.BlockNum(event.Raw.BlockNumber), + Timestamp: utils.CurrentUnixTime(), + ExchangePair: p.ExchangePair(), + Price: p.SqrtPriceX96ToDec(price), + } +} + +func (p *Pool) ConvertCurveStableSwapNGEventToSwap( + event *curve.StableSwapNGTokenExchange, + price *big.Int, +) indexer.Swap { + return indexer.Swap{ + BlockNum: indexer.BlockNum(event.Raw.BlockNumber), + Timestamp: utils.CurrentUnixTime(), + ExchangePair: p.ExchangePair(), + Price: sdkmath.LegacyNewDecFromBigIntWithPrec(price, 18), + Volume: p.swapCurveStableSwapNGVolume(event), + } +} + +func (p *Pool) ConvertCurveTwoCryptoOptimizedEventToSpotPrice( + event *curve.TwocryptoOptimizedTokenExchange, + price *big.Int, +) indexer.SpotPrice { return indexer.SpotPrice{ BlockNum: indexer.BlockNum(event.Raw.BlockNumber), Timestamp: utils.CurrentUnixTime(), @@ -114,13 +145,16 @@ func (p *Pool) ConvertCurveEventToSpotPrice(event *curve.CurveTokenExchange, pri } } -func (p *Pool) ConvertCurveEventToSwap(event *curve.CurveTokenExchange, price *big.Int) indexer.Swap { +func (p *Pool) ConvertCurveTwoCryptoOptimizedEventToSwap( + event *curve.TwocryptoOptimizedTokenExchange, + price *big.Int, +) indexer.Swap { return indexer.Swap{ BlockNum: indexer.BlockNum(event.Raw.BlockNumber), Timestamp: utils.CurrentUnixTime(), ExchangePair: p.ExchangePair(), Price: sdkmath.LegacyNewDecFromBigIntWithPrec(price, 18), - Volume: p.swapCurveVolume(event), + Volume: p.swapCurveTwoCryptoOptimizedVolume(event), } } @@ -189,7 +223,21 @@ func (p *Pool) swapPancakeVolume(event *pancake.PancakeSwap) sdkmath.LegacyDec { } } -func (p *Pool) swapCurveVolume(event *curve.CurveTokenExchange) sdkmath.LegacyDec { +func (p *Pool) swapCurveStableSwapNGVolume( + event *curve.StableSwapNGTokenExchange, +) sdkmath.LegacyDec { + if p.InvertPrice { + volume := sdkmath.LegacyNewDecFromBigInt(event.TokensBought).Abs() + return volume.Quo(sdkmath.LegacyNewDec(10).Power(uint64(p.QuoteDecimal))) + } else { + volume := sdkmath.LegacyNewDecFromBigInt(event.TokensSold).Abs() + return volume.Quo(sdkmath.LegacyNewDec(10).Power(uint64(p.BaseDecimal))) + } +} + +func (p *Pool) swapCurveTwoCryptoOptimizedVolume( + event *curve.TwocryptoOptimizedTokenExchange, +) sdkmath.LegacyDec { if p.InvertPrice { volume := sdkmath.LegacyNewDecFromBigInt(event.TokensBought).Abs() return volume.Quo(sdkmath.LegacyNewDec(10).Power(uint64(p.QuoteDecimal))) diff --git a/pool/supported_exchanges.go b/pool/supported_exchanges.go index bf49cd9..b1f1431 100644 --- a/pool/supported_exchanges.go +++ b/pool/supported_exchanges.go @@ -2,6 +2,7 @@ package pool type ExchangeName string type PoolContract string +type PoolType string const ExchangeUniswap ExchangeName = "uniswap" const ExchangeCamelot ExchangeName = "camelot" @@ -13,6 +14,8 @@ const PoolAlgebra PoolContract = "algebrapool" const PoolBalancer PoolContract = "balancerpool" const PoolPancake PoolContract = "pancakepool" const PoolCurve PoolContract = "curvepool" +const StableSwapNG PoolType = "stableswapng" +const TwocryptoOptimized PoolType = "twocryptooptimized" // maps exchange to pool contract of that exchange var SupportedExchanges = map[ExchangeName]PoolContract{ diff --git a/sample-config.yaml b/sample-config.yaml index 5958435..2eb9584 100644 --- a/sample-config.yaml +++ b/sample-config.yaml @@ -154,6 +154,14 @@ exchanges: base_decimal: 18 quote_decimal: 18 invert_price: false + pool_type: "stableswapng" + - address: "0x19b8524665abac613d82ece5d8347ba44c714bdd" + base: "YNETH" + quote: "WSTETH" + base_decimal: 18 + quote_decimal: 18 + invert_price: false + pool_type: "twocryptooptimized" server: listen_addr: "0.0.0.0:5009" write_timeout: "20s"