import { Address } from 'abitype'; import { PublicClient } from 'viem'; import { MethodParameters } from './constants/type'; import { BidderInfo, IdoPool, WithdrawAmounts } from './constants/ido'; export declare class KuramaIdoPool { static ABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_WETH"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address[]"; readonly name: "users"; readonly type: "address[]"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "AddWhiteList"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Bid"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "ClaimBaseToken"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "ClaimQuoteToken"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "baseToken"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "quoteToken"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "crowdPool"; readonly type: "address"; }]; readonly name: "Init"; 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: "uint256"; readonly name: "bidStartTime"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "bidEndTime"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "claimBaseStartTime"; readonly type: "uint256"; }]; readonly name: "UpdateTimeLine"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address[]"; readonly name: "users"; readonly type: "address[]"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "UpdateWhiteList"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "baseAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "quoteAmount"; readonly type: "uint256"; }]; readonly name: "Withdraw"; readonly type: "event"; }, { 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 name: "_BASE_TOKEN_"; readonly outputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "_BIDDER_INFOS_"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "bidQuoteAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "protectionQuoteAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "obtainedBaseAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "usedQuoteAmount"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "isSettle"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "baseClaimed"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "quoteClaimed"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_FORCE_STOP_"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_INIT_"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_IS_WITHDRAW_"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_MAX_BID_AMOUNT_"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_MIN_BID_AMOUNT_"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; 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 name: "_PHASE_BID_ENDTIME_"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_PHASE_BID_STARTTIME_"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_PHASE_CLAIM_BASE_STARTTIME_"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_POOL_QUOTE_CAP_"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_POOL_QUOTE_LIMIT_"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_POOL_QUOTE_RESERVE_"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_PRICE_"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_PRICE_MULTIPLIER_"; 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 name: "_PROTECTION_ADDRESSES_"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_PROTECTION_QUOTE_ALLOWED_"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_PROTECTION_QUOTE_CAP_"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_PROTECTION_QUOTE_USED_"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_QUOTE_TOKEN_"; readonly outputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "_TOTAL_BASE_"; 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: "addresses"; readonly type: "address[]"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "add_whitelist"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "bid"; readonly outputs: readonly []; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "claim"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "claim_base"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "claim_quote"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "forceStop"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "bidder"; readonly type: "address"; }]; readonly name: "getAllowProtectionAmount"; 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: "addressList"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "timeLine"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "valueList"; readonly type: "uint256[]"; }]; readonly name: "init"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; 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 name: "renounceOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; 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: "uint256[]"; readonly name: "timeLine"; readonly type: "uint256[]"; }]; readonly name: "updateTimeLine"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "timeLine"; readonly type: "uint256[]"; }]; readonly name: "updateTimeLineOnlyTest"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "addresses"; readonly type: "address[]"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "update_whitelist"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "withdraw"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly stateMutability: "payable"; readonly type: "receive"; }]; readonly publicClient: PublicClient; readonly poolAddress: Address; private poolInfo; /** * 用户白名单额度 */ private useProtectionMap; /** * 用户购买信息 */ private useBindderMap; constructor(publicClient: PublicClient, poolAddress: Address); private buildContractClinet; /** * 获取用户的白名单限制额度 * @param user * @returns */ getUserProtectionAmount(user: string): Promise; /** * 获取用户购买信息 * @param user * @returns */ getUseBidderInfo(user: string, refresh?: boolean): Promise; /** * 获取池子信息 * @param useCache * @returns */ getPoolInfo(useCache?: boolean): Promise; /** * 购买 * @param options */ bidParameters(amount: string, isWeth: boolean): MethodParameters; /** * 项目方提现 * @returns */ withdrawParameters(): MethodParameters; /** * 计算项目方可提现数量 */ calculateWithdrawAmount(): Promise; /** * 计算用户可提取数量 * @returns */ calculateClaimAmount(bidderInfo: BidderInfo): Promise; claimParameters(claimBase: boolean, claimQuote: boolean): MethodParameters; private encodeClaimBase; private encodeClaim; private encodeClaimQuote; }