import { MulticallOptions } from '../multicall/multicall'; import { MarketAcc } from '../types'; import { iAMMAbi } from './abis/viemAbis'; import { BaseContractHelper } from './base-contract-helper'; export declare class AMM extends BaseContractHelper { abi(): readonly [{ readonly inputs: readonly [{ readonly internalType: "MarketAcc"; readonly name: "account"; readonly type: "bytes26"; }, { readonly internalType: "uint256"; readonly name: "balance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "value"; readonly type: "uint256"; }]; readonly name: "BOROS20NotEnoughBalance"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint128"; readonly name: "minAbsRate"; readonly type: "uint128"; }, { readonly indexed: false; readonly internalType: "uint128"; readonly name: "maxAbsRate"; readonly type: "uint128"; }, { readonly indexed: false; readonly internalType: "uint32"; readonly name: "cutOffTimestamp"; readonly type: "uint32"; }]; readonly name: "AMMConfigUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "MarketAcc"; readonly name: "from"; readonly type: "bytes26"; }, { readonly indexed: false; readonly internalType: "MarketAcc"; readonly name: "to"; readonly type: "bytes26"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "value"; readonly type: "uint256"; }]; readonly name: "BOROS20Transfer"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "MarketAcc"; readonly name: "payer"; readonly type: "bytes26"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "netLpBurned"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "netCashOut"; readonly type: "int256"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "netSizeOut"; readonly type: "int256"; }]; readonly name: "Burn"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "newFeeRate"; readonly type: "uint256"; }]; readonly name: "FeeRateUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint32"; readonly name: "newWindow"; readonly type: "uint32"; }]; readonly name: "ImpliedRateObservationWindowUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "MarketAcc"; readonly name: "receiver"; readonly type: "bytes26"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "netLpMinted"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "netCashIn"; readonly type: "int256"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "netSizeIn"; readonly type: "int256"; }]; readonly name: "Mint"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "int256"; readonly name: "sizeOut"; readonly type: "int256"; }, { readonly indexed: false; readonly internalType: "int256"; readonly name: "costOut"; readonly type: "int256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "fee"; readonly type: "uint256"; }]; readonly name: "Swap"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "newTotalSupplyCap"; readonly type: "uint256"; }]; readonly name: "TotalSupplyCapUpdated"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "ACCOUNT_ONE"; readonly outputs: readonly [{ readonly internalType: "MarketAcc"; readonly name: ""; readonly type: "bytes26"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "AMM_ID"; readonly outputs: readonly [{ readonly internalType: "AMMId"; readonly name: ""; readonly type: "uint24"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "MARKET"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "MATURITY"; readonly outputs: readonly [{ readonly internalType: "uint32"; readonly name: ""; readonly type: "uint32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "ROUTER"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "SEED_TIME"; readonly outputs: readonly [{ readonly internalType: "uint32"; readonly name: ""; readonly type: "uint32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "SELF_ACC"; readonly outputs: readonly [{ readonly internalType: "MarketAcc"; readonly name: ""; readonly type: "bytes26"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_storage"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "minAbsRate"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "maxAbsRate"; readonly type: "uint128"; }, { readonly internalType: "uint32"; readonly name: "cutOffTimestamp"; readonly type: "uint32"; }, { readonly internalType: "uint32"; readonly name: "oracleImpliedRateWindow"; readonly type: "uint32"; }, { readonly internalType: "uint64"; readonly name: "feeRate"; readonly type: "uint64"; }, { readonly internalType: "uint256"; readonly name: "totalSupplyCap"; readonly type: "uint256"; }, { readonly internalType: "uint128"; readonly name: "totalFloatAmount"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "normFixedAmount"; readonly type: "uint128"; }, { readonly internalType: "uint32"; readonly name: "lastTradedTime"; readonly type: "uint32"; }, { readonly internalType: "int128"; readonly name: "prevOracleImpliedRate"; readonly type: "int128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "MarketAcc"; readonly name: "account"; readonly type: "bytes26"; }]; readonly name: "balanceOf"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "MarketAcc"; readonly name: "payer"; readonly type: "bytes26"; }, { readonly internalType: "int256"; readonly name: "totalCash"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "totalSize"; readonly type: "int256"; }, { readonly internalType: "uint256"; readonly name: "lpToBurn"; readonly type: "uint256"; }]; readonly name: "burnByBorosRouter"; readonly outputs: readonly [{ readonly internalType: "int256"; readonly name: "netCashOut"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "netSizeOut"; readonly type: "int256"; }, { readonly internalType: "bool"; readonly name: "isMatured"; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "int256"; readonly name: "targetRate"; readonly type: "int256"; }]; readonly name: "calcSwapSize"; readonly outputs: readonly [{ readonly internalType: "int256"; readonly name: ""; readonly type: "int256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "decimals"; readonly outputs: readonly [{ readonly internalType: "uint8"; readonly name: ""; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "feeRate"; readonly outputs: readonly [{ readonly internalType: "uint64"; readonly name: ""; readonly type: "uint64"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "impliedRate"; readonly outputs: readonly [{ readonly internalType: "int256"; readonly name: ""; readonly type: "int256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "MarketAcc"; readonly name: "receiver"; readonly type: "bytes26"; }, { readonly internalType: "int256"; readonly name: "totalCash"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "totalSize"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "maxCashIn"; readonly type: "int256"; }, { readonly internalType: "int256"; readonly name: "exactSizeIn"; readonly type: "int256"; }]; readonly name: "mintByBorosRouter"; readonly outputs: readonly [{ readonly internalType: "int256"; readonly name: "netCashIn"; readonly type: "int256"; }, { readonly internalType: "uint256"; readonly name: "netLpOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "name"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "oracleImpliedRate"; readonly outputs: readonly [{ readonly internalType: "int128"; readonly name: "oracleImpliedRate"; readonly type: "int128"; }, { readonly internalType: "uint32"; readonly name: "observationWindow"; readonly type: "uint32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "readState"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "totalFloatAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "normFixedAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalLp"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "latestFTime"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "maturity"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "seedTime"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "minAbsRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "maxAbsRate"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "cutOffTimestamp"; readonly type: "uint256"; }]; readonly internalType: "struct AMMState"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint128"; readonly name: "minAbsRate"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "maxAbsRate"; readonly type: "uint128"; }, { readonly internalType: "uint32"; readonly name: "cutOffTimestamp"; readonly type: "uint32"; }]; readonly name: "setAMMConfig"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint64"; readonly name: "newFeeRate"; readonly type: "uint64"; }]; readonly name: "setAMMFeeRate"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint32"; readonly name: "newWindow"; readonly type: "uint32"; }]; readonly name: "setAMMImpliedRateObservationWindow"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "newTotalSupplyCap"; readonly type: "uint256"; }]; readonly name: "setAMMTotalSupplyCap"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "int256"; readonly name: "sizeOut"; readonly type: "int256"; }]; readonly name: "swapByBorosRouter"; readonly outputs: readonly [{ readonly internalType: "int256"; readonly name: "costOut"; readonly type: "int256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "int256"; readonly name: "sizeOut"; readonly type: "int256"; }]; readonly name: "swapView"; readonly outputs: readonly [{ readonly internalType: "int256"; readonly name: "costOut"; readonly type: "int256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "symbol"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "totalSupply"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "totalSupplyCap"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; readState(): Promise<{ totalFloatAmount: bigint; normFixedAmount: bigint; totalLp: bigint; latestFTime: bigint; maturity: bigint; seedTime: bigint; minAbsRate: bigint; maxAbsRate: bigint; cutOffTimestamp: bigint; }>; impliedRate(): Promise; feeRate(): Promise; marketAcc(): Promise<`0x${string}`>; balanceOf(marketAcc: MarketAcc, multicallOptions?: MulticallOptions): Promise; calcSwapSize(targetRate: bigint, multicallOptions?: MulticallOptions): Promise; totalSupply(multicallOptions?: MulticallOptions): Promise; totalSupplyCap(multicallOptions?: MulticallOptions): Promise; }