import { BigintIsh } from './constants/internalConstants'; import { Address } from 'abitype'; import { Hex, PublicClient } from 'viem'; import { CollectOptions, FarmAddCallOptions, FarmRemoveCallOptions, HarvestOptions, IncreaseSpecificOptions, MethodParameters, RemoveSpecificOptions, WidthDrawOptions } from './constants/type'; import { MasterChef } from './MasterChefV3'; import { Slot } from './KuramaV3Pool'; export type PoolRewarderInfo = { rewardToken: Address; rewardPerSecond: bigint; endTime: number; }; export type MultiMasterPool = { v3Pool: Address; token0: Address; token1: Address; fee: number; pid: bigint; latestAccumulateTime: number; totalLiquidity: bigint; totalBoostLiquidity: bigint; rewarders: PoolRewarderInfo[]; slot?: Slot; }; export type FramFormatPool = { id: string; pid: number; symbol: string; feeTier: string; IsLive: boolean; tick: string; isForward: boolean; rewarderUSD: { address: string; amountSecond: string; logoURI: string; name: string; symbol: string; decimals: number; }[]; token0: { id: string; balance: string; logoURI: string; name: string; symbol: string; decimals: number; }; token1: { id: string; balance: string; logoURI: string; name: string; symbol: string; decimals: number; }; }; export type MultiChefV3Position = { liquidity: BigintIsh; boostLiquidity: BigintIsh; tickLower: number; tickUpper: number; user: Address; pid: bigint; tokenId: bigint; boostMultiplier: BigintIsh; poolAddress: string; rewards: bigint[]; fee_amount0: bigint; fee_amount1: bigint; }; export declare class MultiMasterChefV3 { static ABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract INonfungiblePositionManager"; readonly name: "_nonfungiblePositionManager"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "_WETH"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }]; readonly name: "DuplicatedPool"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly internalType: "contract IERC20"; readonly name: "rewardToken"; readonly type: "address"; }]; readonly name: "DuplicatedRewarder"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InconsistentAmount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidNFT"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidPeriodDuration"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidPid"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NoLMPool"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NoLiquidity"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotDojoNFT"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotEmergency"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotEmpty"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotOwner"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NotOwnerOrOperator"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "rewardToken"; readonly type: "address"; }]; readonly name: "RewarderNotExist"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "WrongReceiver"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "ZeroAddress"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "contract IDojoV3Pool"; readonly name: "v3Pool"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "contract ILMPool"; readonly name: "lmPool"; readonly type: "address"; }]; readonly name: "AddPool"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "rewardToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "rewardPerSecond"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "endTime"; readonly type: "uint256"; }]; readonly name: "AddRewarder"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "tokenId"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidity"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "int24"; readonly name: "tickLower"; readonly type: "int24"; }, { readonly indexed: false; readonly internalType: "int24"; readonly name: "tickUpper"; readonly type: "int24"; }]; readonly name: "Deposit"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "tokenId"; readonly type: "uint256"; }]; readonly name: "EmergencyWithdraw"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "tokenId"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "rewardToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "reward"; readonly type: "uint256"; }]; readonly name: "Harvest"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "deployer"; readonly type: "address"; }]; readonly name: "NewLMPoolDeployerAddress"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "operator"; readonly type: "address"; }]; readonly name: "NewOperatorAddress"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "vault"; readonly type: "address"; }]; readonly name: "NewVaultAddress"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferred"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "bool"; readonly name: "emergency"; readonly type: "bool"; }]; readonly name: "SetEmergency"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "farmBoostContract"; readonly type: "address"; }]; readonly name: "UpdateFarmBoostContract"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "tokenId"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "int128"; readonly name: "liquidity"; readonly type: "int128"; }, { readonly indexed: false; readonly internalType: "int24"; readonly name: "tickLower"; readonly type: "int24"; }, { readonly indexed: false; readonly internalType: "int24"; /** * 获得池子奖励配置信息 */ readonly name: "tickUpper"; readonly type: "int24"; }]; readonly name: "UpdateLiquidity"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "rewardToken"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "rewardPerSecond"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "endTime"; readonly type: "uint256"; }]; readonly name: "UpdateRewarder"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "tokenId"; readonly type: "uint256"; }]; readonly name: "Withdraw"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "BOOST_PRECISION"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "FARM_BOOSTER"; readonly outputs: readonly [{ readonly internalType: "contract IFarmBooster"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "LMPoolDeployer"; readonly outputs: readonly [{ readonly internalType: "contract ILMPoolDeployer"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "MAX_BOOST_PRECISION"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "MAX_DURATION"; /** * 获取v3池子的pid * @param poolAddress * @returns */ readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "MIN_DURATION"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "REWARD_PRECISION"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; /** * 计算farming 奖励 * @param options * @returns */ readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "WETH"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IDojoV3Pool"; readonly name: "_v3Pool"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "_rewardToken"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_rewardPerSecond"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "_duration"; readonly type: "uint256"; }]; readonly name: "addPool"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_pid"; readonly type: "uint256"; }, { readonly internalType: "contract IERC20"; readonly name: "_rewardToken"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_rewardPerSecond"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "_duration"; readonly type: "uint256"; }]; readonly name: "addRewarder"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }]; 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: "uint256"; readonly name: "_tokenId"; readonly type: "uint256"; }]; readonly name: "burn"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "tokenId"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly internalType: "uint128"; readonly name: "amount0Max"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "amount1Max"; readonly type: "uint128"; }]; readonly internalType: "struct INonfungiblePositionManagerStruct.CollectParams"; readonly name: "params"; readonly type: "tuple"; }]; readonly name: "collect"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amount0"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amount1"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "tokenId"; readonly type: "uint256"; }, { readonly internalType: "uint128"; readonly name: "liquidity"; readonly type: "uint128"; }, { readonly internalType: "uint256"; readonly name: "amount0Min"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amount1Min"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly internalType: "struct INonfungiblePositionManagerStruct.DecreaseLiquidityParams"; readonly name: "params"; readonly type: "tuple"; }]; readonly name: "decreaseLiquidity"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amount0"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amount1"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "emergency"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_tokenId"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }]; readonly name: "emergencyWithdraw"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_v3Pool"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "_rewardToken"; readonly type: "address"; }]; readonly name: "getLatestPeriodInfo"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "rewardPerSecond"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "endTime"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_pid"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "_rewardToken"; readonly type: "address"; }]; readonly name: "getLatestPeriodInfoByPid"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "rewardPerSecond"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "endTime"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IDojoV3Pool"; readonly name: "_v3Pool"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "index"; readonly type: "uint256"; }]; readonly name: "getRewarderInfo"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IERC20"; readonly name: "rewardToken"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "rewardPerSecond"; readonly type: "uint256"; }, { /** * 取消质押 * @param sender * @param recipient * @param tokenId * @returns */ readonly internalType: "uint32"; readonly name: "endTime"; readonly type: "uint32"; }, { readonly internalType: "uint256"; readonly name: "releasedAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "harvestedAmount"; readonly type: "uint256"; }]; /** * 收割Farming奖励 * @param options * @returns */ readonly internalType: "struct MasterChefV3.PoolRewarderInfo"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_pid"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "index"; readonly type: "uint256"; }]; readonly name: "getRewarderInfoByPid"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IERC20"; readonly name: "rewardToken"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "rewardPerSecond"; readonly type: "uint256"; }, { readonly internalType: "uint32"; readonly name: "endTime"; readonly type: "uint32"; }, { readonly internalType: "uint256"; readonly name: "releasedAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "harvestedAmount"; readonly type: "uint256"; }]; readonly internalType: "struct MasterChefV3.PoolRewarderInfo"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IDojoV3Pool"; readonly name: "_v3Pool"; readonly type: "address"; }]; readonly name: "getRewarderLength"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_tokenId"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }]; readonly name: "harvest"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: ""; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "tokenId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amount0Desired"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amount1Desired"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amount0Min"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amount1Min"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly internalType: "struct INonfungiblePositionManagerStruct.IncreaseLiquidityParams"; readonly name: "params"; readonly type: "tuple"; }]; readonly name: "increaseLiquidity"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "liquidity"; readonly type: "uint128"; }, { readonly internalType: "uint256"; readonly name: "amount0"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amount1"; readonly type: "uint256"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes[]"; readonly name: "data"; readonly type: "bytes[]"; }]; readonly name: "multicall"; readonly outputs: readonly [{ readonly internalType: "bytes[]"; readonly name: "results"; readonly type: "bytes[]"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "nonfungiblePositionManager"; readonly outputs: readonly [{ readonly internalType: "contract INonfungiblePositionManager"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "_from"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_tokenId"; readonly type: "uint256"; }, { readonly internalType: "bytes"; readonly name: ""; readonly type: "bytes"; }]; readonly name: "onERC721Received"; readonly outputs: readonly [{ readonly internalType: "bytes4"; readonly name: ""; readonly type: "bytes4"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "operatorAddress"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "owner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_tokenId"; readonly type: "uint256"; }]; readonly name: "pendingRewards"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: ""; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly name: "poolInfo"; readonly outputs: readonly [{ readonly internalType: "contract IDojoV3Pool"; readonly name: "v3Pool"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "token0"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "token1"; readonly type: "address"; }, { readonly internalType: "uint24"; readonly name: "fee"; readonly type: "uint24"; }, { readonly internalType: "uint256"; readonly name: "totalLiquidity"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalBoostLiquidity"; readonly type: "uint256"; }, { readonly internalType: "uint32"; readonly name: "latestAccumulateTime"; readonly type: "uint32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "poolLength"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "poolRewarderIndex"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "renounceOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "_emergency"; readonly type: "bool"; }]; readonly name: "setEmergency"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILMPoolDeployer"; readonly name: "_LMPoolDeployer"; readonly type: "address"; }]; readonly name: "setLMPoolDeployer"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_operatorAddress"; readonly type: "address"; }]; readonly name: "setOperator"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IVault"; readonly name: "_vault"; readonly type: "address"; }]; readonly name: "setVault"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "index"; readonly type: "uint256"; }]; readonly name: "tokenOfOwnerByIndex"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "transferOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_newFarmBoostContract"; readonly type: "address"; }]; readonly name: "updateFarmBoostContract"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_tokenId"; readonly type: "uint256"; }]; readonly name: "updateLiquidity"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "_pids"; readonly type: "uint256[]"; }]; readonly name: "updatePools"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_pid"; readonly type: "uint256"; }, { readonly internalType: "contract IERC20"; readonly name: "_rewardToken"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_rewardPerSecond"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "_duration"; readonly type: "uint256"; }]; readonly name: "updateRewarder"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly name: "userPositionInfos"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "liquidity"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "boostLiquidity"; readonly type: "uint128"; }, { readonly internalType: "int24"; readonly name: "tickLower"; readonly type: "int24"; }, { readonly internalType: "int24"; readonly name: "tickUpper"; readonly type: "int24"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "boostMultiplier"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "v3PoolAddressPid"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "vault"; readonly outputs: readonly [{ readonly internalType: "contract IVault"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_tokenId"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }]; readonly name: "withdraw"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: ""; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly stateMutability: "payable"; readonly type: "receive"; }]; readonly publicClient: PublicClient; readonly contractAddress: Address; masterChefData?: MasterChef; private readonly masterChefV3; constructor(publicClient: PublicClient, contractAddress: Address); private buildContractClinet; private buildToken; private buildTokenBalance; private compareTokens; /** * 获得池子数据 * @returns */ buildFormatPoolList(): Promise; /** * 获得池子数据 * @param pid * @returns */ buildMasterPoolData(pid: bigint, showSlot?: boolean): Promise; /** * 获取池子列表 * @returns */ buildMasterPoolList(showSlot?: boolean): Promise; /** * 获得池子奖励配置信息 */ getPoolRewarderInfo(v3Pool: Address): Promise; /** * 获取持有的TokenId数据 * @param owner * @returns */ getOwnerTokenIds(owner: Address): Promise; /** * 获取持有的仓位数据 * @param owner * @returns */ getOwnerPositions(owner: Address, tokenIds?: bigint[]): Promise; /** * 获取仓位信息 * @param tokenId * @returns */ getPosition(tokenId: bigint): Promise; /** * 获取v3池子的pid * @param poolAddress * @returns */ getV3PoolAddressPid(poolAddress: Address): Promise; /** * 计算仓位fee * @param tokenIds * @param recipient * @returns */ calculatePositionFee(tokenIds: bigint[], recipient: Address): Promise>; /** * 计算farming 奖励 * @param options * @returns */ calculateFarmingReward(tokenIds: bigint[], recipient: Address): Promise>; /** * 添加流动性 * @param options * @returns */ static addCallParameters(options: FarmAddCallOptions): { calldata: `0x${string}`; value: `0x${string}`; }; /** * 移除流动性 * @param options * @returns */ static removeCallParameters(options: FarmRemoveCallOptions): { calldata: `0x${string}`; value: `0x${string}`; }; /** * 移除流动性 * 当token id 对应fram 奖励为0 时 该逻辑有问题 * @param options * @returns */ static removeCallParametersCopy(options: FarmRemoveCallOptions): { calldata: `0x${string}`; value: `0x${string}`; }; static encodeburn(tokenId: bigint): Hex; static burnCallParameters(tokenId: bigint): { calldata: `0x${string}`; value: `0x${string}`; }; /** * 收割奖励和fee * @param options * @returns */ static claimCallParameters(collectOptions: CollectOptions, recipient: Address): { calldata: `0x${string}`; value: `0x${string}`; }; /** * 收集仓位手续费 * @param options * @returns */ static collectCallParameters(options: CollectOptions): MethodParameters; /** * 取消质押 * @param sender * @param recipient * @param tokenId * @returns */ static withdrawCallParameters(options: WidthDrawOptions): MethodParameters; /** * 收割Farming奖励 * @param options * @returns */ static batchHarvestCallParameters(options: HarvestOptions[]): MethodParameters; /** * 100000000000000000/10^12 / 10^decamil * @param rewardPerSecond * @param decimals * @returns */ static formatRewardPerSecond(rewardPerSecond: bigint, decimals: number): string; static encodeCollect(options: CollectOptions): Hex[]; static encodeIncreaseLiquidity(options: IncreaseSpecificOptions): Hex; static encodeDecreaseLiquidity(options: RemoveSpecificOptions): Hex; static encodeHarvest(options: HarvestOptions): Hex; private static encodeWithdraw; }