@ponderfinance/sdk
Version:
SDK for interacting with Ponder DEX and 55555 Launcher
1,491 lines (1,480 loc) • 106 kB
text/typescript
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