export const SWAP_ABI = [ { anonymous: false, inputs: [ { indexed: true, internalType: 'address', name: 'provider', type: 'address', }, { indexed: false, internalType: 'uint256[]', name: 'tokenAmounts', type: 'uint256[]', }, { indexed: false, internalType: 'uint256[]', name: 'fees', type: 'uint256[]', }, { indexed: false, internalType: 'uint256', name: 'invariant', type: 'uint256', }, { indexed: false, internalType: 'uint256', name: 'lpTokenSupply', type: 'uint256', }, ], name: 'AddLiquidity', type: 'event', }, { anonymous: false, inputs: [ { indexed: true, internalType: 'address', name: 'receiver', type: 'address', }, { indexed: false, internalType: 'uint8', name: 'tokenIndex', type: 'uint8', }, { indexed: false, internalType: 'uint256', name: 'amount', type: 'uint256', }, { indexed: false, internalType: 'uint256', name: 'amountFee', type: 'uint256', }, { indexed: false, internalType: 'uint256', name: 'protocolFee', type: 'uint256', }, ], name: 'FlashLoan', type: 'event', }, { anonymous: false, inputs: [ { indexed: false, internalType: 'uint256', name: 'newAdminFee', type: 'uint256', }, ], name: 'NewAdminFee', type: 'event', }, { anonymous: false, inputs: [ { indexed: false, internalType: 'uint256', name: 'newSwapFee', type: 'uint256', }, ], name: 'NewSwapFee', type: 'event', }, { anonymous: false, inputs: [ { indexed: true, internalType: 'address', name: 'previousOwner', type: 'address', }, { indexed: true, internalType: 'address', name: 'newOwner', type: 'address', }, ], name: 'OwnershipTransferred', type: 'event', }, { anonymous: false, inputs: [ { indexed: false, internalType: 'address', name: 'account', type: 'address', }, ], name: 'Paused', type: 'event', }, { anonymous: false, inputs: [ { indexed: false, internalType: 'uint256', name: 'oldA', type: 'uint256', }, { indexed: false, internalType: 'uint256', name: 'newA', type: 'uint256', }, { indexed: false, internalType: 'uint256', name: 'initialTime', type: 'uint256', }, { indexed: false, internalType: 'uint256', name: 'futureTime', type: 'uint256', }, ], name: 'RampA', type: 'event', }, { anonymous: false, inputs: [ { indexed: true, internalType: 'address', name: 'provider', type: 'address', }, { indexed: false, internalType: 'uint256[]', name: 'tokenAmounts', type: 'uint256[]', }, { indexed: false, internalType: 'uint256', name: 'lpTokenSupply', type: 'uint256', }, ], name: 'RemoveLiquidity', type: 'event', }, { anonymous: false, inputs: [ { indexed: true, internalType: 'address', name: 'provider', type: 'address', }, { indexed: false, internalType: 'uint256[]', name: 'tokenAmounts', type: 'uint256[]', }, { indexed: false, internalType: 'uint256[]', name: 'fees', type: 'uint256[]', }, { indexed: false, internalType: 'uint256', name: 'invariant', type: 'uint256', }, { indexed: false, internalType: 'uint256', name: 'lpTokenSupply', type: 'uint256', }, ], name: 'RemoveLiquidityImbalance', type: 'event', }, { anonymous: false, inputs: [ { indexed: true, internalType: 'address', name: 'provider', type: 'address', }, { indexed: false, internalType: 'uint256', name: 'lpTokenAmount', type: 'uint256', }, { indexed: false, internalType: 'uint256', name: 'lpTokenSupply', type: 'uint256', }, { indexed: false, internalType: 'uint256', name: 'boughtId', type: 'uint256', }, { indexed: false, internalType: 'uint256', name: 'tokensBought', type: 'uint256', }, ], name: 'RemoveLiquidityOne', type: 'event', }, { anonymous: false, inputs: [ { indexed: false, internalType: 'uint256', name: 'currentA', type: 'uint256', }, { indexed: false, internalType: 'uint256', name: 'time', type: 'uint256', }, ], name: 'StopRampA', type: 'event', }, { anonymous: false, inputs: [ { indexed: true, internalType: 'address', name: 'buyer', type: 'address', }, { indexed: false, internalType: 'uint256', name: 'tokensSold', type: 'uint256', }, { indexed: false, internalType: 'uint256', name: 'tokensBought', type: 'uint256', }, { indexed: false, internalType: 'uint128', name: 'soldId', type: 'uint128', }, { indexed: false, internalType: 'uint128', name: 'boughtId', type: 'uint128', }, ], name: 'TokenSwap', type: 'event', }, { anonymous: false, inputs: [ { indexed: false, internalType: 'address', name: 'account', type: 'address', }, ], name: 'Unpaused', type: 'event', }, { inputs: [], name: 'MAX_BPS', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'uint256[]', name: 'amounts', type: 'uint256[]', }, { internalType: 'uint256', name: 'minToMint', type: 'uint256', }, { internalType: 'uint256', name: 'deadline', type: 'uint256', }, ], name: 'addLiquidity', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { internalType: 'uint256', name: 'amount', type: 'uint256', }, ], name: 'calculateRemoveLiquidity', outputs: [ { internalType: 'uint256[]', name: '', type: 'uint256[]', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'uint256', name: 'tokenAmount', type: 'uint256', }, { internalType: 'uint8', name: 'tokenIndex', type: 'uint8', }, ], name: 'calculateRemoveLiquidityOneToken', outputs: [ { internalType: 'uint256', name: 'availableTokenAmount', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'uint8', name: 'tokenIndexFrom', type: 'uint8', }, { internalType: 'uint8', name: 'tokenIndexTo', type: 'uint8', }, { internalType: 'uint256', name: 'dx', type: 'uint256', }, ], name: 'calculateSwap', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'uint256[]', name: 'amounts', type: 'uint256[]', }, { internalType: 'bool', name: 'deposit', type: 'bool', }, ], name: 'calculateTokenAmount', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'address', name: 'receiver', type: 'address', }, { internalType: 'contract IERC20', name: 'token', type: 'address', }, { internalType: 'uint256', name: 'amount', type: 'uint256', }, { internalType: 'bytes', name: 'params', type: 'bytes', }, ], name: 'flashLoan', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [], name: 'flashLoanFeeBPS', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [], name: 'getA', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [], name: 'getAPrecise', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'uint256', name: 'index', type: 'uint256', }, ], name: 'getAdminBalance', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'uint8', name: 'index', type: 'uint8', }, ], name: 'getToken', outputs: [ { internalType: 'contract IERC20', name: '', type: 'address', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'uint8', name: 'index', type: 'uint8', }, ], name: 'getTokenBalance', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'address', name: 'tokenAddress', type: 'address', }, ], name: 'getTokenIndex', outputs: [ { internalType: 'uint8', name: '', type: 'uint8', }, ], stateMutability: 'view', type: 'function', }, { inputs: [], name: 'getVirtualPrice', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'contract IERC20[]', name: '_pooledTokens', type: 'address[]', }, { internalType: 'uint8[]', name: 'decimals', type: 'uint8[]', }, { internalType: 'string', name: 'lpTokenName', type: 'string', }, { internalType: 'string', name: 'lpTokenSymbol', type: 'string', }, { internalType: 'uint256', name: '_a', type: 'uint256', }, { internalType: 'uint256', name: '_fee', type: 'uint256', }, { internalType: 'uint256', name: '_adminFee', type: 'uint256', }, { internalType: 'address', name: 'lpTokenTargetAddress', type: 'address', }, ], name: 'initialize', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [], name: 'owner', outputs: [ { internalType: 'address', name: '', type: 'address', }, ], stateMutability: 'view', type: 'function', }, { inputs: [], name: 'pause', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [], name: 'paused', outputs: [ { internalType: 'bool', name: '', type: 'bool', }, ], stateMutability: 'view', type: 'function', }, { inputs: [], name: 'protocolFeeShareBPS', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'uint256', name: 'futureA', type: 'uint256', }, { internalType: 'uint256', name: 'futureTime', type: 'uint256', }, ], name: 'rampA', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { internalType: 'uint256', name: 'amount', type: 'uint256', }, { internalType: 'uint256[]', name: 'minAmounts', type: 'uint256[]', }, { internalType: 'uint256', name: 'deadline', type: 'uint256', }, ], name: 'removeLiquidity', outputs: [ { internalType: 'uint256[]', name: '', type: 'uint256[]', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { internalType: 'uint256[]', name: 'amounts', type: 'uint256[]', }, { internalType: 'uint256', name: 'maxBurnAmount', type: 'uint256', }, { internalType: 'uint256', name: 'deadline', type: 'uint256', }, ], name: 'removeLiquidityImbalance', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { internalType: 'uint256', name: 'tokenAmount', type: 'uint256', }, { internalType: 'uint8', name: 'tokenIndex', type: 'uint8', }, { internalType: 'uint256', name: 'minAmount', type: 'uint256', }, { internalType: 'uint256', name: 'deadline', type: 'uint256', }, ], name: 'removeLiquidityOneToken', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [], name: 'renounceOwnership', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { internalType: 'uint256', name: 'newAdminFee', type: 'uint256', }, ], name: 'setAdminFee', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { internalType: 'uint256', name: 'newFlashLoanFeeBPS', type: 'uint256', }, { internalType: 'uint256', name: 'newProtocolFeeShareBPS', type: 'uint256', }, ], name: 'setFlashLoanFees', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { internalType: 'uint256', name: 'newSwapFee', type: 'uint256', }, ], name: 'setSwapFee', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [], name: 'stopRampA', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { internalType: 'uint8', name: 'tokenIndexFrom', type: 'uint8', }, { internalType: 'uint8', name: 'tokenIndexTo', type: 'uint8', }, { internalType: 'uint256', name: 'dx', type: 'uint256', }, { internalType: 'uint256', name: 'minDy', type: 'uint256', }, { internalType: 'uint256', name: 'deadline', type: 'uint256', }, ], name: 'swap', outputs: [ { internalType: 'uint256', name: '', type: 'uint256', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [], name: 'swapStorage', outputs: [ { internalType: 'uint256', name: 'initialA', type: 'uint256', }, { internalType: 'uint256', name: 'futureA', type: 'uint256', }, { internalType: 'uint256', name: 'initialATime', type: 'uint256', }, { internalType: 'uint256', name: 'futureATime', type: 'uint256', }, { internalType: 'uint256', name: 'swapFee', type: 'uint256', }, { internalType: 'uint256', name: 'adminFee', type: 'uint256', }, { internalType: 'contract LPToken', name: 'lpToken', type: 'address', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { internalType: 'address', name: 'newOwner', type: 'address', }, ], name: 'transferOwnership', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [], name: 'unpause', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [], name: 'withdrawAdminFees', outputs: [], stateMutability: 'nonpayable', type: 'function', }, ] as const