multipool-staking-sdk
Version:
This is an sdk for solmask staking pool program
436 lines (435 loc) • 12.6 kB
JSON
{
"version": "0.1.0",
"name": "staking",
"instructions": [
{
"name": "initLockup",
"accounts": [
{
"name": "creator",
"isMut": true,
"isSigner": true
},
{
"name": "lockup",
"isMut": true,
"isSigner": false
},
{
"name": "stakeVault",
"isMut": true,
"isSigner": false
},
{
"name": "stakeToken",
"isMut": false,
"isSigner": false
},
{
"name": "rewardToken",
"isMut": false,
"isSigner": false
},
{
"name": "stakeVaultTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "stakeVaultRewardTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "associatedTokenProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "params",
"type": {
"defined": "InitLockupParams"
}
}
]
},
{
"name": "stake",
"accounts": [
{
"name": "staker",
"isMut": true,
"isSigner": true
},
{
"name": "lockup",
"isMut": true,
"isSigner": false
},
{
"name": "stakePda",
"isMut": true,
"isSigner": false
},
{
"name": "stakeToken",
"isMut": false,
"isSigner": false
},
{
"name": "stakerTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "stakeVault",
"isMut": true,
"isSigner": false
},
{
"name": "stakeVaultTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "associatedTokenProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "params",
"type": {
"defined": "StakeParams"
}
}
]
},
{
"name": "unStake",
"accounts": [
{
"name": "staker",
"isMut": true,
"isSigner": true
},
{
"name": "lockup",
"isMut": true,
"isSigner": false
},
{
"name": "stakePda",
"isMut": true,
"isSigner": false
},
{
"name": "stakeToken",
"isMut": false,
"isSigner": false
},
{
"name": "stakerTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "stakeVault",
"isMut": true,
"isSigner": false
},
{
"name": "stakeVaultTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "associatedTokenProgram",
"isMut": false,
"isSigner": false
}
],
"args": []
},
{
"name": "claimRewardToken",
"accounts": [
{
"name": "staker",
"isMut": true,
"isSigner": true
},
{
"name": "lockup",
"isMut": true,
"isSigner": false
},
{
"name": "stakePda",
"isMut": true,
"isSigner": false
},
{
"name": "rewardToken",
"isMut": false,
"isSigner": false
},
{
"name": "stakeToken",
"isMut": false,
"isSigner": false
},
{
"name": "stakerRewardTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "stakeVault",
"isMut": true,
"isSigner": false
},
{
"name": "stakeVaultRewardTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "associatedTokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
}
],
"args": []
}
],
"accounts": [
{
"name": "LockupInfo",
"type": {
"kind": "struct",
"fields": [
{
"name": "name",
"type": "string"
},
{
"name": "creator",
"type": "publicKey"
},
{
"name": "lockupCreatedTime",
"type": "i64"
},
{
"name": "stakingStartTime",
"type": "i64"
},
{
"name": "stakingEndTime",
"type": "i64"
},
{
"name": "lockTimespan",
"type": "i64"
},
{
"name": "globalStaked",
"type": "u64"
},
{
"name": "totalAllocationReward",
"type": "u64"
},
{
"name": "stakedToken",
"type": "publicKey"
},
{
"name": "rewardToken",
"type": "publicKey"
}
]
}
},
{
"name": "StakeInfo",
"type": {
"kind": "struct",
"fields": [
{
"name": "staker",
"type": "publicKey"
},
{
"name": "createdTime",
"type": "i64"
},
{
"name": "stakedAmount",
"type": "u64"
},
{
"name": "rewardAmount",
"type": "u64"
},
{
"name": "rewardClaimed",
"type": "bool"
},
{
"name": "stakeClaimed",
"type": "bool"
}
]
}
}
],
"types": [
{
"name": "InitLockupParams",
"type": {
"kind": "struct",
"fields": [
{
"name": "name",
"type": "string"
},
{
"name": "lockTimespan",
"type": "i64"
},
{
"name": "totalAllocationReward",
"type": "u64"
},
{
"name": "stakingEndTime",
"type": "i64"
},
{
"name": "stakingStartTime",
"type": "i64"
}
]
}
},
{
"name": "StakeParams",
"type": {
"kind": "struct",
"fields": [
{
"name": "amount",
"type": "u64"
}
]
}
}
],
"errors": [
{
"code": 6000,
"name": "InvalidStakeToken",
"msg": "The provided token mint is not usable for this operation"
},
{
"code": 6001,
"name": "InvalidStakeClaimTime",
"msg": "You cannot claim your stake yet"
},
{
"code": 6002,
"name": "InvalidStaker",
"msg": "Invalid Staker"
},
{
"code": 6003,
"name": "StakeAlreadyClaimed",
"msg": "Already claimed"
},
{
"code": 6004,
"name": "RewardIsZero",
"msg": "Reward is zero"
},
{
"code": 6005,
"name": "InvalidStakeAmount",
"msg": "Invalid stake amount"
},
{
"code": 6006,
"name": "InvalidRewardToken",
"msg": "Invalid reward token"
},
{
"code": 6007,
"name": "InvalidStakePeriod",
"msg": "Invalid stake period"
},
{
"code": 6008,
"name": "InvalidUnstakeTime",
"msg": "Invalid unstake time"
},
{
"code": 6009,
"name": "StakeRewardNotClaimable",
"msg": "Stake reward not claimable yet"
},
{
"code": 6010,
"name": "StakeNotClaimable",
"msg": "Stake not claimable yet"
},
{
"code": 6011,
"name": "RewardAlreadyClaimed",
"msg": "Reward already claimed"
}
]
}