@soma-finance/core-contracts
Version:
SOMA Finance core contracts
1,136 lines (1,135 loc) • 24.9 kB
JSON
{
"_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": {}
}