multipool-staking-sdk
Version:
This is an sdk for solmask staking pool program
437 lines (436 loc) • 12.3 kB
TypeScript
export type Staking = {
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";
}
];
};
export declare const IDL: Staking;