Static
Readonly
abi
abi: readonly [{
inputs: readonly [];
name: "ERC20Base__ApproveFromZeroAddress";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Base__ApproveToZeroAddress";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Base__BurnExceedsBalance";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Base__BurnFromZeroAddress";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Base__InsufficientAllowance";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Base__MintToZeroAddress";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Base__TransferExceedsBalance";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Base__TransferFromZeroAddress";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Base__TransferToZeroAddress";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Extended__ExcessiveAllowance";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Extended__InsufficientAllowance";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Permit__ExpiredDeadline";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Permit__InvalidSignature";
type: "error";
}, {
inputs: readonly [];
name: "OFT_InsufficientAllowance";
type: "error";
}, {
inputs: readonly [];
name: "PremiaStaking__CantTransfer";
type: "error";
}, {
inputs: readonly [];
name: "PremiaStaking__ExcessiveStakePeriod";
type: "error";
}, {
inputs: readonly [];
name: "PremiaStaking__InsufficientSwapOutput";
type: "error";
}, {
inputs: readonly [];
name: "PremiaStaking__NoPendingWithdrawal";
type: "error";
}, {
inputs: readonly [];
name: "PremiaStaking__NotEnoughLiquidity";
type: "error";
}, {
inputs: readonly [];
name: "PremiaStaking__PeriodTooShort";
type: "error";
}, {
inputs: readonly [];
name: "PremiaStaking__StakeLocked";
type: "error";
}, {
inputs: readonly [];
name: "PremiaStaking__StakeNotLocked";
type: "error";
}, {
inputs: readonly [];
name: "PremiaStaking__WithdrawalStillPending";
type: "error";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "owner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "spender";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "value";
type: "uint256";
}];
name: "Approval";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "user";
type: "address";
}, {
indexed: false;
internalType: "uint64";
name: "stakePeriod";
type: "uint64";
}, {
indexed: false;
internalType: "uint64";
name: "lockedUntil";
type: "uint64";
}];
name: "BridgeLock";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "user";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "EarlyUnstakeRewardCollected";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "user";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "Harvest";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint16";
name: "srcChainId";
type: "uint16";
}, {
indexed: true;
internalType: "bytes";
name: "srcAddress";
type: "bytes";
}, {
indexed: true;
internalType: "address";
name: "toAddress";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "ReceiveFromChain";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "RewardsAdded";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "sender";
type: "address";
}, {
indexed: true;
internalType: "uint16";
name: "dstChainId";
type: "uint16";
}, {
indexed: true;
internalType: "bytes";
name: "toAddress";
type: "bytes";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "SendToChain";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "bool";
name: "_useCustomAdapterParams";
type: "bool";
}];
name: "SetUseCustomAdapterParams";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "user";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
indexed: false;
internalType: "uint64";
name: "stakePeriod";
type: "uint64";
}, {
indexed: false;
internalType: "uint64";
name: "lockedUntil";
type: "uint64";
}];
name: "Stake";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "from";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "to";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "value";
type: "uint256";
}];
name: "Transfer";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "user";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "fee";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "startDate";
type: "uint256";
}];
name: "Unstake";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "user";
type: "address";
}, {
indexed: false;
internalType: "uint64";
name: "oldStakePeriod";
type: "uint64";
}, {
indexed: false;
internalType: "uint64";
name: "newStakePeriod";
type: "uint64";
}];
name: "UpdateLock";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "user";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "Withdraw";
type: "event";
}, {
inputs: readonly [];
name: "DOMAIN_SEPARATOR";
outputs: readonly [{
internalType: "bytes32";
name: "domainSeparator";
type: "bytes32";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "addRewards";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "holder";
type: "address";
}, {
internalType: "address";
name: "spender";
type: "address";
}];
name: "allowance";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "spender";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "approve";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "balanceOf";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "circulatingSupply";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "decimals";
outputs: readonly [{
internalType: "uint8";
name: "";
type: "uint8";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "spender";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "decreaseAllowance";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "earlyUnstake";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint16";
name: "dstChainId";
type: "uint16";
}, {
internalType: "bytes";
name: "toAddress";
type: "bytes";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "bool";
name: "useZro";
type: "bool";
}, {
internalType: "bytes";
name: "adapterParams";
type: "bytes";
}];
name: "estimateSendFee";
outputs: readonly [{
internalType: "uint256";
name: "nativeFee";
type: "uint256";
}, {
internalType: "uint256";
name: "zroFee";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getAvailablePremiaAmount";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getAvailableRewards";
outputs: readonly [{
internalType: "uint256";
name: "rewards";
type: "uint256";
}, {
internalType: "uint256";
name: "unstakeRewards";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "user";
type: "address";
}];
name: "getDiscount";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "user";
type: "address";
}];
name: "getEarlyUnstakeFee";
outputs: readonly [{
internalType: "uint256";
name: "feePercentage";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getPendingRewards";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "user";
type: "address";
}];
name: "getPendingUserRewards";
outputs: readonly [{
internalType: "uint256";
name: "reward";
type: "uint256";
}, {
internalType: "uint256";
name: "unstakeReward";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "user";
type: "address";
}];
name: "getPendingWithdrawal";
outputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "uint256";
name: "startDate";
type: "uint256";
}, {
internalType: "uint256";
name: "unlockDate";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getRewardToken";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getStakeLevels";
outputs: readonly [{
components: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "uint256";
name: "discount";
type: "uint256";
}];
internalType: "struct IPremiaStaking.StakeLevel[]";
name: "";
type: "tuple[]";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "period";
type: "uint256";
}];
name: "getStakePeriodMultiplier";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "getTotalPower";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "user";
type: "address";
}];
name: "getUserInfo";
outputs: readonly [{
components: readonly [{
internalType: "uint256";
name: "reward";
type: "uint256";
}, {
internalType: "uint256";
name: "rewardDebt";
type: "uint256";
}, {
internalType: "uint256";
name: "unstakeRewardDebt";
type: "uint256";
}, {
internalType: "uint64";
name: "stakePeriod";
type: "uint64";
}, {
internalType: "uint64";
name: "lockedUntil";
type: "uint64";
}];
internalType: "struct PremiaStakingStorage.UserInfo";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "user";
type: "address";
}];
name: "getUserPower";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "harvest";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
internalType: "uint256";
name: "amountOutMin";
type: "uint256";
}, {
internalType: "address";
name: "callee";
type: "address";
}, {
internalType: "address";
name: "allowanceTarget";
type: "address";
}, {
internalType: "bytes";
name: "data";
type: "bytes";
}, {
internalType: "address";
name: "refundAddress";
type: "address";
}];
internalType: "struct IPremiaStaking.SwapArgs";
name: "s";
type: "tuple";
}, {
internalType: "uint64";
name: "stakePeriod";
type: "uint64";
}];
name: "harvestAndStake";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "spender";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "increaseAllowance";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "name";
outputs: readonly [{
internalType: "string";
name: "";
type: "string";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}];
name: "nonces";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}, {
internalType: "address";
name: "spender";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "uint256";
name: "deadline";
type: "uint256";
}, {
internalType: "uint8";
name: "v";
type: "uint8";
}, {
internalType: "bytes32";
name: "r";
type: "bytes32";
}, {
internalType: "bytes32";
name: "s";
type: "bytes32";
}];
name: "permit";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "from";
type: "address";
}, {
internalType: "uint16";
name: "dstChainId";
type: "uint16";
}, {
internalType: "bytes";
name: "toAddress";
type: "bytes";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "address payable";
name: "refundAddress";
type: "address";
}, {
internalType: "address";
name: "zroPaymentAddress";
type: "address";
}, {
internalType: "bytes";
name: "adapterParams";
type: "bytes";
}];
name: "sendFrom";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "uint64";
name: "period";
type: "uint64";
}];
name: "stake";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "uint64";
name: "period";
type: "uint64";
}, {
internalType: "uint256";
name: "deadline";
type: "uint256";
}, {
internalType: "uint8";
name: "v";
type: "uint8";
}, {
internalType: "bytes32";
name: "r";
type: "bytes32";
}, {
internalType: "bytes32";
name: "s";
type: "bytes32";
}];
name: "stakeWithPermit";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "startWithdraw";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes4";
name: "interfaceId";
type: "bytes4";
}];
name: "supportsInterface";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "symbol";
outputs: readonly [{
internalType: "string";
name: "";
type: "string";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "totalSupply";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "recipient";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "transfer";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "holder";
type: "address";
}, {
internalType: "address";
name: "recipient";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "transferFrom";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint64";
name: "period";
type: "uint64";
}];
name: "updateLock";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "withdraw";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}] = _abi