UNPKG

@ponderfinance/sdk

Version:

SDK for interacting with Ponder DEX and 55555 Launcher

1,491 lines (1,480 loc) 106 kB
import * as viem from 'viem'; import { Address, PublicClient, WalletClient, Hash, TransactionReceipt } from 'viem'; import { Chain } from 'viem/chains'; import { z } from 'zod'; import * as react_jsx_runtime from 'react/jsx-runtime'; import { ReactNode } from 'react'; import * as _tanstack_react_query from '@tanstack/react-query'; import { QueryClient, UseQueryResult, UseMutationResult } from '@tanstack/react-query'; declare const SUPPORTED_CHAINS: { readonly 96: { readonly id: 96; readonly name: "Bitkub"; readonly nativeCurrency: { readonly decimals: 18; readonly name: "KUB"; readonly symbol: "KUB"; }; readonly rpcUrls: { readonly default: { readonly http: readonly ["https://rpc.bitkubchain.io"]; }; readonly public: { readonly http: readonly ["https://rpc.bitkubchain.io"]; }; }; readonly blockExplorers: { readonly default: { readonly name: "Bkcscan"; readonly url: "https://bkcscan.com"; }; }; readonly testnet: false; }; readonly 25925: { readonly id: 25925; readonly name: "Bitkub Testnet"; readonly nativeCurrency: { readonly decimals: 18; readonly name: "KUB"; readonly symbol: "KUB"; }; readonly rpcUrls: { readonly default: { readonly http: readonly ["https://rpc-testnet.bitkubchain.io"]; }; readonly public: { readonly http: readonly ["https://rpc-testnet.bitkubchain.io"]; }; }; readonly blockExplorers: { readonly default: { readonly name: "Bkcscan Testnet"; readonly url: "https://testnet.bkcscan.com"; }; }; readonly testnet: true; }; readonly 1: { blockExplorers: { readonly default: { readonly name: "Etherscan"; readonly url: "https://etherscan.io"; readonly apiUrl: "https://api.etherscan.io/api"; }; }; contracts: { readonly ensRegistry: { readonly address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"; }; readonly ensUniversalResolver: { readonly address: "0xce01f8eee7E479C928F8919abD53E553a36CeF67"; readonly blockCreated: 19258213; }; readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 14353601; }; }; id: 1; name: "Ethereum"; nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; rpcUrls: { readonly default: { readonly http: readonly ["https://cloudflare-eth.com"]; }; }; sourceId?: number | undefined; testnet?: boolean | undefined; custom?: Record<string, unknown> | undefined; fees?: viem.ChainFees<undefined> | undefined; formatters?: undefined; serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined; }; }; type SupportedChainId = keyof typeof SUPPORTED_CHAINS; declare function getChainFromId(chainId: SupportedChainId): { readonly id: 96; readonly name: "Bitkub"; readonly nativeCurrency: { readonly decimals: 18; readonly name: "KUB"; readonly symbol: "KUB"; }; readonly rpcUrls: { readonly default: { readonly http: readonly ["https://rpc.bitkubchain.io"]; }; readonly public: { readonly http: readonly ["https://rpc.bitkubchain.io"]; }; }; readonly blockExplorers: { readonly default: { readonly name: "Bkcscan"; readonly url: "https://bkcscan.com"; }; }; readonly testnet: false; } | { readonly id: 25925; readonly name: "Bitkub Testnet"; readonly nativeCurrency: { readonly decimals: 18; readonly name: "KUB"; readonly symbol: "KUB"; }; readonly rpcUrls: { readonly default: { readonly http: readonly ["https://rpc-testnet.bitkubchain.io"]; }; readonly public: { readonly http: readonly ["https://rpc-testnet.bitkubchain.io"]; }; }; readonly blockExplorers: { readonly default: { readonly name: "Bkcscan Testnet"; readonly url: "https://testnet.bkcscan.com"; }; }; readonly testnet: true; } | { blockExplorers: { readonly default: { readonly name: "Etherscan"; readonly url: "https://etherscan.io"; readonly apiUrl: "https://api.etherscan.io/api"; }; }; contracts: { readonly ensRegistry: { readonly address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"; }; readonly ensUniversalResolver: { readonly address: "0xce01f8eee7E479C928F8919abD53E553a36CeF67"; readonly blockCreated: 19258213; }; readonly multicall3: { readonly address: "0xca11bde05977b3631167028862be2a173976ca11"; readonly blockCreated: 14353601; }; }; id: 1; name: "Ethereum"; nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; rpcUrls: { readonly default: { readonly http: readonly ["https://cloudflare-eth.com"]; }; }; sourceId?: number | undefined; testnet?: boolean | undefined; custom?: Record<string, unknown> | undefined; fees?: viem.ChainFees<undefined> | undefined; formatters?: undefined; serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined; }; type CreatePairArgs = { tokenA: Address; tokenB: Address; }; type CreatePairResult = { hash: Hash; wait: () => Promise<{ pairAddress: Address; token0: Address; token1: Address; }>; }; declare class Factory { readonly chainId: SupportedChainId; readonly address: Address; readonly chain: Chain; private readonly publicClient; private readonly walletClient?; constructor(chainId: SupportedChainId, publicClient: PublicClient, walletClient?: WalletClient); getPair(tokenA: Address, tokenB: Address): Promise<Address>; allPairs(index: number): Promise<Address>; allPairsLength(): Promise<bigint>; feeTo(): Promise<Address>; feeToSetter(): Promise<Address>; createPair({ tokenA, tokenB }: CreatePairArgs): Promise<CreatePairResult>; setFeeTo(newFeeTo: Address): Promise<Hash>; setFeeToSetter(newFeeToSetter: Address): Promise<Hash>; setMigrator(newMigrator: Address): Promise<Hash>; /** * Get all pairs created by the factory * @returns Array of pair addresses */ getAllPairs(): Promise<Address[]>; } type PonderFactory = Factory; interface Reserves { reserve0: bigint; reserve1: bigint; blockTimestampLast: number; } type SwapArgs = { amount0Out: bigint; amount1Out: bigint; to: Address; data: string; }; type MintResult = { hash: Hash; wait: () => Promise<{ liquidity: bigint; }>; }; type BurnResult = { hash: Hash; wait: () => Promise<{ amount0: bigint; amount1: bigint; }>; }; declare class Pair { readonly chainId: SupportedChainId; readonly address: Address; readonly chain: Chain; private readonly publicClient; private readonly walletClient?; constructor(chainId: SupportedChainId, pairAddress: Address, publicClient: PublicClient, walletClient?: WalletClient); MINIMUM_LIQUIDITY(): Promise<bigint>; factory(): Promise<Address>; token0(): Promise<Address>; token1(): Promise<Address>; getReserves(): Promise<Reserves>; price0CumulativeLast(): Promise<bigint>; price1CumulativeLast(): Promise<bigint>; kLast(): Promise<bigint>; launcher(): Promise<Address>; name(): Promise<string>; symbol(): Promise<string>; decimals(): Promise<number>; totalSupply(): Promise<bigint>; balanceOf(account: Address): Promise<bigint>; allowance(owner: Address, spender: Address): Promise<bigint>; mint(to: Address): Promise<MintResult>; burn(to: Address): Promise<BurnResult>; swap({ amount0Out, amount1Out, to, data }: SwapArgs): Promise<Hash>; sync(): Promise<Hash>; skim(to: Address): Promise<Hash>; approve(spender: Address, value: bigint): Promise<Hash>; transfer(to: Address, value: bigint): Promise<Hash>; transferFrom(from: Address, to: Address, value: bigint): Promise<Hash>; } type PonderPair = Pair; type AddLiquidityParams$2 = { tokenA: Address; tokenB: Address; amountADesired: bigint; amountBDesired: bigint; amountAMin: bigint; amountBMin: bigint; to: Address; deadline: bigint; }; type AddLiquidityETHParams = { token: Address; amountTokenDesired: bigint; amountTokenMin: bigint; amountETHMin: bigint; to: Address; deadline: bigint; }; type RemoveLiquidityParams$2 = { tokenA: Address; tokenB: Address; liquidity: bigint; amountAMin: bigint; amountBMin: bigint; to: Address; deadline: bigint; }; type RemoveLiquidityETHParams = { token: Address; liquidity: bigint; amountTokenMin: bigint; amountETHMin: bigint; to: Address; deadline: bigint; }; type SwapExactTokensForTokensParams$1 = { amountIn: bigint; amountOutMin: bigint; path: Address[]; to: Address; deadline: bigint; }; type SwapTokensForExactTokensParams$1 = { amountOut: bigint; amountInMax: bigint; path: Address[]; to: Address; deadline: bigint; }; declare class Router { readonly chainId: SupportedChainId; readonly address: Address; readonly chain: Chain; private readonly publicClient; private readonly walletClient?; constructor(chainId: SupportedChainId, publicClient: PublicClient, walletClient?: WalletClient); factory(): Promise<Address>; KKUB(): Promise<Address>; getAmountOut(amountIn: bigint, path: readonly `0x${string}`[]): Promise<readonly bigint[]>; getAmountIn(amountOut: bigint, path: readonly `0x${string}`[]): Promise<readonly bigint[]>; getAmountsOut(amountIn: bigint, path: Address[]): Promise<readonly bigint[]>; getAmountsIn(amountOut: bigint, path: Address[]): Promise<readonly bigint[]>; addLiquidity(params: AddLiquidityParams$2): Promise<Hash>; addLiquidityETH(params: AddLiquidityETHParams, value: bigint): Promise<Hash>; removeLiquidity(params: RemoveLiquidityParams$2): Promise<Hash>; removeLiquidityETH(params: RemoveLiquidityETHParams): Promise<Hash>; swapExactTokensForTokens(params: SwapExactTokensForTokensParams$1): Promise<Hash>; swapTokensForExactTokens(params: SwapTokensForExactTokensParams$1): Promise<Hash>; } type PonderRouter = Router; interface PoolInfo$1 { lpToken: Address; allocPoint: bigint; lastRewardTime: bigint; accPonderPerShare: bigint; totalStaked: bigint; totalWeightedShares: bigint; depositFeeBP: number; boostMultiplier: number; } interface UserInfo { amount: bigint; rewardDebt: bigint; ponderStaked: bigint; } interface AddPoolParams { allocPoint: bigint; lpToken: Address; depositFeeBP: number; boostMultiplier: number; withUpdate: boolean; } declare class MasterChef { readonly chainId: SupportedChainId; readonly address: Address; readonly chain: Chain; private readonly publicClient; private readonly walletClient?; constructor(chainId: SupportedChainId, publicClient: PublicClient, walletClient?: WalletClient); ponder(): Promise<Address>; factory(): Promise<Address>; ponderPerSecond(): Promise<bigint>; poolLength(): Promise<bigint>; poolInfo(pid: bigint): Promise<PoolInfo$1>; userInfo(pid: bigint, user: Address): Promise<UserInfo>; pendingPonder(pid: bigint, user: Address): Promise<bigint>; totalAllocPoint(): Promise<bigint>; startTime(): Promise<bigint>; owner(): Promise<Address>; add(params: AddPoolParams): Promise<Hash>; set(pid: bigint, allocPoint: bigint, withUpdate: boolean): Promise<Hash>; deposit(pid: bigint, amount: bigint): Promise<Hash>; withdraw(pid: bigint, amount: bigint): Promise<Hash>; emergencyWithdraw(pid: bigint): Promise<Hash>; boostStake(pid: bigint, amount: bigint): Promise<Hash>; boostUnstake(pid: bigint, amount: bigint): Promise<Hash>; getAllPools(): Promise<PoolInfo$1[]>; getUserInfoForPools(user: Address, pids: bigint[]): Promise<UserInfo[]>; } type PonderMasterChef = MasterChef; interface VestingInfo { total: bigint; claimed: bigint; available: bigint; start: bigint; end: bigint; } declare class LaunchToken { readonly chainId: SupportedChainId; readonly address: Address; readonly chain: Chain; private readonly publicClient; private readonly walletClient?; constructor(chainId: SupportedChainId, tokenAddress: Address, publicClient: PublicClient, walletClient?: WalletClient); name(): Promise<string>; symbol(): Promise<string>; decimals(): Promise<number>; totalSupply(): Promise<bigint>; balanceOf(account: Address): Promise<bigint>; allowance(owner: Address, spender: Address): Promise<bigint>; launcher(): Promise<Address>; factory(): Promise<Address>; router(): Promise<Address>; creator(): Promise<Address>; vestingStart(): Promise<bigint>; vestingEnd(): Promise<bigint>; totalVestedAmount(): Promise<bigint>; vestedClaimed(): Promise<bigint>; TOTAL_SUPPLY(): Promise<bigint>; getVestingInfo(): Promise<VestingInfo>; approve(spender: Address, value: bigint): Promise<Hash>; transfer(to: Address, value: bigint): Promise<Hash>; transferFrom(from: Address, to: Address, value: bigint): Promise<Hash>; setupVesting(creator: Address, amount: bigint): Promise<Hash>; enableTransfers(): Promise<Hash>; claimVestedTokens(): Promise<Hash>; } type PonderLaunchToken = LaunchToken; declare class Pondertoken { readonly chainId: SupportedChainId; readonly address: Address; readonly chain: Chain; private readonly publicClient; private readonly walletClient?; readonly MAXIMUM_SUPPLY: bigint; readonly MINTING_END: bigint; readonly TEAM_ALLOCATION: bigint; readonly VESTING_DURATION: bigint; constructor(chainId: SupportedChainId, tokenAddress: Address, publicClient: PublicClient, walletClient?: WalletClient); name(): Promise<string>; symbol(): Promise<string>; decimals(): Promise<number>; totalSupply(): Promise<bigint>; balanceOf(account: Address): Promise<bigint>; allowance(owner: Address, spender: Address): Promise<bigint>; launcher(): Promise<Address>; totalBurned(): Promise<bigint>; minter(): Promise<Address>; deploymentTime(): Promise<bigint>; owner(): Promise<Address>; pendingOwner(): Promise<Address>; teamTokensClaimed(): Promise<bigint>; approve(spender: Address, amount: bigint): Promise<Hash>; transfer(to: Address, amount: bigint): Promise<Hash>; transferFrom(from: Address, to: Address, amount: bigint): Promise<Hash>; burn(amount: bigint): Promise<Hash>; claimTeamTokens(): Promise<Hash>; } type PonderToken = Pondertoken; interface LaunchInfo { tokenAddress: Address; name: string; symbol: string; imageURI: string; totalRaised: bigint; launched: boolean; creator: Address; lpUnlockTime: bigint; tokenPrice: bigint; tokensForSale: bigint; tokensSold: bigint; ponderRequired: bigint; ponderCollected: bigint; } interface SaleInfo { tokenPrice: bigint; tokensForSale: bigint; tokensSold: bigint; totalRaised: bigint; launched: boolean; remainingTokens: bigint; } interface CreateLaunchParams$1 { name: string; symbol: string; imageURI: string; } interface PonderMetrics { lpAllocation: bigint; protocolLPAllocation: bigint; burnAmount: bigint; requiredAmount: bigint; } interface PoolInfo { memeKubPair: `0x${string}`; memePonderPair: `0x${string}`; hasSecondaryPool: boolean; } interface ContributionInfo { kubCollected: bigint; ponderCollected: bigint; ponderValueCollected: bigint; totalValue: bigint; } declare class FiveFiveFiveLauncher { readonly chainId: SupportedChainId; readonly address: Address; readonly chain: Chain; private readonly publicClient; private readonly walletClient?; readonly TARGET_RAISE: bigint; readonly TOTAL_SUPPLY: bigint; readonly LP_ALLOCATION = 10n; readonly CREATOR_ALLOCATION = 10n; readonly CONTRIBUTOR_ALLOCATION = 80n; readonly LP_LOCK_PERIOD: bigint; readonly PONDER_LP_ALLOCATION = 50n; readonly PONDER_PROTOCOL_LP = 30n; readonly PONDER_BURN = 20n; readonly BASIS_POINTS = 10000n; readonly KUB_TO_MEME_KUB_LP = 6000n; readonly KUB_TO_MEME_PONDER_LP = 2000n; readonly KUB_TO_PONDER_KUB_LP = 2000n; readonly PONDER_TO_BURN = 2000n; readonly PONDER_TO_MEME_PONDER = 8000n; readonly PRICE_STALENESS_THRESHOLD = 7200n; constructor(chainId: SupportedChainId, publicClient: PublicClient, walletClient?: WalletClient); factory(): Promise<Address>; router(): Promise<Address>; owner(): Promise<Address>; feeCollector(): Promise<Address>; launchCount(): Promise<bigint>; getLaunchInfo(launchId: bigint): Promise<LaunchInfo>; getPoolInfo(launchId: bigint): Promise<PoolInfo>; getContributionInfo(launchId: bigint): Promise<ContributionInfo>; getRemainingToRaise(launchId: bigint): Promise<[bigint, bigint]>; calculatePonderRequirements(): Promise<PonderMetrics>; createLaunch(params: CreateLaunchParams$1): Promise<Hash>; contributeKUB(launchId: bigint, amount: bigint): Promise<Hash>; contributePONDER(launchId: bigint, amount: bigint): Promise<Hash>; withdrawLP(launchId: bigint): Promise<Hash>; } type PonderLauncher = FiveFiveFiveLauncher; interface Observation { timestamp: number; price0Cumulative: bigint; price1Cumulative: bigint; } declare class PriceOracle { readonly chainId: SupportedChainId; readonly address: Address; readonly chain: Chain; private readonly publicClient; private readonly walletClient?; readonly PERIOD = 86400n; constructor(chainId: SupportedChainId, publicClient: PublicClient, walletClient?: WalletClient); factory(): Promise<Address>; observationLength(pair: Address): Promise<bigint>; observations(pair: Address, index: bigint): Promise<Observation>; consult(pair: Address, tokenIn: Address, amountIn: bigint, periodInSeconds: number): Promise<bigint>; update(pair: Address): Promise<Hash>; getAveragePrice(pair: Address, tokenIn: Address, amountIn: bigint, period?: number): Promise<{ amountOut: bigint; pricePerToken: number; }>; getLatestObservation(pair: Address): Promise<Observation | null>; getPriceHistory(pair: Address, fromIndex?: bigint, toIndex?: bigint): Promise<Observation[]>; getPriceChange(pair: Address, tokenIn: Address, period?: number): Promise<{ absoluteChange: number; percentageChange: number; }>; } type PonderPriceOracle = PriceOracle; declare class KKUBUnwrapper { readonly chainId: SupportedChainId; readonly address: Address; readonly chain: Chain; private readonly publicClient; private readonly walletClient?; constructor(chainId: SupportedChainId, publicClient: PublicClient, walletClient?: WalletClient); KKUB(): Promise<Address>; owner(): Promise<Address>; pendingOwner(): Promise<Address>; unwrapKKUB(amount: bigint, recipient: Address): Promise<Hash>; transferOwnership(newOwner: Address): Promise<Hash>; acceptOwnership(): Promise<Hash>; emergencyWithdraw(): Promise<Hash>; emergencyWithdrawTokens(token: Address): Promise<Hash>; } type PonderKKUBUnwrapper = KKUBUnwrapper; declare class Staking { readonly chainId: SupportedChainId; readonly address: Address; readonly chain: Chain; readonly abi: readonly [{ readonly type: "constructor"; readonly inputs: readonly [{ readonly name: "_ponder"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "_router"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "_factory"; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "DEPLOYMENT_TIME"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "FACTORY"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "contract IPonderFactory"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "PERMIT_TYPEHASH"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes32"; readonly internalType: "bytes32"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "PONDER"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "contract IERC20"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "PROJECT"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; readonly internalType: "string"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "ROUTER"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "contract IPonderRouter"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "acceptOwnership"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "acceptedKYCLevel"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "accumulatedFeesPerShare"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "activateOnlyKYCAddress"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "adminApprove"; readonly inputs: readonly [{ readonly name: "owner_"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "spender"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly outputs: readonly [{ readonly name: "success"; readonly type: "bool"; readonly internalType: "bool"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "adminProjectRouter"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "contract IAdminProjectRouter"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "adminTransfer"; readonly inputs: readonly [{ readonly name: "sender"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "recipient"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly outputs: readonly [{ readonly name: "success"; readonly type: "bool"; readonly internalType: "bool"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "allowance"; readonly inputs: readonly [{ readonly name: "owner_"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "spender"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "approve"; readonly inputs: readonly [{ readonly name: "spender"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly outputs: readonly [{ readonly name: "success"; readonly type: "bool"; readonly internalType: "bool"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "balanceOf"; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "claimFees"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "committee"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "decimals"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint8"; readonly internalType: "uint8"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "domainSeparator"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes32"; readonly internalType: "bytes32"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "enter"; readonly inputs: readonly [{ readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "recipient"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly [{ readonly name: "shares"; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "externalTransfer"; readonly inputs: readonly [{ readonly name: "sender"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "recipient"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly outputs: readonly [{ readonly name: "success"; readonly type: "bool"; readonly internalType: "bool"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "getAccumulatedFeesPerShare"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "getPendingFees"; readonly inputs: readonly [{ readonly name: "user"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "getPonderAmount"; readonly inputs: readonly [{ readonly name: "shares"; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "getSharesAmount"; readonly inputs: readonly [{ readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "internalTransfer"; readonly inputs: readonly [{ readonly name: "sender"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "recipient"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly outputs: readonly [{ readonly name: "success"; readonly type: "bool"; readonly internalType: "bool"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "isActivatedOnlyKYCAddress"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; readonly internalType: "bool"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "kyc"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "contract IKYCBitkubChain"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "lastRebaseTime"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "leave"; readonly inputs: readonly [{ readonly name: "shares"; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly outputs: readonly [{ readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "minimumFirstStake"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "pure"; }, { readonly type: "function"; readonly name: "name"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; readonly internalType: "string"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "nonces"; readonly inputs: readonly [{ readonly name: "owner_"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "owner"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "pause"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "paused"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; readonly internalType: "bool"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "pendingOwner"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "permit"; readonly inputs: readonly [{ readonly name: "owner_"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "spender"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "value"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "deadline"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "v"; readonly type: "uint8"; readonly internalType: "uint8"; }, { readonly name: "r"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "s"; readonly type: "bytes32"; readonly internalType: "bytes32"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "ponderPerShare"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "rebase"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "setAcceptedKYCLevel"; readonly inputs: readonly [{ readonly name: "_kycLevel"; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "setAdminProjectRouter"; readonly inputs: readonly [{ readonly name: "_adminProjectRouter"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "setCommittee"; readonly inputs: readonly [{ readonly name: "_committee"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "setKYC"; readonly inputs: readonly [{ readonly name: "_kyc"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "setTransferRouter"; readonly inputs: readonly [{ readonly name: "_transferRouter"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "stakingOwner"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "symbol"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; readonly internalType: "string"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "totalDepositedPonder"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "totalSupply"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "totalUnclaimedFees"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "transfer"; readonly inputs: readonly [{ readonly name: "recipient"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly outputs: readonly [{ readonly name: "success"; readonly type: "bool"; readonly internalType: "bool"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "transferFrom"; readonly inputs: readonly [{ readonly name: "sender"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "recipient"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly outputs: readonly [{ readonly name: "success"; readonly type: "bool"; readonly internalType: "bool"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "transferOwnership"; readonly inputs: readonly [{ readonly name: "newOwner"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "transferRouter"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "unpause"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "userFeeDebt"; readonly inputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "event"; readonly name: "AcceptedKYCLevelSet"; readonly inputs: readonly [{ readonly name: "caller"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "oldKYCLevel"; readonly type: "uint256"; readonly indexed: false; readonly internalType: "uint256"; }, { readonly name: "newKYCLevel"; readonly type: "uint256"; readonly indexed: false; readonly internalType: "uint256"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "ActivateOnlyKYCAddress"; readonly inputs: readonly [{ readonly name: "caller"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "AdminProjectRouterSet"; readonly inputs: readonly [{ readonly name: "caller"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "oldAddress"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "newAddress"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "Approval"; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "spender"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "value"; readonly type: "uint256"; readonly indexed: false; readonly internalType: "uint256"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "CommitteeSet"; readonly inputs: readonly [{ readonly name: "caller"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "oldAddress"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "newAddress"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "FeesClaimed"; readonly inputs: readonly [{ readonly name: "user"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "amount"; readonly type: "uint256"; readonly indexed: false; readonly internalType: "uint256"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "FeesDistributed"; readonly inputs: readonly [{ readonly name: "amount"; readonly type: "uint256"; readonly indexed: false; readonly internalType: "uint256"; }, { readonly name: "accumulatedFeesPerShare"; readonly type: "uint256"; readonly indexed: false; readonly internalType: "uint256"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "KYCBitkubChainSet"; readonly inputs: readonly [{ readonly name: "caller"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "oldAddress"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "newAddress"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "OwnershipTransferInitiated"; readonly inputs: readonly [{ readonly name: "currentOwner"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "pendingOwner"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "OwnershipTransferred"; readonly inputs: readonly [{ readonly name: "previousOwner"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "newOwner"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; rea