Static
Readonly
abi
abi: readonly [{
inputs: readonly [];
stateMutability: "nonpayable";
type: "constructor";
}, {
inputs: readonly [];
name: "ArgumentsLengthMismatch";
type: "error";
}, {
inputs: readonly [];
name: "BNBTransferToUserFailed";
type: "error";
}, {
inputs: readonly [];
name: "CantBeMoreThan1e18";
type: "error";
}, {
inputs: readonly [];
name: "CantClaimBeforeDeadline";
type: "error";
}, {
inputs: readonly [];
name: "CantSetMoreThan30PercentFee";
type: "error";
}, {
inputs: readonly [];
name: "ClaimAllFailed";
type: "error";
}, {
inputs: readonly [];
name: "CooldownPeriodOutOfRange";
type: "error";
}, {
inputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "DepositsDelegationFailed";
type: "error";
}, {
inputs: readonly [{
internalType: "uint256";
name: "dust";
type: "uint256";
}];
name: "DustNotAllowed";
type: "error";
}, {
inputs: readonly [{
internalType: "uint256";
name: "index";
type: "uint256";
}];
name: "IndexOutOfBounds";
type: "error";
}, {
inputs: readonly [];
name: "InsufficientClaimReserve";
type: "error";
}, {
inputs: readonly [];
name: "InsufficientFundsToSatisfyClaim";
type: "error";
}, {
inputs: readonly [{
internalType: "string";
name: "tag";
type: "string";
}, {
internalType: "uint256";
name: "param";
type: "uint256";
}];
name: "InvalidParam";
type: "error";
}, {
inputs: readonly [{
internalType: "uint256";
name: "restakes";
type: "uint256";
}];
name: "InvalidRestakeAmount";
type: "error";
}, {
inputs: readonly [{
internalType: "string";
name: "tag";
type: "string";
}, {
internalType: "uint256";
name: "expected";
type: "uint256";
}, {
internalType: "uint256";
name: "got";
type: "uint256";
}];
name: "LessThanMinimum";
type: "error";
}, {
inputs: readonly [];
name: "MustBeGreaterThanZero";
type: "error";
}, {
inputs: readonly [{
internalType: "string";
name: "tag";
type: "string";
}];
name: "NoRewardsAccured";
type: "error";
}, {
inputs: readonly [];
name: "PausableNotPaused";
type: "error";
}, {
inputs: readonly [];
name: "PausablePaused";
type: "error";
}, {
inputs: readonly [];
name: "ReentrancyGuardReentrantCall";
type: "error";
}, {
inputs: readonly [];
name: "SelfRedelegationNotAllowed";
type: "error";
}, {
inputs: readonly [{
internalType: "uint256";
name: "from";
type: "uint256";
}, {
internalType: "uint256";
name: "to";
type: "uint256";
}];
name: "ToIndexMustBeGreaterThanFromIndex";
type: "error";
}, {
inputs: readonly [];
name: "TokenMintingToSelfNotAllowed";
type: "error";
}, {
inputs: readonly [];
name: "TokenTransferToSelfNotAllowed";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "to";
type: "address";
}];
name: "UnexpectedlyReceivedTokensForSomeoneElse";
type: "error";
}, {
inputs: readonly [];
name: "UnknownSender";
type: "error";
}, {
inputs: readonly [];
name: "ValidatorAlreadyActive";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "validator";
type: "address";
}];
name: "ValidatorAlreadyExists";
type: "error";
}, {
inputs: readonly [];
name: "ValidatorCreationFailed";
type: "error";
}, {
inputs: readonly [];
name: "ValidatorDoesNotExist";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "operator";
type: "address";
}];
name: "ValidatorInactive";
type: "error";
}, {
inputs: readonly [];
name: "ZeroAddress";
type: "error";
}, {
inputs: readonly [{
internalType: "string";
name: "tag";
type: "string";
}, {
internalType: "address";
name: "account";
type: "address";
}];
name: "ZeroAddress";
type: "error";
}, {
inputs: readonly [];
name: "rateSyncNotAllowed";
type: "error";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "to";
type: "address";
}, {
indexed: true;
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "BNBWithdrawn";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "user";
type: "address";
}, {
components: readonly [{
internalType: "uint256";
name: "weiToReturn";
type: "uint256";
}, {
internalType: "uint256";
name: "createdAt";
type: "uint256";
}];
indexed: true;
internalType: "struct StakePool.ClaimRequest";
name: "req";
type: "tuple";
}, {
indexed: true;
internalType: "uint256";
name: "timestamp";
type: "uint256";
}];
name: "Claim";
type: "event";
}, {
anonymous: false;
inputs: readonly [];
name: "ConfigUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "user";
type: "address";
}, {
indexed: true;
internalType: "uint256";
name: "bnbAmount";
type: "uint256";
}, {
indexed: true;
internalType: "uint256";
name: "poolTokenAmount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "timestamp";
type: "uint256";
}];
name: "Deposit";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "string";
name: "tag";
type: "string";
}, {
indexed: true;
internalType: "uint256";
name: "bnbEarnings";
type: "uint256";
}, {
indexed: true;
internalType: "uint256";
name: "feeTokens";
type: "uint256";
}];
name: "EpochUpdate";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint8";
name: "version";
type: "uint8";
}];
name: "Initialized";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "shortCircuitAmount";
type: "uint256";
}];
name: "InitiateDelegation_ShortCircuit";
type: "event";
}, {
anonymous: false;
inputs: readonly [];
name: "InitiateDelegation_Success";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "transferAmount";
type: "uint256";
}];
name: "InitiateDelegation_Transfered";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "account";
type: "address";
}];
name: "Paused";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "rebalancedAmount";
type: "uint256";
}];
name: "Rebalancing_Success";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "srcValidator";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "dstValidator";
type: "address";
}, {
indexed: true;
internalType: "uint256";
name: "restakes";
type: "uint256";
}];
name: "Redelegation_Success";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "bytes32";
name: "role";
type: "bytes32";
}, {
indexed: true;
internalType: "bytes32";
name: "previousAdminRole";
type: "bytes32";
}, {
indexed: true;
internalType: "bytes32";
name: "newAdminRole";
type: "bytes32";
}];
name: "RoleAdminChanged";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "bytes32";
name: "role";
type: "bytes32";
}, {
indexed: true;
internalType: "address";
name: "account";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "sender";
type: "address";
}];
name: "RoleGranted";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "bytes32";
name: "role";
type: "bytes32";
}, {
indexed: true;
internalType: "address";
name: "account";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "sender";
type: "address";
}];
name: "RoleRevoked";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "unbondedAmount";
type: "uint256";
}];
name: "UnbondingFinished";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "bnbUnbonding";
type: "uint256";
}];
name: "UnbondingInitiated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "account";
type: "address";
}];
name: "Unpaused";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "operator";
type: "address";
}, {
indexed: true;
internalType: "uint256";
name: "position";
type: "uint256";
}];
name: "ValidatorCreated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "user";
type: "address";
}, {
indexed: true;
internalType: "uint256";
name: "poolTokenAmount";
type: "uint256";
}, {
indexed: true;
internalType: "uint256";
name: "bnbAmount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "timestamp";
type: "uint256";
}];
name: "Withdraw";
type: "event";
}, {
inputs: readonly [];
name: "BOT_ROLE";
outputs: readonly [{
internalType: "bytes32";
name: "";
type: "bytes32";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "DEFAULT_ADMIN_ROLE";
outputs: readonly [{
internalType: "bytes32";
name: "";
type: "bytes32";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "addressStore";
outputs: readonly [{
internalType: "contract IAddressStore";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "bnbToUnbond";
outputs: readonly [{
internalType: "int256";
name: "";
type: "int256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "bnbUnbonding";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "index";
type: "uint256";
}];
name: "claim";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "claimAll";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "";
type: "address";
}, {
internalType: "uint256";
name: "";
type: "uint256";
}];
name: "claimReqs";
outputs: readonly [{
internalType: "uint256";
name: "weiToReturn";
type: "uint256";
}, {
internalType: "uint256";
name: "createdAt";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "claimReserve";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "config";
outputs: readonly [{
internalType: "address";
name: "bcStakingWallet_deprecated";
type: "address";
}, {
internalType: "uint256";
name: "minDelegationAmount";
type: "uint256";
}, {
internalType: "uint256";
name: "transferOutTimeout_deprecated";
type: "uint256";
}, {
internalType: "uint256";
name: "minBNBDeposit";
type: "uint256";
}, {
internalType: "uint256";
name: "minTokenWithdrawal";
type: "uint256";
}, {
internalType: "uint256";
name: "cooldownPeriod";
type: "uint256";
}, {
components: readonly [{
internalType: "uint256";
name: "reward";
type: "uint256";
}, {
internalType: "uint256";
name: "deposit";
type: "uint256";
}, {
internalType: "uint256";
name: "withdraw";
type: "uint256";
}];
internalType: "struct FeeDistribution.Data";
name: "fee";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "operator_";
type: "address";
}];
name: "createValidator";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "deposit";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "operator_";
type: "address";
}, {
internalType: "enum ValidatorSet.Status";
name: "status_";
type: "uint8";
}];
name: "disableValidator";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "operator_";
type: "address";
}];
name: "enableValidator";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "epochUpdate";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "exchangeRate";
outputs: readonly [{
internalType: "uint256";
name: "totalWei";
type: "uint256";
}, {
internalType: "uint256";
name: "poolTokenSupply";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "user";
type: "address";
}];
name: "getClaimRequestCount";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getDeposits";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "user";
type: "address";
}, {
internalType: "uint256";
name: "from";
type: "uint256";
}, {
internalType: "uint256";
name: "to";
type: "uint256";
}];
name: "getPaginatedClaimRequests";
outputs: readonly [{
components: readonly [{
internalType: "uint256";
name: "weiToReturn";
type: "uint256";
}, {
internalType: "uint256";
name: "createdAt";
type: "uint256";
}];
internalType: "struct StakePool.ClaimRequest[]";
name: "";
type: "tuple[]";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "role";
type: "bytes32";
}];
name: "getRoleAdmin";
outputs: readonly [{
internalType: "bytes32";
name: "";
type: "bytes32";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "role";
type: "bytes32";
}, {
internalType: "uint256";
name: "index";
type: "uint256";
}];
name: "getRoleMember";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "role";
type: "bytes32";
}];
name: "getRoleMemberCount";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getTotalValidators";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "operator";
type: "address";
}];
name: "getValidator";
outputs: readonly [{
components: readonly [{
internalType: "address";
name: "operator";
type: "address";
}, {
internalType: "address";
name: "stCred";
type: "address";
}, {
internalType: "enum ValidatorSet.Status";
name: "status";
type: "uint8";
}, {
internalType: "uint256[5]";
name: "__reservedSlots";
type: "uint256[5]";
}, {
components: readonly [{
internalType: "uint256";
name: "stakes";
type: "uint256";
}, {
internalType: "uint256[5]";
name: "__reservedSlots";
type: "uint256[5]";
}];
internalType: "struct ValidatorSet.DelegationInfo";
name: "delegation";
type: "tuple";
}];
internalType: "struct ValidatorSet.Info";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getValidators";
outputs: readonly [{
components: readonly [{
internalType: "address";
name: "operator";
type: "address";
}, {
internalType: "address";
name: "stCred";
type: "address";
}, {
internalType: "enum ValidatorSet.Status";
name: "status";
type: "uint8";
}, {
internalType: "uint256[5]";
name: "__reservedSlots";
type: "uint256[5]";
}, {
components: readonly [{
internalType: "uint256";
name: "stakes";
type: "uint256";
}, {
internalType: "uint256[5]";
name: "__reservedSlots";
type: "uint256[5]";
}];
internalType: "struct ValidatorSet.DelegationInfo";
name: "delegation";
type: "tuple";
}];
internalType: "struct ValidatorSet.Info[]";
name: "";
type: "tuple[]";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "role";
type: "bytes32";
}, {
internalType: "address";
name: "account";
type: "address";
}];
name: "grantRole";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "role";
type: "bytes32";
}, {
internalType: "address";
name: "account";
type: "address";
}];
name: "hasRole";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "contract IAddressStore";
name: "addressStore_";
type: "address";
}, {
components: readonly [{
internalType: "address";
name: "bcStakingWallet_deprecated";
type: "address";
}, {
internalType: "uint256";
name: "minDelegationAmount";
type: "uint256";
}, {
internalType: "uint256";
name: "transferOutTimeout_deprecated";
type: "uint256";
}, {
internalType: "uint256";
name: "minBNBDeposit";
type: "uint256";
}, {
internalType: "uint256";
name: "minTokenWithdrawal";
type: "uint256";
}, {
internalType: "uint256";
name: "cooldownPeriod";
type: "uint256";
}, {
components: readonly [{
internalType: "uint256";
name: "reward";
type: "uint256";
}, {
internalType: "uint256";
name: "deposit";
type: "uint256";
}, {
internalType: "uint256";
name: "withdraw";
type: "uint256";
}];
internalType: "struct FeeDistribution.Data";
name: "fee";
type: "tuple";
}];
internalType: "struct Config.Data";
name: "config_";
type: "tuple";
}];
name: "initialize";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address[]";
name: "operators_";
type: "address[]";
}, {
internalType: "uint256[]";
name: "bnbAmounts_";
type: "uint256[]";
}];
name: "initiateDelegation";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "srcOperator_";
type: "address";
}, {
internalType: "address";
name: "dstOperator_";
type: "address";
}, {
internalType: "uint256";
name: "srcRestakes_";
type: "uint256";
}];
name: "initiateRedelegation";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "pause";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "paused";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "role";
type: "bytes32";
}, {
internalType: "address";
name: "account";
type: "address";
}];
name: "renounceRole";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes32";
name: "role";
type: "bytes32";
}, {
internalType: "address";
name: "account";
type: "address";
}];
name: "revokeRole";
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 [{
internalType: "address";
name: "";
type: "address";
}, {
internalType: "address";
name: "from";
type: "address";
}, {
internalType: "address";
name: "to";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "bytes";
name: "";
type: "bytes";
}, {
internalType: "bytes";
name: "";
type: "bytes";
}];
name: "tokensReceived";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "triggerRebalance";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "unbondingFinished";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address[]";
name: "operators_";
type: "address[]";
}, {
internalType: "uint256[]";
name: "bnbUnbondValues_";
type: "uint256[]";
}];
name: "unbondingInitiated";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "unpause";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
internalType: "address";
name: "bcStakingWallet_deprecated";
type: "address";
}, {
internalType: "uint256";
name: "minDelegationAmount";
type: "uint256";
}, {
internalType: "uint256";
name: "transferOutTimeout_deprecated";
type: "uint256";
}, {
internalType: "uint256";
name: "minBNBDeposit";
type: "uint256";
}, {
internalType: "uint256";
name: "minTokenWithdrawal";
type: "uint256";
}, {
internalType: "uint256";
name: "cooldownPeriod";
type: "uint256";
}, {
components: readonly [{
internalType: "uint256";
name: "reward";
type: "uint256";
}, {
internalType: "uint256";
name: "deposit";
type: "uint256";
}, {
internalType: "uint256";
name: "withdraw";
type: "uint256";
}];
internalType: "struct FeeDistribution.Data";
name: "fee";
type: "tuple";
}];
internalType: "struct Config.Data";
name: "config_";
type: "tuple";
}];
name: "updateConfig";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address payable";
name: "to";
type: "address";
}];
name: "withdrawBNB";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
stateMutability: "payable";
type: "receive";
}] = _abi