Multiple Factor Rewards Staking program for WildWestVerse NFT collections
- Install
node
andyarn
- Install
ts-node
as global command - Confirm the solana wallet preparation:
/home/fury/.config/solana/id.json
in test case
- Main script source for all functionality is here:
/cli/script.ts
- Program account types are declared here:
/cli/types.ts
- Idl to make the JS binding easy is here:
/cli/staking_program.json
Able to test the script functions working in this way.
- Change commands properly in the main functions of the
script.ts
file to call the other functions - Confirm the
ANCHOR_WALLET
environment variable of thets-node
script inpackage.json
- Run
yarn ts-node
For the first time use, the Smart Contract Owner should initialize
the Smart Contract for global account allocation.
initProject
Recall initialize
function for update the Threshold values after change the constants properly
initProject
Maintain the Reward token($WWV) vault's balance
REWARD_TOKEN_MINT
is the reward token mint (for test).rewardVault
is the reward token account for owner. The owner should have the token'sMint Authority
or shouldFund
regularly.
This is current test value. Should be revised properly.
-
EPOCH
= 60 // A day -
REWARD_PER_DAY
= 100_000_000 // 0.1 $WWV According to the rank of NFTs, there reward amount will be changed automatically following the below logic. -
RANK /DAILY PRIZE
-
1500-2000 /1$WWV
-
1000-1499 /1.5$WWV
-
600-999 /2$WWV
-
300-599 /2.5$WWV
-
200-299 /3$WWV
-
51-199 /4$WWV
-
1-50 /5$WWV
Stake Shred Collection NFTs with NFT mint address
and a boolean parameter weather the NFT is Legendary NFT.
stakeNft
Unstake their staked NFTs with mint address
and get rewards. ( Calculate generated reward by this NFT too )
withdrawNft
Claim reward to receive generated $WWV from their staking.
claimReward