UNPKG

@soma-finance/core-contracts

Version:

SOMA Finance core contracts

1,136 lines (1,135 loc) 24.9 kB
{ "_format": "hh-sol-artifact-1", "contractName": "ISomaStaking", "sourceName": "contracts/soma/SomaStaking/ISomaStaking.sol", "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "AdminClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "Claimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "fee", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "ClaimedImmediate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "RequestCancelled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "enum ISomaStaking.RequestType", "name": "requestType", "type": "uint8" } ], "name": "RequestCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "RequestFulfilled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RewardTokenAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256[]", "name": "seizedRewards", "type": "uint256[]" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "Seized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "Staked", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "uint64", "name": "unstakeDuration", "type": "uint64" }, { "internalType": "uint64", "name": "claimDuration", "type": "uint64" }, { "internalType": "uint16", "name": "earlyUnstakeFee", "type": "uint16" }, { "internalType": "uint16", "name": "earlyClaimFee", "type": "uint16" } ], "indexed": false, "internalType": "struct ISomaStaking.StakingConfig", "name": "prevConfig", "type": "tuple" }, { "components": [ { "internalType": "uint64", "name": "unstakeDuration", "type": "uint64" }, { "internalType": "uint64", "name": "claimDuration", "type": "uint64" }, { "internalType": "uint16", "name": "earlyUnstakeFee", "type": "uint16" }, { "internalType": "uint16", "name": "earlyClaimFee", "type": "uint16" } ], "indexed": false, "internalType": "struct ISomaStaking.StakingConfig", "name": "newConfig", "type": "tuple" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "StakingConfigUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "rewardToken", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "startDate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "endDate", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "StrategyCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "Unstaked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "fee", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "UnstakedImmediate", "type": "event" }, { "inputs": [], "name": "GLOBAL_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "GLOBAL_SEIZE_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "LOCAL_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "LOCAL_SEIZE_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_asset", "type": "address" } ], "name": "addRewardToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_asset", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" } ], "name": "adminClaim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_asset", "type": "address" } ], "name": "adminClaimable", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_assets", "type": "address[]" }, { "internalType": "uint256[][]", "name": "_ids", "type": "uint256[][]" } ], "name": "cancelClaimRequests", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_ids", "type": "uint256[]" } ], "name": "cancelUnstakeRequests", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_assets", "type": "address[]" }, { "internalType": "uint256[][]", "name": "_ids", "type": "uint256[][]" } ], "name": "claim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_assets", "type": "address[]" }, { "internalType": "uint256[]", "name": "_amounts", "type": "uint256[]" } ], "name": "claimImmediate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "address", "name": "_asset", "type": "address" }, { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "claimRequest", "outputs": [ { "components": [ { "internalType": "bytes8", "name": "hash", "type": "bytes8" }, { "internalType": "uint64", "name": "timestamp", "type": "uint64" }, { "internalType": "uint128", "name": "amount", "type": "uint128" } ], "internalType": "struct ISomaStaking.Request", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "address", "name": "_asset", "type": "address" } ], "name": "claimable", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "config", "outputs": [ { "components": [ { "internalType": "uint64", "name": "unstakeDuration", "type": "uint64" }, { "internalType": "uint64", "name": "claimDuration", "type": "uint64" }, { "internalType": "uint16", "name": "earlyUnstakeFee", "type": "uint16" }, { "internalType": "uint16", "name": "earlyClaimFee", "type": "uint16" } ], "internalType": "struct ISomaStaking.StakingConfig", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_assets", "type": "address[]" } ], "name": "createClaimRequests", "outputs": [ { "internalType": "uint256[]", "name": "_ids", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_startDate", "type": "uint256" }, { "internalType": "uint256", "name": "_endDate", "type": "uint256" }, { "internalType": "address", "name": "_rewardToken", "type": "address" }, { "internalType": "uint256", "name": "_rewardAmount", "type": "uint256" } ], "name": "createStrategy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "createUnstakeRequest", "outputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "currentTPS", "outputs": [ { "internalType": "uint256", "name": "tps_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "address", "name": "_asset", "type": "address" } ], "name": "debt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "stakingToken_", "type": "address" }, { "internalType": "address[]", "name": "rewardTokens_", "type": "address[]" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "pendingStrategy", "outputs": [ { "components": [ { "internalType": "uint48", "name": "startDate", "type": "uint48" }, { "internalType": "uint48", "name": "endDate", "type": "uint48" }, { "internalType": "address", "name": "rewardToken", "type": "address" }, { "internalType": "uint128", "name": "rewardsLocked", "type": "uint128" }, { "internalType": "uint128", "name": "rewardsUnlocked", "type": "uint128" } ], "internalType": "struct ISomaStaking.Strategy", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "rewardToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" } ], "name": "seize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "stake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "stakeOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "stakingToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "strategy", "outputs": [ { "components": [ { "internalType": "uint48", "name": "startDate", "type": "uint48" }, { "internalType": "uint48", "name": "endDate", "type": "uint48" }, { "internalType": "address", "name": "rewardToken", "type": "address" }, { "internalType": "uint128", "name": "rewardsLocked", "type": "uint128" }, { "internalType": "uint128", "name": "rewardsUnlocked", "type": "uint128" } ], "internalType": "struct ISomaStaking.Strategy", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalPendingStrategies", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalPendingUnstake", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalRewardTokens", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalStaked", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalStrategies", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_asset", "type": "address" } ], "name": "tps", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_ids", "type": "uint256[]" } ], "name": "unstake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "unstakeImmediate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "unstakeRequest", "outputs": [ { "components": [ { "internalType": "bytes8", "name": "hash", "type": "bytes8" }, { "internalType": "uint64", "name": "timestamp", "type": "uint64" }, { "internalType": "uint128", "name": "amount", "type": "uint128" } ], "internalType": "struct ISomaStaking.Request", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "_unstakeDuration", "type": "uint64" }, { "internalType": "uint64", "name": "_claimDuration", "type": "uint64" }, { "internalType": "uint16", "name": "_earlyUnstakeFee", "type": "uint16" }, { "internalType": "uint16", "name": "_earlyClaimFee", "type": "uint16" } ], "name": "updateConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x", "deployedBytecode": "0x", "linkReferences": {}, "deployedLinkReferences": {} }