@streamflow/staking 10.0.0 → 10.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +4 -4
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../solana/constants.ts","../../solana/descriptor/idl/governor.json","../../solana/descriptor/idl/fee_manager.json","../../solana/descriptor/idl/reward_pool.json","../../solana/descriptor/idl/reward_pool_dynamic.json","../../solana/descriptor/idl/stake_pool.json","../../solana/lib/derive-accounts.ts","../../solana/client.ts","../../solana/lib/rewards.ts","../../solana/lib/fee-amounts.ts","../../solana/lib/stake-weight.ts"],"names":["BN","PublicKey","ICluster","Connection","buildSendThrottler","Program","invariant","getFilters","TOKEN_PROGRAM_ID","pk","ixs","getAssociatedTokenAddressSync","checkOrCreateAtaBatch","unwrapExecutionParams","createAndEstimateTransaction","prepareBaseInstructions","prepareTransaction","signAndExecuteTransaction","translateError","parseIdlErrors","ContractError","getNumberFromBN","getBN","divCeilN"],"mappings":"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","file":"index.cjs","sourcesContent":["import { ICluster } from \"@streamflow/common\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\nexport const FEE_PRECISION_FACTOR = 10_000;\nexport const FEE_PRECISION_FACTOR_BN = new BN(FEE_PRECISION_FACTOR);\nexport const DEFAULT_FEE = 19;\nexport const DEFAULT_FEE_BN = new BN(DEFAULT_FEE);\nexport const SCALE_PRECISION_FACTOR = 1_000_000_000;\nexport const SCALE_PRECISION_FACTOR_BN = new BN(SCALE_PRECISION_FACTOR);\nexport const REWARD_AMOUNT_DECIMALS = 9;\nexport const REWARD_AMOUNT_PRECISION_FACTOR = 1_000_000_000;\nexport const REWARD_AMOUNT_PRECISION_FACTOR_BN = new BN(REWARD_AMOUNT_PRECISION_FACTOR);\nexport const U64_MAX = 18446744073709551615n;\nexport const STAKE_ENTRY_DISCRIMINATOR = [187, 127, 9, 35, 155, 68, 86, 40];\nexport const STAKE_ENTRY_PREFIX = Buffer.from(\"stake-entry\", \"utf-8\");\nexport const STAKE_POOL_PREFIX = Buffer.from(\"stake-pool\", \"utf-8\");\nexport const STAKE_MINT_PREFIX = Buffer.from(\"stake-mint\", \"utf-8\");\nexport const STAKE_VAULT_PREFIX = Buffer.from(\"stake-vault\", \"utf-8\");\nexport const REWARD_POOL_PREFIX = Buffer.from(\"reward-pool\", \"utf-8\");\nexport const REWARD_VAULT_PREFIX = Buffer.from(\"reward-vault\", \"utf-8\");\nexport const REWARD_ENTRY_PREFIX = Buffer.from(\"reward-entry\", \"utf-8\");\nexport const CONFIG_PREFIX = Buffer.from(\"config\", \"utf-8\");\nexport const FEE_VALUE_PREFIX = Buffer.from(\"fee-value\", \"utf-8\");\nexport const STREAMFLOW_TREASURY_PUBLIC_KEY = new PublicKey(\"5SEpbdjFK5FxwTvfsGMXVQTD2v4M2c5tyRTxhdsPkgDw\");\n\nexport const ANCHOR_DISCRIMINATOR_OFFSET = 8;\nexport const STAKE_ENTRY_STAKE_POOL_OFFSET = ANCHOR_DISCRIMINATOR_OFFSET + 4;\nexport const STAKE_ENTRY_PAYER_OFFSET = STAKE_ENTRY_STAKE_POOL_OFFSET + 32;\nexport const STAKE_ENTRY_OWNER_OFFSET = STAKE_ENTRY_PAYER_OFFSET + 32;\nexport const STAKE_ENTRY_BYTE_OFFSETS = {\n payer: STAKE_ENTRY_PAYER_OFFSET,\n authority: STAKE_ENTRY_OWNER_OFFSET,\n stakePool: STAKE_ENTRY_STAKE_POOL_OFFSET,\n} as const;\n\nexport const STAKE_POOL_MINT_OFFSET = ANCHOR_DISCRIMINATOR_OFFSET + 2;\nexport const STAKE_POOL_CREATOR_OFFSET = STAKE_POOL_MINT_OFFSET + 32;\nexport const STAKE_POOL_BYTE_OFFSETS = {\n mint: STAKE_POOL_MINT_OFFSET,\n creator: STAKE_POOL_CREATOR_OFFSET,\n} as const;\n\nexport const REWARD_POOL_STAKE_POOL_OFFSET = ANCHOR_DISCRIMINATOR_OFFSET + 2;\nexport const REWARD_POOL_MINT_OFFSET = REWARD_POOL_STAKE_POOL_OFFSET + 32;\nexport const REWARD_POOL_BYTE_OFFSETS = {\n stakePool: REWARD_POOL_STAKE_POOL_OFFSET,\n mint: REWARD_POOL_MINT_OFFSET,\n} as const;\n\nexport const REWARD_ENTRY_REWARD_POOL_OFFSET = ANCHOR_DISCRIMINATOR_OFFSET;\nexport const REWARD_ENTRY_STAKE_ENTRY_OFFSET = REWARD_ENTRY_REWARD_POOL_OFFSET + 32;\nexport const REWARD_ENTRY_BYTE_OFFSETS = {\n stakeEntry: REWARD_ENTRY_STAKE_ENTRY_OFFSET,\n rewardPool: REWARD_ENTRY_REWARD_POOL_OFFSET,\n} as const;\n\nexport const STAKE_POOL_PROGRAM_ID: Record<ICluster, string> = {\n [ICluster.Mainnet]: \"STAKEvGqQTtzJZH6BWDcbpzXXn2BBerPAgQ3EGLN2GH\",\n [ICluster.Devnet]: \"STAKEvGqQTtzJZH6BWDcbpzXXn2BBerPAgQ3EGLN2GH\",\n [ICluster.Testnet]: \"STAKEvGqQTtzJZH6BWDcbpzXXn2BBerPAgQ3EGLN2GH\",\n [ICluster.Local]: \"STAKEvGqQTtzJZH6BWDcbpzXXn2BBerPAgQ3EGLN2GH\",\n};\nexport const REWARD_POOL_PROGRAM_ID: Record<ICluster, string> = {\n [ICluster.Mainnet]: \"RWRDdfRbi3339VgKxTAXg4cjyniF7cbhNbMxZWiSKmj\",\n [ICluster.Devnet]: \"RWRDdfRbi3339VgKxTAXg4cjyniF7cbhNbMxZWiSKmj\",\n [ICluster.Testnet]: \"RWRDdfRbi3339VgKxTAXg4cjyniF7cbhNbMxZWiSKmj\",\n [ICluster.Local]: \"RWRDdfRbi3339VgKxTAXg4cjyniF7cbhNbMxZWiSKmj\",\n};\nexport const REWARD_POOL_DYNAMIC_PROGRAM_ID: Record<ICluster, string> = {\n [ICluster.Mainnet]: \"RWRDyfZa6Rk9UYi85yjYYfGmoUqffLqjo6vZdFawEez\",\n [ICluster.Devnet]: \"RWRDyfZa6Rk9UYi85yjYYfGmoUqffLqjo6vZdFawEez\",\n [ICluster.Testnet]: \"RWRDyfZa6Rk9UYi85yjYYfGmoUqffLqjo6vZdFawEez\",\n [ICluster.Local]: \"RWRDyfZa6Rk9UYi85yjYYfGmoUqffLqjo6vZdFawEez\",\n};\nexport const FEE_PROGRAM_ID: Record<ICluster, string> = {\n [ICluster.Mainnet]: \"FEELzfBhsWXTNJX53zZcDVfRNoFYZQ6cZA3jLiGVL16V\",\n [ICluster.Devnet]: \"FEELzfBhsWXTNJX53zZcDVfRNoFYZQ6cZA3jLiGVL16V\",\n [ICluster.Testnet]: \"FEELzfBhsWXTNJX53zZcDVfRNoFYZQ6cZA3jLiGVL16V\",\n [ICluster.Local]: \"FEELzfBhsWXTNJX53zZcDVfRNoFYZQ6cZA3jLiGVL16V\",\n};\n","{\n \"address\": \"GVERNASJFxi8vjjJtwCKYQTeN51XsV1y2B1ap1GtKrKR\",\n \"metadata\": {\n \"name\": \"governor\",\n \"version\": \"2.4.0\",\n \"spec\": \"0.1.0\",\n \"description\": \"Governor program to allow users to vote with stake tokens\"\n },\n \"instructions\": [\n {\n \"name\": \"add_proposal\",\n \"discriminator\": [\n 130,\n 139,\n 214,\n 107,\n 93,\n 13,\n 84,\n 152\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"The stake pool associated with the governor\"\n ],\n \"relations\": [\n \"governor\"\n ]\n },\n {\n \"name\": \"governor\",\n \"docs\": [\n \"The governor to which the proposal is being added\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"proposal\",\n \"docs\": [\n \"The new proposal account to be created\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 114,\n 111,\n 112,\n 111,\n 115,\n 97,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"governor\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the governor\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"text\",\n \"type\": \"string\"\n },\n {\n \"name\": \"options\",\n \"type\": {\n \"vec\": \"string\"\n }\n },\n {\n \"name\": \"voting_start_ts\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"voting_end_ts\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"change_authority\",\n \"discriminator\": [\n 50,\n 106,\n 66,\n 104,\n 99,\n 118,\n 145,\n 88\n ],\n \"accounts\": [\n {\n \"name\": \"governor\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current Authority\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"new_authority\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"create_governor\",\n \"discriminator\": [\n 103,\n 30,\n 78,\n 252,\n 28,\n 128,\n 40,\n 3\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"The stake pool for which the governor is being created\"\n ]\n },\n {\n \"name\": \"governor\",\n \"docs\": [\n \"The governor account to be created\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 103,\n 111,\n 118,\n 101,\n 114,\n 110,\n 111,\n 114\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the stake pool\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"set_active_proposal\",\n \"discriminator\": [\n 41,\n 14,\n 222,\n 18,\n 33,\n 232,\n 43,\n 82\n ],\n \"accounts\": [\n {\n \"name\": \"governor\",\n \"docs\": [\n \"The governor for which to set the active proposal\"\n ],\n \"writable\": true,\n \"relations\": [\n \"proposal\"\n ]\n },\n {\n \"name\": \"proposal\",\n \"docs\": [\n \"The proposal to set as active\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the governor\"\n ],\n \"signer\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"vote_on_proposal\",\n \"discriminator\": [\n 188,\n 239,\n 13,\n 88,\n 119,\n 199,\n 251,\n 119\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Original Stake Pool\"\n ],\n \"relations\": [\n \"governor\"\n ]\n },\n {\n \"name\": \"governor\",\n \"docs\": [\n \"The governor account that manages the voting process\"\n ],\n \"writable\": true,\n \"relations\": [\n \"proposal\"\n ]\n },\n {\n \"name\": \"proposal\",\n \"docs\": [\n \"The proposal being voted on\"\n ]\n },\n {\n \"name\": \"vote\",\n \"docs\": [\n \"The vote account that will be created to record the vote\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 118,\n 111,\n 116,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"proposal\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"voter\"\n }\n ]\n }\n },\n {\n \"name\": \"stake_mint_account\",\n \"docs\": [\n \"The user's stake token account that holds the stake tokens\"\n ]\n },\n {\n \"name\": \"voter\",\n \"docs\": [\n \"The user who is voting\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"rent_sponsor\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 110,\n 116,\n 45,\n 115,\n 112,\n 111,\n 110,\n 115,\n 111,\n 114\n ]\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"option_index\",\n \"type\": \"u8\"\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"Governor\",\n \"discriminator\": [\n 37,\n 136,\n 44,\n 80,\n 68,\n 85,\n 213,\n 178\n ]\n },\n {\n \"name\": \"Proposal\",\n \"discriminator\": [\n 26,\n 94,\n 189,\n 187,\n 116,\n 136,\n 53,\n 33\n ]\n },\n {\n \"name\": \"StakePool\",\n \"discriminator\": [\n 121,\n 34,\n 206,\n 21,\n 79,\n 127,\n 255,\n 28\n ]\n },\n {\n \"name\": \"Vote\",\n \"discriminator\": [\n 96,\n 91,\n 104,\n 57,\n 145,\n 35,\n 172,\n 155\n ]\n }\n ],\n \"events\": [\n {\n \"name\": \"VoteEvent\",\n \"discriminator\": [\n 195,\n 71,\n 250,\n 105,\n 120,\n 119,\n 234,\n 134\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"ArithmeticError\",\n \"msg\": \"Arithmetic Error (overflow/underflow)\"\n },\n {\n \"code\": 6001,\n \"name\": \"Unauthorized\",\n \"msg\": \"Account is not authorized to execute this instruction\"\n },\n {\n \"code\": 6002,\n \"name\": \"InvalidStakeMint\",\n \"msg\": \"Provided Stake Mint does not equal the Pool Stake Mint\"\n },\n {\n \"code\": 6003,\n \"name\": \"InvalidStakePool\",\n \"msg\": \"Provided Stake Pool does not equal the Entry Stake Pool\"\n },\n {\n \"code\": 6004,\n \"name\": \"InvalidGovernor\",\n \"msg\": \"Provided Governor does not match the proposal Governor\"\n },\n {\n \"code\": 6005,\n \"name\": \"InvalidProposalText\",\n \"msg\": \"Invalid proposal text provided\"\n },\n {\n \"code\": 6006,\n \"name\": \"InvalidProposalOptions\",\n \"msg\": \"Invalid proposal options provided\"\n },\n {\n \"code\": 6007,\n \"name\": \"InvalidProposalDuration\",\n \"msg\": \"Invalid proposal duration\"\n },\n {\n \"code\": 6008,\n \"name\": \"ProposalAlreadyActive\",\n \"msg\": \"This proposal is already active\"\n },\n {\n \"code\": 6009,\n \"name\": \"VotingNotStarted\",\n \"msg\": \"Voting not started yet\"\n },\n {\n \"code\": 6010,\n \"name\": \"VotingEnded\",\n \"msg\": \"Voting has already ended\"\n },\n {\n \"code\": 6011,\n \"name\": \"InvalidOptionIndex\",\n \"msg\": \"Provided option is not a valid proposal option\"\n },\n {\n \"code\": 6012,\n \"name\": \"InsufficientStakeTokens\",\n \"msg\": \"Insufficient tokens for voting\"\n }\n ],\n \"types\": [\n {\n \"name\": \"Governor\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump Seed used to sign transactions\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to support multiple governors for the same pool\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool for which Reward Pool was added\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the Governor that can add proposals and set the current one\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"current_proposal\",\n \"docs\": [\n \"Address of the current proposal\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"total_proposals\",\n \"docs\": [\n \"Total number of created proposals\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 128\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Proposal\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce used to derive proposal address\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"governor\",\n \"docs\": [\n \"Stake Pool for which Reward Pool was added\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"text\",\n \"docs\": [\n \"Text of the proposals we reserve up to 512 bytes (ascii symbols take 1 byte)\"\n ],\n \"type\": \"string\"\n },\n {\n \"name\": \"options\",\n \"docs\": [\n \"Potential options that will be used when answering, we reserve enough space for up to 8x32 = 256 ascii symbols in total\"\n ],\n \"type\": {\n \"vec\": \"string\"\n }\n },\n {\n \"name\": \"voting_start_ts\",\n \"docs\": [\n \"Time when voting starts, 0 means that voting start immediately after proposal was created\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"voting_end_ts\",\n \"docs\": [\n \"Time when voting ends, 0 means that voting will be possible anytime\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"created_ts\",\n \"docs\": [\n \"Time when proposal was created\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_active_ts\",\n \"docs\": [\n \"Last time when proposal was made active\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"StakePool\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump Seed used to sign transactions\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate pools for the same mint\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint of the Stake Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Initial Creator\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"min_weight\",\n \"docs\": [\n \"The lowest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.\",\n \"For instance:\",\n \"* `min_weight = 1 x SCALE_FACTOR_BASE` signifies a minimum multiplier of 1x for min staking duration\",\n \"* `min_weight = 2 x SCALE_FACTOR_BASE` indicates a minimum multiplier of 2x for min staking duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_weight\",\n \"docs\": [\n \"The highest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.\",\n \"For instance:\",\n \"* `max_weight = 1 x SCALE_FACTOR_BASE` signifies a max multiplier of 1x for max staking duration\",\n \"* `max_weight = 2 x SCALE_FACTOR_BASE` indicates a max multiplier of 2x for max staking duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_duration\",\n \"docs\": [\n \"Min Duration of stake in seconds\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_duration\",\n \"docs\": [\n \"Max Duration of stake in seconds, the more duration, the more weight the stake has\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"permissionless\",\n \"docs\": [\n \"Whether anyone can add Reward Pools or just admin\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that stores staked tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"stake_mint\",\n \"docs\": [\n \"Stake Mint, will be returned in exchange for stake tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"total_stake\",\n \"docs\": [\n \"Total number of Staked tokens\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_effective_stake\",\n \"docs\": [\n \"Total staked tokens accounting for each stake weight, does not equal `total_stake`,\",\n \"represents a sum of effective stake multiplied by 10^9 for precision\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"freeze_stake_mint\",\n \"docs\": [\n \"Whether we should freeze stake mint token accounts\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"unstake_period\",\n \"docs\": [\n \"Period for unstaking, if set unstake at first should be requested, and the real unstake can only happen after this period\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_total_stake_capped\",\n \"docs\": [\n \"Whether amount of total staked tokens is limited by `remaining_total_stake` - stored as separate flag to not deal with `Option`\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"remaining_total_stake\",\n \"docs\": [\n \"Remaining total amount of staked tokens (cumulative)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"expiry_ts\",\n \"docs\": [\n \"Time when stake pool expires, staking is not possible after expiration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"auto_unstake\",\n \"docs\": [\n \"Whether auto unstaking is enabled, stake entries will be unstaked after duration\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 37\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Vote\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"proposal\",\n \"docs\": [\n \"Question to which vote was provided\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"voter\",\n \"docs\": [\n \"Voter that voted on the proposal\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"option_index\",\n \"docs\": [\n \"Index of the option used for voting\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"weight\",\n \"docs\": [\n \"Weight of the vote, correspond to number of sTokens used\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_sponsored\",\n \"docs\": [\n \"Whether the vote rent has been sponsored by the rent vault\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 63\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"VoteEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"governor\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"proposal\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"voter\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"option_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"value\",\n \"type\": \"u64\"\n }\n ]\n }\n }\n ]\n}","{\n \"address\": \"FEELzfBhsWXTNJX53zZcDVfRNoFYZQ6cZA3jLiGVL16V\",\n \"metadata\": {\n \"name\": \"fee_manager\",\n \"version\": \"2.4.0\",\n \"spec\": \"0.1.0\",\n \"description\": \"Stores Fees and other admin configuration for the Staking protocol\"\n },\n \"instructions\": [\n {\n \"name\": \"change_authority\",\n \"discriminator\": [\n 50,\n 106,\n 66,\n 104,\n 99,\n 118,\n 145,\n 88\n ],\n \"accounts\": [\n {\n \"name\": \"config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"authority\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"new_authority\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"initialize\",\n \"discriminator\": [\n 175,\n 175,\n 109,\n 31,\n 13,\n 152,\n 155,\n 237\n ],\n \"accounts\": [\n {\n \"name\": \"config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"authority\"\n ],\n \"writable\": true,\n \"signer\": true,\n \"address\": \"ACYtYsL4KYtJzD53wqyifqad2D8224kamcngYPgSy3t\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"remove_fee\",\n \"discriminator\": [\n 190,\n 227,\n 105,\n 10,\n 30,\n 161,\n 81,\n 212\n ],\n \"accounts\": [\n {\n \"name\": \"fee_value\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 102,\n 101,\n 101,\n 45,\n 118,\n 97,\n 108,\n 117,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"target\"\n }\n ]\n }\n },\n {\n \"name\": \"config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"authority\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"target\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"update_config\",\n \"discriminator\": [\n 29,\n 158,\n 252,\n 191,\n 10,\n 83,\n 219,\n 99\n ],\n \"accounts\": [\n {\n \"name\": \"config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"authority\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"streamflow_fee\",\n \"type\": {\n \"option\": \"u64\"\n }\n }\n ]\n },\n {\n \"name\": \"write_fee\",\n \"discriminator\": [\n 80,\n 12,\n 148,\n 143,\n 16,\n 120,\n 24,\n 48\n ],\n \"accounts\": [\n {\n \"name\": \"fee_value\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 102,\n 101,\n 101,\n 45,\n 118,\n 97,\n 108,\n 117,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"target\"\n }\n ]\n }\n },\n {\n \"name\": \"config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"authority\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"target\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"streamflow_fee\",\n \"type\": \"u64\"\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"Config\",\n \"discriminator\": [\n 155,\n 12,\n 170,\n 224,\n 30,\n 250,\n 204,\n 130\n ]\n },\n {\n \"name\": \"FeeValue\",\n \"discriminator\": [\n 10,\n 188,\n 89,\n 64,\n 4,\n 183,\n 231,\n 0\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"Unauthorized\",\n \"msg\": \"Account is not authorized to execute this instruction\"\n },\n {\n \"code\": 6001,\n \"name\": \"InvalidFee\",\n \"msg\": \"Provided fee is not valid\"\n }\n ],\n \"types\": [\n {\n \"name\": \"Config\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Fee Manager authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"streamflow_fee\",\n \"docs\": [\n \"Default fee\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer_1\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n },\n {\n \"name\": \"_buffer_2\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n },\n {\n \"name\": \"_buffer_3\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"FeeValue\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"streamflow_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n }\n ]\n }\n }\n ]\n}","{\n \"address\": \"RWRDdfRbi3339VgKxTAXg4cjyniF7cbhNbMxZWiSKmj\",\n \"metadata\": {\n \"name\": \"reward_pool\",\n \"version\": \"2.4.0\",\n \"spec\": \"0.1.0\",\n \"description\": \"Program to manage Reward Pools for Stake Pools and claim rewards from them\"\n },\n \"instructions\": [\n {\n \"name\": \"change_authority\",\n \"discriminator\": [\n 50,\n 106,\n 66,\n 104,\n 99,\n 118,\n 145,\n 88\n ],\n \"accounts\": [\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current Authority\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"new_authority\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"claim_rewards\",\n \"discriminator\": [\n 4,\n 144,\n 132,\n 71,\n 116,\n 23,\n 151,\n 80\n ],\n \"accounts\": [\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Stake Entry for which rewards are being claimed\"\n ]\n },\n {\n \"name\": \"reward_entry\",\n \"docs\": [\n \"Reward Entry that stores metadata about claimed rewards\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_entry\"\n }\n ]\n }\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Reward Pool Vault that stores tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"to\",\n \"docs\": [\n \"Account to send the reward tokens to.\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"claimant\",\n \"docs\": [\n \"Who is claiming the tokens.\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"The mint to claim.\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"claim_rewards_as_worker\",\n \"discriminator\": [\n 120,\n 246,\n 117,\n 149,\n 120,\n 210,\n 52,\n 193\n ],\n \"accounts\": [\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"writable\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Stake Entry for which rewards are being claimed\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"reward_entry\",\n \"docs\": [\n \"Reward Entry that stores metadata about claimed rewards\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_entry\"\n }\n ]\n }\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Reward Pool Vault that stores tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"stake_vault\",\n \"writable\": true\n },\n {\n \"name\": \"to\",\n \"writable\": true\n },\n {\n \"name\": \"stake_mint_from\",\n \"writable\": true\n },\n {\n \"name\": \"claimant\",\n \"writable\": true\n },\n {\n \"name\": \"worker\",\n \"docs\": [\n \"Auto unstake worker\"\n ],\n \"writable\": true,\n \"signer\": true,\n \"address\": \"wdrwhnCv4pzW8beKsbPa4S2UDZrXenjg16KJdKSpb5u\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"The mint to claim.\"\n ],\n \"writable\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"stake_mint\",\n \"docs\": [\n \"Mint for sTokens issued by the stake pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"stake_pool_program\",\n \"address\": \"STAKEvGqQTtzJZH6BWDcbpzXXn2BBerPAgQ3EGLN2GH\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"clawback\",\n \"discriminator\": [\n 111,\n 92,\n 142,\n 79,\n 33,\n 234,\n 82,\n 27\n ],\n \"accounts\": [\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool to Which Reward Pool belongs\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Reward Pool Vault that stores tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"to\",\n \"docs\": [\n \"Account to send the reward tokens to.\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current Authority\"\n ],\n \"writable\": true,\n \"signer\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"The mint to claim.\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"close_entry\",\n \"discriminator\": [\n 132,\n 26,\n 202,\n 145,\n 190,\n 37,\n 114,\n 67\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ]\n },\n {\n \"name\": \"stake_entry\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"stake_nonce\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 6,\n 133,\n 25,\n 160,\n 130,\n 0,\n 119,\n 110,\n 227,\n 8,\n 28,\n 85,\n 214,\n 116,\n 67,\n 41,\n 155,\n 152,\n 181,\n 139,\n 124,\n 208,\n 85,\n 71,\n 175,\n 40,\n 123,\n 71,\n 139,\n 170,\n 201,\n 178\n ]\n }\n }\n },\n {\n \"name\": \"reward_entry\",\n \"docs\": [\n \"Reward Entry that stores metadata about claimed rewards\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_entry\"\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"rent_sponsor\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 110,\n 116,\n 45,\n 115,\n 112,\n 111,\n 110,\n 115,\n 111,\n 114\n ]\n }\n ]\n }\n }\n ],\n \"args\": [\n {\n \"name\": \"stake_nonce\",\n \"type\": \"u32\"\n }\n ]\n },\n {\n \"name\": \"create_entry\",\n \"discriminator\": [\n 248,\n 207,\n 142,\n 242,\n 66,\n 162,\n 150,\n 16\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Original Stake Pool\"\n ],\n \"relations\": [\n \"reward_pool\",\n \"stake_entry\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ]\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Stake Entry for which rewards are being claimed\"\n ]\n },\n {\n \"name\": \"reward_entry\",\n \"docs\": [\n \"Reward Entry that stores metadata about claimed rewards\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_entry\"\n }\n ]\n }\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Rent payer\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"authority\"\n },\n {\n \"name\": \"rent_sponsor\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 110,\n 116,\n 45,\n 115,\n 112,\n 111,\n 110,\n 115,\n 111,\n 114\n ]\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"create_pool\",\n \"discriminator\": [\n 233,\n 146,\n 209,\n 142,\n 207,\n 104,\n 64,\n 188\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool to Which Reward Pool is being added\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool to add\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 112,\n 111,\n 111,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint used for rewards\"\n ]\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that will store the tokens\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n }\n ]\n }\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Reward Pool creator\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"reward_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_period\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"permissionless\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"last_claim_period_opt\",\n \"type\": {\n \"option\": \"u64\"\n }\n }\n ]\n },\n {\n \"name\": \"fund_pool\",\n \"discriminator\": [\n 36,\n 57,\n 233,\n 176,\n 181,\n 20,\n 87,\n 159\n ],\n \"accounts\": [\n {\n \"name\": \"funder\",\n \"docs\": [\n \"Reward Pool funder\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"from\",\n \"docs\": [\n \"Token Account from which tokens will be transferred\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Reward Pool Vault that stores tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint of reward tokens\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"streamflow_treasury\",\n \"writable\": true,\n \"address\": \"5SEpbdjFK5FxwTvfsGMXVQTD2v4M2c5tyRTxhdsPkgDw\"\n },\n {\n \"name\": \"streamflow_treasury_tokens\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"streamflow_treasury\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"config\",\n \"docs\": [\n \"Fee Configuration\"\n ],\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ],\n \"program\": {\n \"kind\": \"account\",\n \"path\": \"fee_program\"\n }\n }\n },\n {\n \"name\": \"fee_value\",\n \"docs\": [\n \"Fee Value for the funder account\"\n ],\n \"optional\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 102,\n 101,\n 101,\n 45,\n 118,\n 97,\n 108,\n 117,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"funder\"\n }\n ],\n \"program\": {\n \"kind\": \"account\",\n \"path\": \"fee_program\"\n }\n }\n },\n {\n \"name\": \"fee_program\",\n \"address\": \"FEELzfBhsWXTNJX53zZcDVfRNoFYZQ6cZA3jLiGVL16V\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"update_pool\",\n \"discriminator\": [\n 239,\n 214,\n 170,\n 78,\n 36,\n 35,\n 30,\n 34\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current Authority\"\n ],\n \"writable\": true,\n \"signer\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool to Which Reward Pool belongs\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_amount\",\n \"type\": {\n \"option\": \"u64\"\n }\n },\n {\n \"name\": \"reward_period\",\n \"type\": {\n \"option\": \"u64\"\n }\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"Config\",\n \"discriminator\": [\n 155,\n 12,\n 170,\n 224,\n 30,\n 250,\n 204,\n 130\n ]\n },\n {\n \"name\": \"FeeValue\",\n \"discriminator\": [\n 10,\n 188,\n 89,\n 64,\n 4,\n 183,\n 231,\n 0\n ]\n },\n {\n \"name\": \"RewardEntry\",\n \"discriminator\": [\n 208,\n 191,\n 173,\n 14,\n 213,\n 84,\n 179,\n 162\n ]\n },\n {\n \"name\": \"RewardPool\",\n \"discriminator\": [\n 134,\n 121,\n 197,\n 211,\n 133,\n 154,\n 82,\n 32\n ]\n },\n {\n \"name\": \"StakeEntry\",\n \"discriminator\": [\n 187,\n 127,\n 9,\n 35,\n 155,\n 68,\n 86,\n 40\n ]\n },\n {\n \"name\": \"StakePool\",\n \"discriminator\": [\n 121,\n 34,\n 206,\n 21,\n 79,\n 127,\n 255,\n 28\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"ArithmeticError\",\n \"msg\": \"Arithmetic Error (overflow/underflow)\"\n },\n {\n \"code\": 6001,\n \"name\": \"InvalidRewardAmount\",\n \"msg\": \"Reward amount should be more than 0\"\n },\n {\n \"code\": 6002,\n \"name\": \"InvalidRewardPeriod\",\n \"msg\": \"Reward period should be more than 0 and less or equal than staking duration if auto unstake is enabled\"\n },\n {\n \"code\": 6003,\n \"name\": \"Unauthorized\",\n \"msg\": \"Account is not authorized to execute this instruction\"\n },\n {\n \"code\": 6004,\n \"name\": \"OwnerMismatch\",\n \"msg\": \"Token account owner did not match intended owner\"\n },\n {\n \"code\": 6005,\n \"name\": \"InvalidRewardVault\",\n \"msg\": \"Provided Reward Vault is Invalid\"\n },\n {\n \"code\": 6006,\n \"name\": \"InvalidRewardEntry\",\n \"msg\": \"Provided Reward Entry is Invalid\"\n },\n {\n \"code\": 6007,\n \"name\": \"InvalidStakeEntry\",\n \"msg\": \"Provided Stake Entry is Invalid\"\n },\n {\n \"code\": 6008,\n \"name\": \"InvalidRewardPool\",\n \"msg\": \"Provided Reward Pool is Invalid\"\n },\n {\n \"code\": 6009,\n \"name\": \"InvalidMint\",\n \"msg\": \"Invalid Mint\"\n },\n {\n \"code\": 6010,\n \"name\": \"StakeEntryClosed\",\n \"msg\": \"Stake Entry is closed, rewards are not claimable anymore\"\n },\n {\n \"code\": 6011,\n \"name\": \"StakeEntryOpened\",\n \"msg\": \"Stake Entry is still opened, closing is not possible\"\n },\n {\n \"code\": 6012,\n \"name\": \"RewardPoolDrained\",\n \"msg\": \"Reward Pool does not have enough Rewards for Claiming\"\n },\n {\n \"code\": 6013,\n \"name\": \"UpdateTooSoon\",\n \"msg\": \"Repeated update can not happen sooner than the stake pool max duration\"\n },\n {\n \"code\": 6014,\n \"name\": \"InvalidLastClaimPeriod\",\n \"msg\": \"Invalid last claim period provided\"\n },\n {\n \"code\": 6015,\n \"name\": \"ClawbackNotPossible\",\n \"msg\": \"Clawback is not possible for the provided Stake Pool\"\n },\n {\n \"code\": 6016,\n \"name\": \"ClawbackTooEarly\",\n \"msg\": \"Clawback requested too early, wait for the Pool to expire and cooldown to pass\"\n },\n {\n \"code\": 6017,\n \"name\": \"UpdateNotPossible\",\n \"msg\": \"Reward pool can not be updated\"\n },\n {\n \"code\": 6018,\n \"name\": \"EntryCreationNotPossibleAfterUnlock\",\n \"msg\": \"Reward entry can not be created after stake has been unlocked for this reward pool\"\n },\n {\n \"code\": 6019,\n \"name\": \"RefundNotPossible\",\n \"msg\": \"Refund not possible for this reward entry\"\n },\n {\n \"code\": 6020,\n \"name\": \"PoolCreationLimited\",\n \"msg\": \"Pool creation limited, use nonce 0\"\n }\n ],\n \"types\": [\n {\n \"name\": \"Config\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Fee Manager authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"streamflow_fee\",\n \"docs\": [\n \"Default fee\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer_1\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n },\n {\n \"name\": \"_buffer_2\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n },\n {\n \"name\": \"_buffer_3\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"FeeValue\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"streamflow_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"RewardEntry\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Stake Entry for which reward entry was initialized\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"created_ts\",\n \"docs\": [\n \"Timestamp when reward entry has been created\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"accounted_amount\",\n \"docs\": [\n \"Sum of accounted amounts, used to correctly issue rewards in case of precision loss\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"claimed_amount\",\n \"docs\": [\n \"Sum of already claimed rewards\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_accounted_ts\",\n \"docs\": [\n \"Timestamp when rewards have been claimed last time\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_reward_amount\",\n \"docs\": [\n \"Reward amount used on last claim or entry creation\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_reward_period\",\n \"docs\": [\n \"Reward Period used on last claim or entry creation\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_sponsored\",\n \"docs\": [\n \"Whether the entry rent has been sponsored by the rent vault\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 31\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"RewardPool\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump Seed used to sign transactions\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate pools for the same mint\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool for which Reward Pool was added\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint of Reward Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Creator of the Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_amount\",\n \"docs\": [\n \"Amount of rewards that will be distributed per effective stake\",\n \"\",\n \"Should be a fraction of a raw token amount which is 1 / 10^9,\",\n \"i.e. `reward_amount` of `1_000_000_000` equals one raw token per effective stake\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_period\",\n \"docs\": [\n \"Period of Rewards distribution in seconds\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"permissionless\",\n \"docs\": [\n \"Whether anyone can fund the Pool\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"last_reward_amount\",\n \"docs\": [\n \"`reward_amount` used before the last update\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_reward_period\",\n \"docs\": [\n \"`reward_period` used before the last update\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_amount_update_ts\",\n \"docs\": [\n \"Time when `reward_amount` was updated the last time\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_period_update_ts\",\n \"docs\": [\n \"Time when `reward_period` was updated the last time\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that stores reward tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"funded_amount\",\n \"docs\": [\n \"Total funded amount\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"claimed_amount\",\n \"docs\": [\n \"Total number of rewards claimed\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"created_ts\",\n \"docs\": [\n \"Time when Reward Pool was created\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_claim_period\",\n \"docs\": [\n \"For how much seconds after unstake user should be able to claim rewards\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"clawed_back_ts\",\n \"docs\": [\n \"Timestamp when reward pool was clawed back\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 40\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"StakeEntry\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate stakes for the same pool\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool for which tokens were staked\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Original Owner of Staked tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the Entry\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"amount\",\n \"docs\": [\n \"Amount of deposited funds\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"duration\",\n \"docs\": [\n \"Duration of the lockup\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"effective_amount\",\n \"docs\": [\n \"Effective Amount staked, does not equal to deposited amount, accounts for Stake Weight\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"created_ts\",\n \"docs\": [\n \"Timestamp when Deposit was made\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"closed_ts\",\n \"docs\": [\n \"Timestamp when entry has been closed\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"prior_total_effective_stake\",\n \"docs\": [\n \"Total effective stake at the time of staking\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"unstake_ts\",\n \"docs\": [\n \"Timestamp when unstake was requested, will be used in case `unstake_period` is set\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_sponsored\",\n \"docs\": [\n \"Whether the entry rent has been sponsored by the rent vault\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"auto_unstake\",\n \"docs\": [\n \"Whether auto unstaking is enabled, copied from the stake pool for use in instructions that don't require the stake pool account\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 38\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"StakePool\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump Seed used to sign transactions\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate pools for the same mint\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint of the Stake Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Initial Creator\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"min_weight\",\n \"docs\": [\n \"The lowest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.\",\n \"For instance:\",\n \"* `min_weight = 1 x SCALE_FACTOR_BASE` signifies a minimum multiplier of 1x for min staking duration\",\n \"* `min_weight = 2 x SCALE_FACTOR_BASE` indicates a minimum multiplier of 2x for min staking duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_weight\",\n \"docs\": [\n \"The highest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.\",\n \"For instance:\",\n \"* `max_weight = 1 x SCALE_FACTOR_BASE` signifies a max multiplier of 1x for max staking duration\",\n \"* `max_weight = 2 x SCALE_FACTOR_BASE` indicates a max multiplier of 2x for max staking duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_duration\",\n \"docs\": [\n \"Min Duration of stake in seconds\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_duration\",\n \"docs\": [\n \"Max Duration of stake in seconds, the more duration, the more weight the stake has\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"permissionless\",\n \"docs\": [\n \"Whether anyone can add Reward Pools or just admin\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that stores staked tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"stake_mint\",\n \"docs\": [\n \"Stake Mint, will be returned in exchange for stake tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"total_stake\",\n \"docs\": [\n \"Total number of Staked tokens\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_effective_stake\",\n \"docs\": [\n \"Total staked tokens accounting for each stake weight, does not equal `total_stake`,\",\n \"represents a sum of effective stake multiplied by 10^9 for precision\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"freeze_stake_mint\",\n \"docs\": [\n \"Whether we should freeze stake mint token accounts\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"unstake_period\",\n \"docs\": [\n \"Period for unstaking, if set unstake at first should be requested, and the real unstake can only happen after this period\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_total_stake_capped\",\n \"docs\": [\n \"Whether amount of total staked tokens is limited by `remaining_total_stake` - stored as separate flag to not deal with `Option`\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"remaining_total_stake\",\n \"docs\": [\n \"Remaining total amount of staked tokens (cumulative)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"expiry_ts\",\n \"docs\": [\n \"Time when stake pool expires, staking is not possible after expiration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"auto_unstake\",\n \"docs\": [\n \"Whether auto unstaking is enabled, stake entries will be unstaked after duration\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 37\n ]\n }\n }\n ]\n }\n }\n ]\n}","{\n \"address\": \"RWRDyfZa6Rk9UYi85yjYYfGmoUqffLqjo6vZdFawEez\",\n \"metadata\": {\n \"name\": \"reward_pool_dynamic\",\n \"version\": \"2.4.0\",\n \"spec\": \"0.1.0\",\n \"description\": \"Reward pools with dynamic rewards distribution\"\n },\n \"instructions\": [\n {\n \"name\": \"change_authority\",\n \"discriminator\": [\n 50,\n 106,\n 66,\n 104,\n 99,\n 118,\n 145,\n 88\n ],\n \"accounts\": [\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current Authority\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"new_authority\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"claim_rewards\",\n \"discriminator\": [\n 4,\n 144,\n 132,\n 71,\n 116,\n 23,\n 151,\n 80\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Original Stake Pool\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Stake Entry for which rewards are being claimed\"\n ]\n },\n {\n \"name\": \"reward_entry\",\n \"docs\": [\n \"Reward Entry that stores metadata about claimed rewards\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_entry\"\n }\n ]\n }\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Reward Pool Vault that stores tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"to\",\n \"docs\": [\n \"Account to send the reward tokens to.\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"claimant\",\n \"docs\": [\n \"Who is claiming the tokens.\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"The mint to claim.\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"governor\",\n \"docs\": [\n \"Reward Pool governor\"\n ],\n \"optional\": true\n },\n {\n \"name\": \"vote\",\n \"docs\": [\n \"Vote for the active proposal\"\n ],\n \"optional\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"close_entry\",\n \"discriminator\": [\n 132,\n 26,\n 202,\n 145,\n 190,\n 37,\n 114,\n 67\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ]\n },\n {\n \"name\": \"stake_entry\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"stake_nonce\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 6,\n 133,\n 25,\n 160,\n 130,\n 0,\n 119,\n 110,\n 227,\n 8,\n 28,\n 85,\n 214,\n 116,\n 67,\n 41,\n 155,\n 152,\n 181,\n 139,\n 124,\n 208,\n 85,\n 71,\n 175,\n 40,\n 123,\n 71,\n 139,\n 170,\n 201,\n 178\n ]\n }\n }\n },\n {\n \"name\": \"reward_entry\",\n \"docs\": [\n \"Reward Entry that stores metadata about claimed rewards\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_entry\"\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"rent_sponsor\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 110,\n 116,\n 45,\n 115,\n 112,\n 111,\n 110,\n 115,\n 111,\n 114\n ]\n }\n ]\n }\n }\n ],\n \"args\": [\n {\n \"name\": \"stake_nonce\",\n \"type\": \"u32\"\n }\n ]\n },\n {\n \"name\": \"create_entry\",\n \"discriminator\": [\n 248,\n 207,\n 142,\n 242,\n 66,\n 162,\n 150,\n 16\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Original Stake Pool\"\n ],\n \"relations\": [\n \"reward_pool\",\n \"stake_entry\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Stake Entry for which rewards are being claimed\"\n ]\n },\n {\n \"name\": \"reward_entry\",\n \"docs\": [\n \"Reward Entry that stores metadata about claimed rewards\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_entry\"\n }\n ]\n }\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Rent payer\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"authority\"\n },\n {\n \"name\": \"rent_sponsor\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 110,\n 116,\n 45,\n 115,\n 112,\n 111,\n 110,\n 115,\n 111,\n 114\n ]\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"create_pool\",\n \"discriminator\": [\n 233,\n 146,\n 209,\n 142,\n 207,\n 104,\n 64,\n 188\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool to Which Reward Pool is being added\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool to add\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 112,\n 111,\n 111,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint used for rewards\"\n ]\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that will store the tokens\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n }\n ]\n }\n },\n {\n \"name\": \"governor\",\n \"docs\": [\n \"Governor to be set for the RewardPool\"\n ],\n \"optional\": true\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Reward Pool creator\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"permissionless\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"claim_period\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"claim_start_ts\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"fund_pool\",\n \"discriminator\": [\n 36,\n 57,\n 233,\n 176,\n 181,\n 20,\n 87,\n 159\n ],\n \"accounts\": [\n {\n \"name\": \"funder\",\n \"docs\": [\n \"Reward Pool funder\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"from\",\n \"docs\": [\n \"Token Account from which tokens will be transferred\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Reward Pool Vault that stores tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint of reward tokens\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Original Stake Pool\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"streamflow_treasury\",\n \"writable\": true,\n \"address\": \"5SEpbdjFK5FxwTvfsGMXVQTD2v4M2c5tyRTxhdsPkgDw\"\n },\n {\n \"name\": \"streamflow_treasury_tokens\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"streamflow_treasury\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"config\",\n \"docs\": [\n \"Fee Configuration\"\n ],\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ],\n \"program\": {\n \"kind\": \"account\",\n \"path\": \"fee_program\"\n }\n }\n },\n {\n \"name\": \"fee_value\",\n \"docs\": [\n \"Fee Value for the funder account\"\n ],\n \"optional\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 102,\n 101,\n 101,\n 45,\n 118,\n 97,\n 108,\n 117,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"funder\"\n }\n ],\n \"program\": {\n \"kind\": \"account\",\n \"path\": \"fee_program\"\n }\n }\n },\n {\n \"name\": \"fee_program\",\n \"address\": \"FEELzfBhsWXTNJX53zZcDVfRNoFYZQ6cZA3jLiGVL16V\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"set_governor\",\n \"discriminator\": [\n 47,\n 75,\n 9,\n 199,\n 215,\n 187,\n 161,\n 161\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool - to verify the governor belongs to the same stake pool\"\n ],\n \"relations\": [\n \"reward_pool\",\n \"governor\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool - to be updated with new governor\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"governor\",\n \"docs\": [\n \"New Governor to be set for the RewardPool\"\n ]\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current Authority - only authority can set the governor\"\n ],\n \"writable\": true,\n \"signer\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"update_pool\",\n \"discriminator\": [\n 239,\n 214,\n 170,\n 78,\n 36,\n 35,\n 30,\n 34\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current Authority\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"claim_period\",\n \"type\": {\n \"option\": \"u64\"\n }\n },\n {\n \"name\": \"permissionless\",\n \"type\": {\n \"option\": \"bool\"\n }\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"Config\",\n \"discriminator\": [\n 155,\n 12,\n 170,\n 224,\n 30,\n 250,\n 204,\n 130\n ]\n },\n {\n \"name\": \"FeeValue\",\n \"discriminator\": [\n 10,\n 188,\n 89,\n 64,\n 4,\n 183,\n 231,\n 0\n ]\n },\n {\n \"name\": \"Governor\",\n \"discriminator\": [\n 37,\n 136,\n 44,\n 80,\n 68,\n 85,\n 213,\n 178\n ]\n },\n {\n \"name\": \"RewardEntry\",\n \"discriminator\": [\n 208,\n 191,\n 173,\n 14,\n 213,\n 84,\n 179,\n 162\n ]\n },\n {\n \"name\": \"RewardPool\",\n \"discriminator\": [\n 134,\n 121,\n 197,\n 211,\n 133,\n 154,\n 82,\n 32\n ]\n },\n {\n \"name\": \"StakeEntry\",\n \"discriminator\": [\n 187,\n 127,\n 9,\n 35,\n 155,\n 68,\n 86,\n 40\n ]\n },\n {\n \"name\": \"StakePool\",\n \"discriminator\": [\n 121,\n 34,\n 206,\n 21,\n 79,\n 127,\n 255,\n 28\n ]\n },\n {\n \"name\": \"Vote\",\n \"discriminator\": [\n 96,\n 91,\n 104,\n 57,\n 145,\n 35,\n 172,\n 155\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"ArithmeticError\",\n \"msg\": \"Arithmetic Error (overflow/underflow)\"\n },\n {\n \"code\": 6001,\n \"name\": \"Unauthorized\",\n \"msg\": \"Account is not authorized to execute this instruction\"\n },\n {\n \"code\": 6002,\n \"name\": \"OwnerMismatch\",\n \"msg\": \"Token account owner did not match intended owner\"\n },\n {\n \"code\": 6003,\n \"name\": \"InvalidRewardPool\",\n \"msg\": \"Provided Reward Pool is Invalid\"\n },\n {\n \"code\": 6004,\n \"name\": \"InvalidRewardVault\",\n \"msg\": \"Incorrect vault for RewardPool\"\n },\n {\n \"code\": 6005,\n \"name\": \"InvalidRewardEntry\",\n \"msg\": \"Provided Reward Entry is Invalid\"\n },\n {\n \"code\": 6006,\n \"name\": \"InvalidStakeEntry\",\n \"msg\": \"Provided Stake Entry is Invalid\"\n },\n {\n \"code\": 6007,\n \"name\": \"InvalidStakePool\",\n \"msg\": \"Provided Stake Pool does not equal the Governor Stake Pool\"\n },\n {\n \"code\": 6008,\n \"name\": \"InvalidMint\",\n \"msg\": \"Provided Mint does not equal the Pool Mint\"\n },\n {\n \"code\": 6009,\n \"name\": \"StakeEntryClosed\",\n \"msg\": \"Stake Entry is closed, rewards are not claimable anymore\"\n },\n {\n \"code\": 6010,\n \"name\": \"StakeEntryOpened\",\n \"msg\": \"Stake Entry is still opened, closing is not possible\"\n },\n {\n \"code\": 6011,\n \"name\": \"InvalidClaimStartTs\",\n \"msg\": \"Invalid claim start ts provided\"\n },\n {\n \"code\": 6012,\n \"name\": \"ClaimTooEarly\",\n \"msg\": \"Claiming is not possible until claim period has passed\"\n },\n {\n \"code\": 6013,\n \"name\": \"RewardPoolDrained\",\n \"msg\": \"Reward Pool does not have enough Rewards for Claiming\"\n },\n {\n \"code\": 6014,\n \"name\": \"InvalidGovernor\",\n \"msg\": \"Provided governor is invalid\"\n },\n {\n \"code\": 6015,\n \"name\": \"InvalidVote\",\n \"msg\": \"Provided vote is invalid\"\n },\n {\n \"code\": 6016,\n \"name\": \"VoteRequired\",\n \"msg\": \"Vote is required for claiming\"\n }\n ],\n \"types\": [\n {\n \"name\": \"Config\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Fee Manager authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"streamflow_fee\",\n \"docs\": [\n \"Default fee\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer_1\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n },\n {\n \"name\": \"_buffer_2\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n },\n {\n \"name\": \"_buffer_3\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"FeeValue\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"streamflow_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Governor\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump Seed used to sign transactions\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to support multiple governors for the same pool\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool for which Reward Pool was added\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the Governor that can add proposals and set the current one\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"current_proposal\",\n \"docs\": [\n \"Address of the current proposal\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"total_proposals\",\n \"docs\": [\n \"Total number of created proposals\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 128\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"RewardEntry\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Stake Entry for which reward entry was initialized\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"created_ts\",\n \"docs\": [\n \"Timestamp when reward entry has been created\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"rewards_state\",\n \"docs\": [\n \"State of the reward disitrbution, accounts for the last state in the reward pool\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"claimed_amount\",\n \"docs\": [\n \"Sum of already claimed rewards\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_claimed_ts\",\n \"docs\": [\n \"Timestamp when rewards have been claimed last time\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_sponsored\",\n \"docs\": [\n \"Whether the entry rent has been sponsored by the rent vault\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 31\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"RewardPool\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump Seed used to sign transactions\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate pools for the same mint\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool for which Reward Pool was added\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"governor\",\n \"docs\": [\n \"Governor of the Stake Pool, should be passed at claiming if set\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint of Reward Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Creator of the Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"permissionless\",\n \"docs\": [\n \"Whether anyone can fund the Pool\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"claim_period\",\n \"docs\": [\n \"Period of claims, may be used to block consecutive claims within the same period\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"claim_start_ts\",\n \"docs\": [\n \"Time when claiming starts, will be used as a base timestamp if claim_period is set\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that stores reward tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"funded_amount\",\n \"docs\": [\n \"Total funded amount\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"claimed_amount\",\n \"docs\": [\n \"Total number of rewards claimed\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"rewards_state\",\n \"docs\": [\n \"Ever increasing accumulator of the amount of rewards per effective stake.\\n Said another way, if a user deposited before any rewards were added to the\\n `vault`, then this would be the token amount per effective stake they could\\n claim.\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"last_amount\",\n \"docs\": [\n \"latest amount of tokens in the vault\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"created_ts\",\n \"docs\": [\n \"Time when Reward Pool was created\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 128\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"StakeEntry\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate stakes for the same pool\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool for which tokens were staked\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Original Owner of Staked tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the Entry\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"amount\",\n \"docs\": [\n \"Amount of deposited funds\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"duration\",\n \"docs\": [\n \"Duration of the lockup\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"effective_amount\",\n \"docs\": [\n \"Effective Amount staked, does not equal to deposited amount, accounts for Stake Weight\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"created_ts\",\n \"docs\": [\n \"Timestamp when Deposit was made\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"closed_ts\",\n \"docs\": [\n \"Timestamp when entry has been closed\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"prior_total_effective_stake\",\n \"docs\": [\n \"Total effective stake at the time of staking\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"unstake_ts\",\n \"docs\": [\n \"Timestamp when unstake was requested, will be used in case `unstake_period` is set\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_sponsored\",\n \"docs\": [\n \"Whether the entry rent has been sponsored by the rent vault\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"auto_unstake\",\n \"docs\": [\n \"Whether auto unstaking is enabled, copied from the stake pool for use in instructions that don't require the stake pool account\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 38\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"StakePool\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump Seed used to sign transactions\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate pools for the same mint\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint of the Stake Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Initial Creator\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"min_weight\",\n \"docs\": [\n \"The lowest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.\",\n \"For instance:\",\n \"* `min_weight = 1 x SCALE_FACTOR_BASE` signifies a minimum multiplier of 1x for min staking duration\",\n \"* `min_weight = 2 x SCALE_FACTOR_BASE` indicates a minimum multiplier of 2x for min staking duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_weight\",\n \"docs\": [\n \"The highest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.\",\n \"For instance:\",\n \"* `max_weight = 1 x SCALE_FACTOR_BASE` signifies a max multiplier of 1x for max staking duration\",\n \"* `max_weight = 2 x SCALE_FACTOR_BASE` indicates a max multiplier of 2x for max staking duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_duration\",\n \"docs\": [\n \"Min Duration of stake in seconds\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_duration\",\n \"docs\": [\n \"Max Duration of stake in seconds, the more duration, the more weight the stake has\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"permissionless\",\n \"docs\": [\n \"Whether anyone can add Reward Pools or just admin\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that stores staked tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"stake_mint\",\n \"docs\": [\n \"Stake Mint, will be returned in exchange for stake tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"total_stake\",\n \"docs\": [\n \"Total number of Staked tokens\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_effective_stake\",\n \"docs\": [\n \"Total staked tokens accounting for each stake weight, does not equal `total_stake`,\",\n \"represents a sum of effective stake multiplied by 10^9 for precision\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"freeze_stake_mint\",\n \"docs\": [\n \"Whether we should freeze stake mint token accounts\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"unstake_period\",\n \"docs\": [\n \"Period for unstaking, if set unstake at first should be requested, and the real unstake can only happen after this period\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_total_stake_capped\",\n \"docs\": [\n \"Whether amount of total staked tokens is limited by `remaining_total_stake` - stored as separate flag to not deal with `Option`\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"remaining_total_stake\",\n \"docs\": [\n \"Remaining total amount of staked tokens (cumulative)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"expiry_ts\",\n \"docs\": [\n \"Time when stake pool expires, staking is not possible after expiration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"auto_unstake\",\n \"docs\": [\n \"Whether auto unstaking is enabled, stake entries will be unstaked after duration\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 37\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Vote\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"proposal\",\n \"docs\": [\n \"Question to which vote was provided\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"voter\",\n \"docs\": [\n \"Voter that voted on the proposal\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"option_index\",\n \"docs\": [\n \"Index of the option used for voting\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"weight\",\n \"docs\": [\n \"Weight of the vote, correspond to number of sTokens used\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_sponsored\",\n \"docs\": [\n \"Whether the vote rent has been sponsored by the rent vault\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 63\n ]\n }\n }\n ]\n }\n }\n ]\n}","{\n \"address\": \"STAKEvGqQTtzJZH6BWDcbpzXXn2BBerPAgQ3EGLN2GH\",\n \"metadata\": {\n \"name\": \"stake_pool\",\n \"version\": \"2.4.0\",\n \"spec\": \"0.1.0\",\n \"description\": \"Program to manage Stake Pools and stake/unstake tokens\"\n },\n \"instructions\": [\n {\n \"name\": \"change_authority\",\n \"discriminator\": [\n 50,\n 106,\n 66,\n 104,\n 99,\n 118,\n 145,\n 88\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current Authority\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"new_authority\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"close_entry\",\n \"discriminator\": [\n 132,\n 26,\n 202,\n 145,\n 190,\n 37,\n 114,\n 67\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"relations\": [\n \"stake_entry\"\n ]\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Stake Entry\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"rent_sponsor\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 110,\n 116,\n 45,\n 115,\n 112,\n 111,\n 110,\n 115,\n 111,\n 114\n ]\n }\n ]\n }\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"create_lookup_table\",\n \"discriminator\": [\n 74,\n 26,\n 45,\n 214,\n 23,\n 155,\n 143,\n 153\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool\"\n ]\n },\n {\n \"name\": \"lookup_table_link\",\n \"docs\": [\n \"Link that will store address of the actual Lookup Table\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 108,\n 111,\n 111,\n 107,\n 117,\n 112,\n 45,\n 116,\n 97,\n 98,\n 108,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"lookup_table\",\n \"writable\": true\n },\n {\n \"name\": \"lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Payer of the transaction\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"authority\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"recent_slot\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"create_pool\",\n \"discriminator\": [\n 233,\n 146,\n 209,\n 142,\n 207,\n 104,\n 64,\n 188\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 112,\n 111,\n 111,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"creator\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint used for staking\"\n ]\n },\n {\n \"name\": \"vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n }\n ]\n }\n },\n {\n \"name\": \"stake_mint\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 109,\n 105,\n 110,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n }\n ]\n }\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Stake Pool creator\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"max_weight\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_duration\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_duration\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"permissionless\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"freeze_stake_mint\",\n \"type\": {\n \"option\": \"bool\"\n }\n },\n {\n \"name\": \"unstake_period\",\n \"type\": {\n \"option\": \"u64\"\n }\n }\n ]\n },\n {\n \"name\": \"create_pool_v2\",\n \"discriminator\": [\n 133,\n 27,\n 21,\n 38,\n 67,\n 86,\n 91,\n 132\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 112,\n 111,\n 111,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"creator\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint used for staking\"\n ]\n },\n {\n \"name\": \"vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n }\n ]\n }\n },\n {\n \"name\": \"stake_mint\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 109,\n 105,\n 110,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n }\n ]\n }\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Stake Pool creator\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"max_weight\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_duration\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_duration\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"permissionless\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"freeze_stake_mint\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"unstake_period\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_total_stake_cumulative\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"expiry_ts\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"auto_unstake\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"name\": \"migrate_entry\",\n \"discriminator\": [\n 239,\n 154,\n 55,\n 173,\n 110,\n 36,\n 188,\n 214\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool_from\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"writable\": true,\n \"address\": \"Cja9f8JFS6sTgBqSRZGBrA2HDbUj4MZUGdtRYruKTeJp\"\n },\n {\n \"name\": \"stake_pool_to\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"writable\": true,\n \"address\": \"BXRBbWMkscNBZoBL4fgRk77GBUX9eVP4AendQEumtPi8\"\n },\n {\n \"name\": \"stake_entry_from\",\n \"docs\": [\n \"Entry that will store Stake Metadata\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool_from\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"stake_entry_to\",\n \"docs\": [\n \"Entry that will store Stake Metadata\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool_to\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"new_nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"vault_from\",\n \"docs\": [\n \"Stake Pool Vault that stores staked tokens\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"vault_to\",\n \"docs\": [\n \"Stake Pool Vault that stores staked tokens\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"to\",\n \"docs\": [\n \"Token Account to transfer Stake Mint tokens to\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Owner of the Token Account from which tokens will be staked\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"authority\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Original mint of staked tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool_from\",\n \"stake_pool_to\"\n ]\n },\n {\n \"name\": \"stake_mint_from\",\n \"docs\": [\n \"Mint of stake tokens that will be minted in return for staking\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"stake_mint_to\",\n \"docs\": [\n \"Mint of stake tokens that will be minted in return for staking\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"new_nonce\",\n \"type\": \"u32\"\n }\n ]\n },\n {\n \"name\": \"request_unstake\",\n \"discriminator\": [\n 44,\n 154,\n 110,\n 253,\n 160,\n 202,\n 54,\n 34\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"writable\": true,\n \"relations\": [\n \"stake_entry\"\n ]\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Entry that stores Stake Metadata\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Stake Entry Authority\"\n ],\n \"writable\": true,\n \"signer\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"set_token_metadata_spl\",\n \"discriminator\": [\n 244,\n 162,\n 227,\n 218,\n 129,\n 5,\n 25,\n 253\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Stake Pool Authority\"\n ],\n \"signer\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"stake_pool\"\n },\n {\n \"name\": \"stake_mint\",\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"metadata_account\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 101,\n 116,\n 97,\n 100,\n 97,\n 116,\n 97\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"metadata_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"account\",\n \"path\": \"metadata_program\"\n }\n }\n },\n {\n \"name\": \"metadata_program\",\n \"docs\": [\n \"MPL Program\"\n ],\n \"address\": \"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"rent\",\n \"address\": \"SysvarRent111111111111111111111111111111111\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"name\": \"uri\",\n \"type\": \"string\"\n }\n ]\n },\n {\n \"name\": \"set_token_metadata_t22\",\n \"discriminator\": [\n 239,\n 134,\n 91,\n 83,\n 196,\n 57,\n 120,\n 106\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Stake Pool Authority\"\n ],\n \"signer\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"stake_pool\"\n },\n {\n \"name\": \"stake_mint\",\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"name\": \"uri\",\n \"type\": \"string\"\n }\n ]\n },\n {\n \"name\": \"stake\",\n \"discriminator\": [\n 206,\n 176,\n 202,\n 18,\n 200,\n 209,\n 179,\n 108\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Entry that will store Stake Metadata\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"from\",\n \"docs\": [\n \"Token Account from which stake tokens will be transferred\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Stake Pool Vault that stores staked tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"to\",\n \"docs\": [\n \"Token Account to transfer Stake Mint tokens to\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Owner of the Token Account from which tokens will be staked\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"authority\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Original mint of staked tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"stake_mint\",\n \"docs\": [\n \"Mint of stake tokens that will be minted in return for staking\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"rent_sponsor\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 110,\n 116,\n 45,\n 115,\n 112,\n 111,\n 110,\n 115,\n 111,\n 114\n ]\n }\n ]\n }\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"duration\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"unstake\",\n \"discriminator\": [\n 90,\n 95,\n 107,\n 42,\n 205,\n 124,\n 50,\n 225\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"writable\": true,\n \"relations\": [\n \"stake_entry\"\n ]\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Entry that stores Stake Metadata\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"from\",\n \"docs\": [\n \"Stake Mint Token account\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that stores Staked tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"to\",\n \"docs\": [\n \"Token account to withdraw Staked tokens to\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Stake Entry Authority\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Original mint of staked tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"stake_mint\",\n \"docs\": [\n \"Stake Mint used to exchanged Staked tokens to\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"rent_sponsor\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 110,\n 116,\n 45,\n 115,\n 112,\n 111,\n 110,\n 115,\n 111,\n 114\n ]\n }\n ]\n }\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"should_close\",\n \"type\": {\n \"option\": \"bool\"\n }\n }\n ]\n },\n {\n \"name\": \"unstake_as_worker\",\n \"discriminator\": [\n 18,\n 36,\n 224,\n 241,\n 46,\n 185,\n 228,\n 142\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"writable\": true,\n \"relations\": [\n \"stake_entry\"\n ]\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Entry that stores Stake Metadata\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"from\",\n \"docs\": [\n \"Stake Mint Token account\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that stores Staked tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"to\",\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"writable\": true\n },\n {\n \"name\": \"worker\",\n \"docs\": [\n \"Auto unstake worker\"\n ],\n \"writable\": true,\n \"signer\": true,\n \"address\": \"wdrwhnCv4pzW8beKsbPa4S2UDZrXenjg16KJdKSpb5u\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Original mint of staked tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"stake_mint\",\n \"docs\": [\n \"Stake Mint used to exchanged Staked tokens to\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n }\n ],\n \"accounts\": [\n {\n \"name\": \"LookupTableLink\",\n \"discriminator\": [\n 133,\n 88,\n 187,\n 141,\n 1,\n 53,\n 72,\n 236\n ]\n },\n {\n \"name\": \"StakeEntry\",\n \"discriminator\": [\n 187,\n 127,\n 9,\n 35,\n 155,\n 68,\n 86,\n 40\n ]\n },\n {\n \"name\": \"StakePool\",\n \"discriminator\": [\n 121,\n 34,\n 206,\n 21,\n 79,\n 127,\n 255,\n 28\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"InvalidDuration\",\n \"msg\": \"Minimum duration must be less than the maximum, maximum should be a realistic number of seconds\"\n },\n {\n \"code\": 6001,\n \"name\": \"InvalidWeight\",\n \"msg\": \"Weight should be more than minimum\"\n },\n {\n \"code\": 6002,\n \"name\": \"DurationTooShort\",\n \"msg\": \"Duration of staking can't be less than minimum duration of the pool\"\n },\n {\n \"code\": 6003,\n \"name\": \"InvalidStakeAmount\",\n \"msg\": \"Stake amount should be more than 0\"\n },\n {\n \"code\": 6004,\n \"name\": \"ArithmeticError\",\n \"msg\": \"Arithmetic Error (overflow/underflow)\"\n },\n {\n \"code\": 6005,\n \"name\": \"Unauthorized\",\n \"msg\": \"Account is not authorized to execute this instruction\"\n },\n {\n \"code\": 6006,\n \"name\": \"OwnerMismatch\",\n \"msg\": \"Token account owner did not match intended owner\"\n },\n {\n \"code\": 6007,\n \"name\": \"InvalidMint\",\n \"msg\": \"Provided Mint does not equal the Pool Mint\"\n },\n {\n \"code\": 6008,\n \"name\": \"InvalidStakeVault\",\n \"msg\": \"Provided Stake Vault does not equal the Pool Vault\"\n },\n {\n \"code\": 6009,\n \"name\": \"InvalidStakeMint\",\n \"msg\": \"Provided Stake Mint does not equal the Pool Stake Mint\"\n },\n {\n \"code\": 6010,\n \"name\": \"InvalidStakePool\",\n \"msg\": \"Provided Stake Pool does not equal the Entry Stake Pool\"\n },\n {\n \"code\": 6011,\n \"name\": \"InvalidPoolMint\",\n \"msg\": \"Provided Mint does not equal the Pool Mint\"\n },\n {\n \"code\": 6012,\n \"name\": \"ClosedStake\",\n \"msg\": \"Stake Entry is already closed and can't be used\"\n },\n {\n \"code\": 6013,\n \"name\": \"LockedStake\",\n \"msg\": \"Stake is locked, unstake is not possible\"\n },\n {\n \"code\": 6014,\n \"name\": \"UnsupportedTokenExtensions\",\n \"msg\": \"Mint has unsupported Token Extensions\"\n },\n {\n \"code\": 6015,\n \"name\": \"UnstakeRequestNotRequired\",\n \"msg\": \"Unstake request is not required\"\n },\n {\n \"code\": 6016,\n \"name\": \"UnstakeRequestRequired\",\n \"msg\": \"Stake pool has unstake period, request is required prior to unstake\"\n },\n {\n \"code\": 6017,\n \"name\": \"UnstakeTooEarly\",\n \"msg\": \"Unstake is not possible until unstake period has passed\"\n },\n {\n \"code\": 6018,\n \"name\": \"ActiveStake\",\n \"msg\": \"Stake Entry is still active, can't be closed\"\n },\n {\n \"code\": 6019,\n \"name\": \"InvalidMinDuration\",\n \"msg\": \"Minimum duration should be at least 1, for auto-unstake 7 days at least\"\n },\n {\n \"code\": 6020,\n \"name\": \"AutoUnstakeNotPossible\",\n \"msg\": \"Auto unstake is not possible with unstake period or with a permissionless pool\"\n },\n {\n \"code\": 6021,\n \"name\": \"InvalidExpiry\",\n \"msg\": \"Expiry can not be less than max duration\"\n },\n {\n \"code\": 6022,\n \"name\": \"StakePayerNotSupported\",\n \"msg\": \"Separate payer account is not supported when staking in a pool with auto-unstake\"\n },\n {\n \"code\": 6023,\n \"name\": \"StakeAmountExceedsMax\",\n \"msg\": \"Stake amount exceeds max total stake\"\n },\n {\n \"code\": 6024,\n \"name\": \"StakeDurationExceedsExpiry\",\n \"msg\": \"Stake duration exceeds stake pool expiry\"\n },\n {\n \"code\": 6025,\n \"name\": \"AccountDelegateRevoked\",\n \"msg\": \"Token account delegate has been revoked by staker, can't burn tokens\"\n },\n {\n \"code\": 6026,\n \"name\": \"RefundNotPossible\",\n \"msg\": \"Refund not possible for this stake entry\"\n }\n ],\n \"types\": [\n {\n \"name\": \"LookupTableLink\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate lookup tables for the same stake pool\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool for which tokens were staked\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the Entry\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"lookup_table\",\n \"docs\": [\n \"Pubkey of the address lookup table\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"StakeEntry\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate stakes for the same pool\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool for which tokens were staked\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Original Owner of Staked tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the Entry\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"amount\",\n \"docs\": [\n \"Amount of deposited funds\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"duration\",\n \"docs\": [\n \"Duration of the lockup\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"effective_amount\",\n \"docs\": [\n \"Effective Amount staked, does not equal to deposited amount, accounts for Stake Weight\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"created_ts\",\n \"docs\": [\n \"Timestamp when Deposit was made\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"closed_ts\",\n \"docs\": [\n \"Timestamp when entry has been closed\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"prior_total_effective_stake\",\n \"docs\": [\n \"Total effective stake at the time of staking\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"unstake_ts\",\n \"docs\": [\n \"Timestamp when unstake was requested, will be used in case `unstake_period` is set\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_sponsored\",\n \"docs\": [\n \"Whether the entry rent has been sponsored by the rent vault\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"auto_unstake\",\n \"docs\": [\n \"Whether auto unstaking is enabled, copied from the stake pool for use in instructions that don't require the stake pool account\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 38\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"StakePool\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump Seed used to sign transactions\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate pools for the same mint\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint of the Stake Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Initial Creator\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"min_weight\",\n \"docs\": [\n \"The lowest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.\",\n \"For instance:\",\n \"* `min_weight = 1 x SCALE_FACTOR_BASE` signifies a minimum multiplier of 1x for min staking duration\",\n \"* `min_weight = 2 x SCALE_FACTOR_BASE` indicates a minimum multiplier of 2x for min staking duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_weight\",\n \"docs\": [\n \"The highest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.\",\n \"For instance:\",\n \"* `max_weight = 1 x SCALE_FACTOR_BASE` signifies a max multiplier of 1x for max staking duration\",\n \"* `max_weight = 2 x SCALE_FACTOR_BASE` indicates a max multiplier of 2x for max staking duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_duration\",\n \"docs\": [\n \"Min Duration of stake in seconds\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_duration\",\n \"docs\": [\n \"Max Duration of stake in seconds, the more duration, the more weight the stake has\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"permissionless\",\n \"docs\": [\n \"Whether anyone can add Reward Pools or just admin\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that stores staked tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"stake_mint\",\n \"docs\": [\n \"Stake Mint, will be returned in exchange for stake tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"total_stake\",\n \"docs\": [\n \"Total number of Staked tokens\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_effective_stake\",\n \"docs\": [\n \"Total staked tokens accounting for each stake weight, does not equal `total_stake`,\",\n \"represents a sum of effective stake multiplied by 10^9 for precision\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"freeze_stake_mint\",\n \"docs\": [\n \"Whether we should freeze stake mint token accounts\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"unstake_period\",\n \"docs\": [\n \"Period for unstaking, if set unstake at first should be requested, and the real unstake can only happen after this period\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_total_stake_capped\",\n \"docs\": [\n \"Whether amount of total staked tokens is limited by `remaining_total_stake` - stored as separate flag to not deal with `Option`\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"remaining_total_stake\",\n \"docs\": [\n \"Remaining total amount of staked tokens (cumulative)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"expiry_ts\",\n \"docs\": [\n \"Time when stake pool expires, staking is not possible after expiration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"auto_unstake\",\n \"docs\": [\n \"Whether auto unstaking is enabled, stake entries will be unstaked after duration\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 37\n ]\n }\n }\n ]\n }\n }\n ]\n}","import { PublicKey } from \"@solana/web3.js\";\n// eslint-disable-next-line no-restricted-imports\nimport BN from \"bn.js\";\n\nimport {\n STAKE_POOL_PREFIX,\n STAKE_VAULT_PREFIX,\n STAKE_MINT_PREFIX,\n STAKE_ENTRY_PREFIX,\n REWARD_POOL_PREFIX,\n REWARD_VAULT_PREFIX,\n REWARD_ENTRY_PREFIX,\n CONFIG_PREFIX,\n FEE_VALUE_PREFIX,\n} from \"../constants.js\";\n\nexport const deriveStakePoolPDA = (\n programId: PublicKey,\n mint: PublicKey,\n authority: PublicKey,\n nonce: number,\n): PublicKey => {\n return PublicKey.findProgramAddressSync(\n [STAKE_POOL_PREFIX, mint.toBuffer(), authority.toBuffer(), new BN(nonce).toArrayLike(Buffer, \"le\", 1)],\n programId,\n )[0];\n};\n\nexport const deriveStakeVaultPDA = (programId: PublicKey, stakePool: PublicKey): PublicKey => {\n return PublicKey.findProgramAddressSync([STAKE_VAULT_PREFIX, stakePool.toBuffer()], programId)[0];\n};\n\nexport const deriveStakeMintPDA = (programId: PublicKey, stakePool: PublicKey): PublicKey => {\n return PublicKey.findProgramAddressSync([STAKE_MINT_PREFIX, stakePool.toBuffer()], programId)[0];\n};\n\nexport const deriveStakeEntryPDA = (\n programId: PublicKey,\n stakePool: PublicKey,\n authority: PublicKey,\n nonce: number,\n): PublicKey => {\n return PublicKey.findProgramAddressSync(\n [STAKE_ENTRY_PREFIX, stakePool.toBuffer(), authority.toBuffer(), new BN(nonce).toArrayLike(Buffer, \"le\", 4)],\n programId,\n )[0];\n};\n\nexport const deriveRewardPoolPDA = (\n programId: PublicKey,\n stakePool: PublicKey,\n mint: PublicKey,\n nonce: number,\n): PublicKey => {\n return PublicKey.findProgramAddressSync(\n [REWARD_POOL_PREFIX, stakePool.toBuffer(), mint.toBuffer(), new BN(nonce).toArrayLike(Buffer, \"le\", 1)],\n programId,\n )[0];\n};\n\nexport const deriveRewardVaultPDA = (programId: PublicKey, rewardPool: PublicKey): PublicKey => {\n return PublicKey.findProgramAddressSync([REWARD_VAULT_PREFIX, rewardPool.toBuffer()], programId)[0];\n};\n\nexport const deriveRewardEntryPDA = (programId: PublicKey, rewardPool: PublicKey, stakeEntry: PublicKey): PublicKey => {\n return PublicKey.findProgramAddressSync(\n [REWARD_ENTRY_PREFIX, rewardPool.toBuffer(), stakeEntry.toBuffer()],\n programId,\n )[0];\n};\n\nexport const deriveConfigPDA = (programId: PublicKey): PublicKey => {\n return PublicKey.findProgramAddressSync([CONFIG_PREFIX], programId)[0];\n};\n\nexport const deriveFeeValuePDA = (programId: PublicKey, target: PublicKey): PublicKey => {\n return PublicKey.findProgramAddressSync([FEE_VALUE_PREFIX, target.toBuffer()], programId)[0];\n};\n","import type { AccountsCoder, AnchorError, Idl, IdlAccounts, ProgramAccount, ProgramError } from \"@coral-xyz/anchor\";\nimport { Program, parseIdlErrors, translateError } from \"@coral-xyz/anchor\";\nimport { TOKEN_PROGRAM_ID, getAssociatedTokenAddressSync } from \"@solana/spl-token\";\nimport {\n type Commitment,\n Connection,\n type ConnectionConfig,\n PublicKey,\n type TransactionInstruction,\n} from \"@solana/web3.js\";\nimport { ContractError, ICluster, type ITransactionResult, invariant } from \"@streamflow/common\";\nimport {\n buildSendThrottler,\n checkOrCreateAtaBatch,\n createAndEstimateTransaction,\n getFilters,\n pk,\n prepareBaseInstructions,\n prepareTransaction,\n signAndExecuteTransaction,\n unwrapExecutionParams,\n} from \"@streamflow/common\";\nimport type PQueue from \"p-queue\";\nimport BN from \"bn.js\";\n\nimport {\n REWARD_ENTRY_BYTE_OFFSETS,\n REWARD_POOL_BYTE_OFFSETS,\n REWARD_POOL_DYNAMIC_PROGRAM_ID,\n REWARD_POOL_PROGRAM_ID,\n STAKE_ENTRY_BYTE_OFFSETS,\n STAKE_POOL_BYTE_OFFSETS,\n STAKE_POOL_PROGRAM_ID,\n STREAMFLOW_TREASURY_PUBLIC_KEY,\n} from \"./constants.js\";\nimport { type FeeManager as FeeManagerProgramType } from \"./descriptor/fee_manager.js\";\nimport GovernorIDL from \"./descriptor/idl/governor.json\";\nimport FeeManagerIDL from \"./descriptor/idl/fee_manager.json\";\nimport RewardPoolIDL from \"./descriptor/idl/reward_pool.json\";\nimport RewardPoolDynamicIDL from \"./descriptor/idl/reward_pool_dynamic.json\";\nimport StakePoolIDL from \"./descriptor/idl/stake_pool.json\";\nimport { type Governor as GovernorProgramType } from \"./descriptor/governor.js\";\nimport { type RewardPool as RewardPoolProgramType } from \"./descriptor/reward_pool.js\";\nimport { type RewardPoolDynamic as RewardPoolDynamicProgramType } from \"./descriptor/reward_pool_dynamic.js\";\nimport { type StakePool as StakePoolProgramType } from \"./descriptor/stake_pool.js\";\nimport {\n deriveConfigPDA,\n deriveFeeValuePDA,\n deriveRewardPoolPDA,\n deriveRewardVaultPDA,\n deriveStakeEntryPDA,\n deriveStakePoolPDA,\n} from \"./lib/derive-accounts.js\";\nimport type {\n ClaimRewardPoolArgs,\n CloseRewardEntryArgs,\n CloseStakeEntryArgs,\n CreateRewardEntryArgs,\n CreateRewardPoolArgs,\n CreateStakePoolArgs,\n DefaultFeeValueConfig,\n FeeValue,\n FundPoolArgs,\n IInteractExt,\n RewardEntry,\n RewardPool,\n StakeAndCreateEntriesArgs,\n StakeArgs,\n StakeEntry,\n StakePool,\n UnstakeAndClaimArgs,\n UnstakeAndCloseArgs,\n UnstakeArgs,\n UpdateRewardPoolArgs,\n} from \"./types.js\";\n\ninterface Programs {\n stakePoolProgram: Program<StakePoolProgramType>;\n rewardPoolProgram: Program<RewardPoolProgramType>;\n rewardPoolDynamicProgram: Program<RewardPoolDynamicProgramType>;\n feeManagerProgram: Program<FeeManagerProgramType>;\n governor: Program<GovernorProgramType>;\n}\n\ntype CreationResult = ITransactionResult & { metadataId: PublicKey };\n\ninterface IInitOptions {\n clusterUrl: string;\n cluster?: ICluster;\n commitment?: Commitment | ConnectionConfig;\n programIds?: {\n stakePool?: string;\n rewardPool?: string;\n rewardPoolDynamic?: string;\n feeManager?: string;\n governor?: string;\n };\n sendRate?: number;\n sendThrottler?: PQueue;\n}\n\nexport class SolanaStakingClient {\n connection: Connection;\n\n private readonly cluster: ICluster;\n\n private readonly commitment: Commitment | ConnectionConfig;\n\n private readonly sendThrottler: PQueue;\n\n public readonly programs: Programs;\n\n constructor({\n clusterUrl,\n cluster = ICluster.Mainnet,\n commitment = \"confirmed\",\n programIds,\n sendRate = 1,\n sendThrottler,\n }: IInitOptions) {\n this.cluster = cluster;\n this.commitment = commitment;\n this.connection = new Connection(clusterUrl, this.commitment);\n this.sendThrottler = sendThrottler ?? buildSendThrottler(sendRate);\n const stakePoolIdl = {\n ...StakePoolIDL,\n address: programIds?.stakePool ?? STAKE_POOL_PROGRAM_ID[cluster] ?? StakePoolIDL.address,\n } as StakePoolProgramType;\n const rewardPoolIdl = {\n ...RewardPoolIDL,\n address: programIds?.rewardPool ?? REWARD_POOL_PROGRAM_ID[cluster] ?? RewardPoolIDL.address,\n } as RewardPoolProgramType;\n const rewardPoolDynamicIdl = {\n ...RewardPoolDynamicIDL,\n address: programIds?.rewardPool ?? REWARD_POOL_DYNAMIC_PROGRAM_ID[cluster] ?? RewardPoolDynamicIDL.address,\n } as RewardPoolDynamicProgramType;\n const feeManagerIdl = {\n ...FeeManagerIDL,\n address: programIds?.feeManager ?? FeeManagerIDL.address,\n } as FeeManagerProgramType;\n const governorIdl = {\n ...GovernorIDL,\n address: programIds?.governor ?? GovernorIDL.address,\n };\n this.programs = {\n stakePoolProgram: new Program(stakePoolIdl, {\n connection: this.connection,\n }) as Program<StakePoolProgramType>,\n rewardPoolProgram: new Program(rewardPoolIdl, {\n connection: this.connection,\n }) as Program<RewardPoolProgramType>,\n rewardPoolDynamicProgram: new Program(rewardPoolDynamicIdl, {\n connection: this.connection,\n }) as Program<RewardPoolDynamicProgramType>,\n feeManagerProgram: new Program(feeManagerIdl, {\n connection: this.connection,\n }) as Program<FeeManagerProgramType>,\n governor: new Program(governorIdl, {\n connection: this.connection,\n }) as Program<GovernorProgramType>,\n };\n }\n\n getCurrentProgramId(programKey: keyof Programs): PublicKey {\n const program = this.programs[programKey];\n invariant(program, `Program ${programKey} is not found`);\n return program.programId;\n }\n\n getCommitment(): Commitment | undefined {\n return typeof this.commitment == \"string\" ? this.commitment : this.commitment.commitment;\n }\n\n async getStakePool(id: string | PublicKey): Promise<StakePool> {\n const { stakePoolProgram } = this.programs;\n return stakePoolProgram.account.stakePool.fetch(id);\n }\n\n async searchStakePools(\n criteria: Partial<Pick<StakePool, keyof typeof STAKE_POOL_BYTE_OFFSETS>> = {},\n ): Promise<ProgramAccount<StakePool>[]> {\n const { stakePoolProgram } = this.programs;\n return stakePoolProgram.account.stakePool.all(getFilters(criteria, STAKE_POOL_BYTE_OFFSETS));\n }\n\n async getStakeEntry(id: string | PublicKey): Promise<StakeEntry | null> {\n const { stakePoolProgram } = this.programs;\n return stakePoolProgram.account.stakeEntry.fetch(id);\n }\n\n async searchStakeEntries(\n criteria: Partial<Pick<StakeEntry, keyof typeof STAKE_ENTRY_BYTE_OFFSETS>> = {},\n ): Promise<ProgramAccount<StakeEntry>[]> {\n const { stakePoolProgram } = this.programs;\n return stakePoolProgram.account.stakeEntry.all(getFilters(criteria, STAKE_ENTRY_BYTE_OFFSETS));\n }\n\n async searchRewardPools(\n criteria: Partial<Pick<RewardPool, \"stakePool\" | \"mint\">> = {},\n ): Promise<ProgramAccount<RewardPool>[]> {\n const { rewardPoolProgram } = this.programs;\n return rewardPoolProgram.account.rewardPool.all(getFilters(criteria, REWARD_POOL_BYTE_OFFSETS));\n }\n\n async searchRewardEntries(\n criteria: Partial<Pick<RewardEntry, keyof typeof REWARD_ENTRY_BYTE_OFFSETS>>,\n ): Promise<ProgramAccount<RewardEntry>[]> {\n const { rewardPoolProgram } = this.programs;\n return rewardPoolProgram.account.rewardEntry.all(getFilters(criteria, REWARD_ENTRY_BYTE_OFFSETS));\n }\n\n async getFee(target: string | PublicKey): Promise<FeeValue | DefaultFeeValueConfig> {\n const perTargetFee = await this.getFeeValueIfExists(target);\n if (perTargetFee) {\n return perTargetFee;\n }\n return this.getDefaultFeeValue();\n }\n\n getDefaultFeeValue(): Promise<DefaultFeeValueConfig> {\n const { feeManagerProgram } = this.programs;\n const feeValueKey = deriveConfigPDA(feeManagerProgram.programId);\n return feeManagerProgram.account.config.fetch(feeValueKey);\n }\n\n getFeeValueIfExists(target: string | PublicKey): Promise<FeeValue | null> {\n const { feeManagerProgram } = this.programs;\n const feeValueKey = deriveFeeValuePDA(feeManagerProgram.programId, new PublicKey(target));\n return feeManagerProgram.account.feeValue.fetchNullable(feeValueKey);\n }\n\n async createStakePool(data: CreateStakePoolArgs, extParams: IInteractExt): Promise<CreationResult> {\n const { ixs, publicKey } = await this.prepareCreateStakePoolInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n metadataId: publicKey,\n };\n }\n\n async prepareCreateStakePoolInstructions(\n {\n maxWeight,\n maxDuration,\n minDuration,\n mint,\n permissionless = false,\n freezeStakeMint = null,\n unstakePeriod = null,\n maxTotalStakeCumulative,\n expiryTs,\n autoUnstake,\n nonce,\n tokenProgramId = TOKEN_PROGRAM_ID,\n }: CreateStakePoolArgs,\n extParams: IInteractExt,\n ) {\n const { stakePoolProgram } = this.programs;\n const creator = extParams.invoker.publicKey;\n const v2ParamsSet = maxTotalStakeCumulative !== undefined || expiryTs !== undefined || autoUnstake !== undefined;\n invariant(creator, \"Undefined invoker publicKey\");\n const createInstruction = await (\n v2ParamsSet\n ? stakePoolProgram.methods.createPoolV2(\n nonce,\n maxWeight,\n minDuration,\n maxDuration,\n permissionless,\n freezeStakeMint ?? false,\n unstakePeriod ?? new BN(0),\n maxTotalStakeCumulative ?? new BN(0),\n expiryTs ?? new BN(0),\n autoUnstake ?? false,\n )\n : stakePoolProgram.methods.createPool(\n nonce,\n maxWeight,\n minDuration,\n maxDuration,\n permissionless,\n freezeStakeMint,\n unstakePeriod,\n )\n )\n .accounts({\n creator,\n mint,\n tokenProgram: tokenProgramId,\n })\n .instruction();\n\n const stakePoolPDA = deriveStakePoolPDA(stakePoolProgram.programId, pk(mint), creator, nonce);\n\n return { ixs: [createInstruction], publicKey: stakePoolPDA };\n }\n\n async stake(data: StakeArgs, extParams: IInteractExt): Promise<ITransactionResult> {\n const { ixs } = await this.prepareStakeInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n /**\n * Stake into a Pool and creates Reward Entries to track rewards.\n *\n * Resulting transaction may bee too large for execution if there are too many reward pools.\n *\n * @param data - enriched stake params with an array of reward pools\n * @param extParams - parameter required for transaction execution\n */\n async stakeAndCreateEntries(\n data: StakeAndCreateEntriesArgs,\n extParams: IInteractExt,\n ): Promise<ITransactionResult> {\n const { ixs } = await this.prepareStakeAndCreateEntriesInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareStakeAndCreateEntriesInstructions(\n data: StakeAndCreateEntriesArgs,\n extParams: IInteractExt,\n ): Promise<{\n ixs: TransactionInstruction[];\n }> {\n const ixs = await Promise.all([\n this.prepareStakeInstructions(data, extParams).then(({ ixs }) => ixs),\n ...data.rewardPools.map((params) =>\n this.prepareCreateRewardEntryInstructions(\n {\n stakePool: data.stakePool,\n stakePoolMint: data.stakePoolMint,\n depositNonce: data.nonce,\n rewardPoolNonce: params.nonce,\n rewardMint: params.mint,\n tokenProgramId: params.tokenProgramId,\n rewardPoolType: params.rewardPoolType,\n },\n extParams,\n ).then(({ ixs }) => ixs),\n ),\n ]).then((ixs) => ixs.flat());\n\n return { ixs };\n }\n\n async prepareStakeInstructions(\n { nonce, amount, duration, stakePool, stakePoolMint, tokenProgramId = TOKEN_PROGRAM_ID }: StakeArgs,\n extParams: IInteractExt,\n ): Promise<{\n ixs: TransactionInstruction[];\n }> {\n const { stakePoolProgram } = this.programs;\n const staker = extParams.invoker.publicKey;\n invariant(staker, \"Undefined invoker publicKey\");\n const poolMintAccountKey = getAssociatedTokenAddressSync(pk(stakePoolMint), staker, true, pk(tokenProgramId));\n const instruction = await stakePoolProgram.methods\n .stake(nonce, amount, duration)\n .accounts({\n stakePool: stakePool,\n tokenProgram: tokenProgramId,\n from: poolMintAccountKey,\n authority: staker,\n payer: staker,\n })\n .instruction();\n\n return { ixs: [instruction] };\n }\n\n async unstake(data: UnstakeArgs, extParams: IInteractExt): Promise<ITransactionResult> {\n const { ixs } = await this.prepareUnstakeInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n /**\n * Unstake from a pool, claiming all rewards prior to that.\n *\n * Resulting transaction may be too large for execution if there are too many reward pools.\n *\n * @param data - enriched unstake args with reward pools\n * @param extParams - parameter required for transaction execution\n */\n async unstakeAndClaim(data: UnstakeAndClaimArgs, extParams: IInteractExt): Promise<ITransactionResult> {\n const { ixs } = await this.prepareUnstakeAndClaimInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareUnstakeAndClaimInstructions(\n data: UnstakeAndClaimArgs,\n extParams: IInteractExt,\n ): Promise<{\n ixs: TransactionInstruction[];\n }> {\n const ixs = await Promise.all([\n ...data.rewardPools.map((params) =>\n this.prepareClaimRewardsInstructions(\n {\n stakePool: data.stakePool,\n stakePoolMint: data.stakePoolMint,\n depositNonce: data.nonce,\n rewardPoolNonce: params.nonce,\n rewardMint: params.mint,\n tokenProgramId: params.tokenProgramId,\n rewardPoolType: params.rewardPoolType,\n governor: params.governor,\n vote: params.vote,\n },\n extParams,\n ).then(({ ixs }) => ixs),\n ),\n this.prepareUnstakeAndCloseInstructions(data, extParams).then(({ ixs }) => ixs),\n ]).then((ixs) => ixs.flat());\n\n return { ixs };\n }\n\n /**\n * Unstake from a pool, closing all related stake and reward entries.\n *\n * REWARDS WON'T be claimed - use this call only if user can't unstake with rewards claims, i.e. when reward pool is drained.\n *\n * Resulting transaction may be too large for execution if there are too many reward pools.\n *\n * @param data - enriched unstake args with reward pools\n * @param extParams - parameter required for transaction execution\n */\n async unstakeAndClose(data: UnstakeAndCloseArgs, extParams: IInteractExt): Promise<ITransactionResult> {\n const { ixs } = await this.prepareUnstakeAndCloseInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareUnstakeAndCloseInstructions(\n data: UnstakeAndCloseArgs,\n extParams: IInteractExt,\n ): Promise<{\n ixs: TransactionInstruction[];\n }> {\n const ixs = await Promise.all([\n this.prepareUnstakeInstructions({ ...data, shouldClose: true }, extParams).then(({ ixs }) => ixs),\n ...data.rewardPools.map((params) =>\n this.prepareCloseRewardEntryInstructions(\n {\n stakePool: data.stakePool,\n stakePoolMint: data.stakePoolMint,\n depositNonce: data.nonce,\n rewardPoolNonce: params.nonce,\n rewardMint: params.mint,\n tokenProgramId: params.tokenProgramId,\n rewardPoolType: params.rewardPoolType,\n },\n extParams,\n ).then(({ ixs }) => ixs),\n ),\n ]).then((ixs) => ixs.flat());\n\n return { ixs };\n }\n\n async prepareUnstakeInstructions(\n { stakePool, stakePoolMint, nonce, tokenProgramId = TOKEN_PROGRAM_ID, shouldClose = false }: UnstakeArgs,\n extParams: IInteractExt,\n ): Promise<{\n ixs: TransactionInstruction[];\n }> {\n const { stakePoolProgram } = this.programs;\n const staker = extParams.invoker.publicKey;\n invariant(staker, \"Undefined invoker publicKey\");\n const stakeEntryKey = deriveStakeEntryPDA(stakePoolProgram.programId, pk(stakePool), staker, nonce);\n const poolMintAccountKey = getAssociatedTokenAddressSync(pk(stakePoolMint), staker, true, pk(tokenProgramId));\n const instruction = await stakePoolProgram.methods\n .unstake(shouldClose)\n .accounts({\n stakeEntry: stakeEntryKey,\n to: poolMintAccountKey,\n authority: staker,\n tokenProgram: tokenProgramId,\n })\n .instruction();\n\n return { ixs: [instruction] };\n }\n\n async closeStakeEntry(data: CloseStakeEntryArgs, extParams: IInteractExt) {\n const { ixs } = await this.prepareCloseStakeEntryInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareCloseStakeEntryInstructions({ stakePool, nonce }: CloseStakeEntryArgs, extParams: IInteractExt) {\n const { stakePoolProgram } = this.programs;\n const staker = extParams.invoker.publicKey;\n invariant(staker, \"Undefined invoker publicKey\");\n const stakeEntryKey = deriveStakeEntryPDA(stakePoolProgram.programId, pk(stakePool), staker, nonce);\n const instruction = await stakePoolProgram.methods\n .closeEntry()\n .accounts({\n stakeEntry: stakeEntryKey,\n authority: staker,\n })\n .instruction();\n return { ixs: [instruction] };\n }\n\n async createRewardPool(data: CreateRewardPoolArgs, extParams: IInteractExt): Promise<CreationResult> {\n const { ixs, publicKey } = await this.prepareCreateRewardPoolInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n metadataId: publicKey,\n };\n }\n\n async prepareCreateRewardPoolInstructions(\n {\n nonce,\n rewardAmount,\n rewardPeriod,\n rewardMint,\n permissionless = false,\n stakePool,\n lastClaimPeriodOpt,\n tokenProgramId = TOKEN_PROGRAM_ID,\n }: CreateRewardPoolArgs,\n extParams: IInteractExt,\n ) {\n const { rewardPoolProgram } = this.programs;\n const creator = extParams.invoker.publicKey;\n invariant(creator, \"Undefined invoker publicKey\");\n const instruction = await rewardPoolProgram.methods\n .createPool(nonce, rewardAmount, rewardPeriod, permissionless, lastClaimPeriodOpt)\n .accounts({\n creator,\n stakePool,\n mint: rewardMint,\n tokenProgram: tokenProgramId,\n })\n .instruction();\n\n const rewardPoolKey = deriveRewardPoolPDA(rewardPoolProgram.programId, pk(stakePool), pk(rewardMint), nonce);\n\n return { publicKey: rewardPoolKey, ixs: [instruction] };\n }\n\n async claimRewards(data: ClaimRewardPoolArgs, extParams: IInteractExt): Promise<ITransactionResult> {\n const { ixs } = await this.prepareClaimRewardsInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareClaimRewardsInstructions(\n {\n rewardPoolNonce,\n depositNonce,\n stakePool,\n tokenProgramId = TOKEN_PROGRAM_ID,\n rewardMint,\n rewardPoolType = \"fixed\",\n governor,\n vote,\n }: ClaimRewardPoolArgs,\n extParams: IInteractExt,\n ) {\n const rewardPoolProgram = this.getRewardProgram(rewardPoolType);\n const { stakePoolProgram } = this.programs;\n const staker = extParams.invoker.publicKey;\n invariant(staker, \"Undefined invoker publicKey\");\n const rewardPoolKey = deriveRewardPoolPDA(\n rewardPoolProgram.programId,\n pk(stakePool),\n pk(rewardMint),\n rewardPoolNonce,\n );\n let ixBuilder = rewardPoolProgram.methods.claimRewards().accounts({\n stakeEntry: deriveStakeEntryPDA(stakePoolProgram.programId, pk(stakePool), staker, depositNonce),\n rewardPool: rewardPoolKey,\n claimant: staker,\n tokenProgram: tokenProgramId,\n to: getAssociatedTokenAddressSync(pk(rewardMint), staker, true, pk(tokenProgramId)),\n });\n\n if (this.isDynamicRewardProgram(rewardPoolProgram)) {\n if (governor === undefined) {\n governor = (await rewardPoolProgram.account.rewardPool.fetch(rewardPoolKey)).governor;\n }\n // @ts-expect-error\n ixBuilder = ixBuilder.accountsPartial({ governor, vote: vote ?? null });\n }\n\n return { ixs: [await ixBuilder.instruction()] };\n }\n\n async fundPool(data: FundPoolArgs, extParams: IInteractExt): Promise<ITransactionResult> {\n const { ixs } = await this.prepareFundPoolInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareFundPoolInstructions(\n {\n amount,\n tokenProgramId = TOKEN_PROGRAM_ID,\n rewardMint,\n stakePool,\n feeValue,\n nonce,\n rewardPoolType = \"fixed\",\n }: FundPoolArgs,\n extParams: IInteractExt,\n ) {\n const rewardPoolProgram = this.getRewardProgram(rewardPoolType);\n const staker = extParams.invoker.publicKey;\n invariant(staker, \"Undefined invoker publicKey\");\n const existingFee = await this.getFeeValueIfExists(staker);\n const rewardMintPk = pk(rewardMint);\n const tokenProgramPk = pk(tokenProgramId);\n const treasuryATA =\n !existingFee || existingFee.streamflowFee.gtn(0)\n ? await checkOrCreateAtaBatch(\n this.connection,\n [STREAMFLOW_TREASURY_PUBLIC_KEY],\n rewardMintPk,\n extParams.invoker,\n tokenProgramPk,\n )\n : null;\n const rewardPoolPda = deriveRewardPoolPDA(rewardPoolProgram.programId, pk(stakePool), rewardMintPk, nonce);\n const instruction = await rewardPoolProgram.methods\n .fundPool(amount)\n .accountsPartial({\n funder: staker,\n rewardPool: rewardPoolPda,\n from: getAssociatedTokenAddressSync(rewardMintPk, staker, true, tokenProgramPk),\n tokenProgram: tokenProgramId,\n vault: deriveRewardVaultPDA(rewardPoolProgram.programId, rewardPoolPda),\n mint: rewardMint,\n feeValue,\n })\n .instruction();\n\n return { ixs: treasuryATA ? treasuryATA.concat([instruction]) : [instruction] };\n }\n\n async createRewardEntry(data: CreateRewardEntryArgs, extParams: IInteractExt): Promise<ITransactionResult> {\n const { ixs } = await this.prepareCreateRewardEntryInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareCreateRewardEntryInstructions(\n { stakePool, rewardPoolNonce, depositNonce, rewardMint, rewardPoolType = \"fixed\" }: CreateRewardEntryArgs,\n extParams: IInteractExt,\n ) {\n const rewardPoolProgram = this.getRewardProgram(rewardPoolType);\n const { stakePoolProgram } = this.programs;\n const staker = extParams.invoker.publicKey;\n invariant(staker, \"Undefined invoker publicKey\");\n const instruction = await rewardPoolProgram.methods\n .createEntry()\n .accounts({\n payer: staker,\n authority: staker,\n stakeEntry: deriveStakeEntryPDA(stakePoolProgram.programId, pk(stakePool), staker, depositNonce),\n rewardPool: deriveRewardPoolPDA(rewardPoolProgram.programId, pk(stakePool), pk(rewardMint), rewardPoolNonce),\n })\n .accountsPartial({\n stakePool,\n })\n .instruction();\n\n return { ixs: [instruction] };\n }\n\n async closeRewardEntry(data: CloseRewardEntryArgs, extParams: IInteractExt): Promise<ITransactionResult> {\n const { ixs } = await this.prepareCloseRewardEntryInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareCloseRewardEntryInstructions(\n { stakePool, rewardPoolNonce, depositNonce, rewardMint, rewardPoolType = \"fixed\" }: CreateRewardEntryArgs,\n extParams: IInteractExt,\n ) {\n const rewardPoolProgram = this.getRewardProgram(rewardPoolType);\n const staker = extParams.invoker.publicKey;\n invariant(staker, \"Undefined invoker publicKey\");\n const instruction = await rewardPoolProgram.methods\n .closeEntry(depositNonce)\n .accounts({\n authority: staker,\n rewardPool: deriveRewardPoolPDA(rewardPoolProgram.programId, pk(stakePool), pk(rewardMint), rewardPoolNonce),\n })\n .instruction();\n\n return { ixs: [instruction] };\n }\n\n async updateRewardPool(data: UpdateRewardPoolArgs, extParams: IInteractExt) {\n const { ixs } = await this.prepareUpdateRewardPoolInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareUpdateRewardPoolInstructions(\n { rewardPool, rewardAmount, rewardPeriod, stakePool }: UpdateRewardPoolArgs,\n extParams: IInteractExt,\n ) {\n const { rewardPoolProgram } = this.programs;\n const invoker = extParams.invoker.publicKey;\n invariant(invoker, \"Undefined invoker publicKey\");\n const instruction = await rewardPoolProgram.methods\n .updatePool(rewardAmount, rewardPeriod)\n .accountsPartial({\n stakePool,\n authority: invoker,\n rewardPool,\n })\n .instruction();\n\n return { ixs: [instruction] };\n }\n\n decode<\n ProgramName extends keyof Programs = keyof Programs,\n DecodingProgram = Programs[ProgramName],\n DerivedIdl extends Idl = DecodingProgram extends Program<infer IDLType> ? IDLType : never,\n AccountName extends keyof IdlAccounts<DerivedIdl> = keyof IdlAccounts<DerivedIdl>,\n DecodedAccount = IdlAccounts<DerivedIdl>[AccountName],\n >(\n programKey: ProgramName,\n accountName: AccountName,\n accInfo: Parameters<AccountsCoder[\"decode\"]>[1],\n ): DecodedAccount {\n const decodingProgram = this.programs[programKey];\n invariant(decodingProgram, `Decoding program with key ${programKey} is not available`);\n return decodingProgram.coder.accounts.decode(accountName.toString(), accInfo);\n }\n\n getDiscriminator<\n ProgramName extends keyof Programs = keyof Programs,\n DecodingProgram = Programs[ProgramName],\n DerivedIdl extends Idl = DecodingProgram extends Program<infer IDLType> ? IDLType : never,\n AccountName extends keyof IdlAccounts<DerivedIdl> = keyof IdlAccounts<DerivedIdl>,\n >(programKey: ProgramName, accountName: AccountName): number[] {\n const decodingProgram = this.programs[programKey];\n invariant(decodingProgram, `Decoding program with key ${programKey} is not available`);\n const accountEntity = decodingProgram.idl.accounts.find((acc) => acc.name === accountName);\n invariant(\n accountEntity,\n `Decoding program with key ${programKey} doesn't specify account with name ${accountName.toString()}`,\n );\n return accountEntity.discriminator;\n }\n\n async execute(ixs: TransactionInstruction[], extParams: IInteractExt) {\n const executionParams = unwrapExecutionParams(extParams, this.connection);\n\n ixs = await createAndEstimateTransaction(\n async (params) => prepareBaseInstructions(this.connection, params).concat(ixs),\n executionParams,\n );\n\n const { tx, hash, context } = await prepareTransaction(this.connection, ixs, extParams.invoker.publicKey);\n\n try {\n const signature = await signAndExecuteTransaction(\n this.connection,\n extParams.invoker,\n tx,\n {\n hash,\n context,\n commitment: this.getCommitment(),\n },\n { sendThrottler: this.sendThrottler, skipSimulation: executionParams.skipSimulation },\n );\n return { signature };\n } catch (err: unknown) {\n if (err instanceof Error) {\n const parsed: AnchorError | ProgramError | typeof err = translateError(\n err,\n parseIdlErrors(this.programs.stakePoolProgram.idl), // TODO how to catch an error from a specific program?\n );\n if (parsed) {\n throw new ContractError(err, parsed.name, parsed.message);\n }\n }\n throw err;\n }\n }\n\n private getRewardProgram(type: \"fixed\"): Program<RewardPoolProgramType>;\n private getRewardProgram(type: \"dynamic\"): Program<RewardPoolDynamicProgramType>;\n private getRewardProgram(\n type: \"fixed\" | \"dynamic\",\n ): Program<RewardPoolProgramType> | Program<RewardPoolDynamicProgramType>;\n private getRewardProgram(\n type: \"fixed\" | \"dynamic\",\n ): Program<RewardPoolProgramType> | Program<RewardPoolDynamicProgramType> {\n if (type === \"dynamic\") {\n return this.programs.rewardPoolDynamicProgram;\n } else {\n return this.programs.rewardPoolProgram;\n }\n }\n\n private isDynamicRewardProgram = (\n program: Program<RewardPoolProgramType> | Program<RewardPoolDynamicProgramType>,\n ): program is Program<RewardPoolDynamicProgramType> => {\n return program.programId.equals(this.programs.rewardPoolDynamicProgram.programId);\n };\n}\n","import type { ProgramAccount } from \"@coral-xyz/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\n// eslint-disable-next-line no-restricted-imports\nimport BN from \"bn.js\";\nimport { getBN, getNumberFromBN } from \"@streamflow/common\";\n\nimport type { RewardEntry, RewardPool, StakeEntry } from \"../types.js\";\nimport { REWARD_AMOUNT_DECIMALS, REWARD_AMOUNT_PRECISION_FACTOR_BN, SCALE_PRECISION_FACTOR_BN } from \"../constants.js\";\n\nexport class RewardEntryAccumulator implements RewardEntry {\n lastAccountedTs: BN;\n\n claimedAmount: BN;\n\n accountedAmount: BN;\n\n rewardPool: PublicKey;\n\n stakeEntry: PublicKey;\n\n createdTs: BN;\n\n lastRewardAmount: BN;\n\n lastRewardPeriod: BN;\n\n isSponsored: boolean;\n\n buffer: number[];\n\n constructor(\n lastAccountedTs: BN,\n claimedAmount: BN,\n accountedAmount: BN,\n rewardPool: PublicKey,\n stakeEntry: PublicKey,\n createdTs: BN,\n lastRewardAmount: BN,\n lastRewardPeriod: BN,\n isSponsored: boolean,\n buffer: number[],\n ) {\n this.lastAccountedTs = lastAccountedTs;\n this.claimedAmount = claimedAmount;\n this.accountedAmount = accountedAmount;\n this.rewardPool = rewardPool;\n this.stakeEntry = stakeEntry;\n this.createdTs = createdTs;\n this.isSponsored = isSponsored;\n this.buffer = buffer;\n this.lastRewardAmount = lastRewardAmount;\n this.lastRewardPeriod = lastRewardPeriod;\n }\n\n static fromEntry(entry: RewardEntry): RewardEntryAccumulator {\n return new this(\n entry.lastAccountedTs,\n entry.claimedAmount,\n entry.accountedAmount,\n entry.rewardPool,\n entry.stakeEntry,\n entry.createdTs,\n entry.lastRewardAmount,\n entry.lastRewardPeriod,\n entry.isSponsored,\n entry.buffer,\n );\n }\n\n // Calculate accountable amount by calculating how many seconds have passed since last claim/stake time\n getAccountableAmount(\n stakedTs: BN,\n accountableTs: BN,\n effectiveStakedAmount: BN,\n rewardAmount: BN,\n rewardPeriod: BN,\n ): BN {\n const lastAccountedTs = this.lastAccountedTs.gt(new BN(0)) ? this.lastAccountedTs : stakedTs;\n const secondsPassed = accountableTs.sub(lastAccountedTs);\n\n if (secondsPassed.lt(rewardPeriod)) {\n return new BN(0);\n }\n\n const periodsPassed = secondsPassed.div(rewardPeriod);\n\n const claimablePerEffectiveStake = periodsPassed.mul(rewardAmount);\n\n return claimablePerEffectiveStake.mul(effectiveStakedAmount).div(SCALE_PRECISION_FACTOR_BN);\n }\n\n // Calculates claimable amount from accountable amount.\n getClaimableAmount(): BN {\n const claimedAmount = this.claimedAmount.mul(REWARD_AMOUNT_PRECISION_FACTOR_BN);\n const nonClaimedAmount = this.accountedAmount.sub(claimedAmount);\n return nonClaimedAmount.div(REWARD_AMOUNT_PRECISION_FACTOR_BN);\n }\n\n // Get the time of the last unlock\n getLastAccountedTs(stakedTs: BN, claimableTs: BN, rewardPeriod: BN): BN {\n const lastAccountedTs = this.lastAccountedTs.gtn(0) ? this.lastAccountedTs : stakedTs;\n const totalSecondsPassed = claimableTs.sub(lastAccountedTs);\n const periodsPassed = totalSecondsPassed.div(rewardPeriod);\n const periodsToSeconds = periodsPassed.mul(rewardPeriod);\n return lastAccountedTs.add(periodsToSeconds);\n }\n\n // Adds accounted amount\n addAccountedAmount(accountedAmount: BN): void {\n this.accountedAmount = this.accountedAmount.add(accountedAmount);\n }\n\n // Adds claimed amount\n addClaimedAmount(claimedAmount: BN): void {\n this.claimedAmount = this.claimedAmount.add(claimedAmount);\n }\n}\n\nconst createDefaultRewardEntry = (\n stakeEntry: ProgramAccount<StakeEntry>,\n rewardPool: ProgramAccount<RewardPool>,\n): RewardEntry => {\n return {\n stakeEntry: new PublicKey(stakeEntry.publicKey),\n rewardPool: new PublicKey(rewardPool.publicKey),\n createdTs: stakeEntry.account.createdTs,\n lastAccountedTs: new BN(0),\n lastRewardAmount: new BN(0),\n lastRewardPeriod: new BN(0),\n accountedAmount: new BN(0),\n claimedAmount: new BN(0),\n isSponsored: false,\n buffer: [],\n };\n};\n\nexport const calcRewards = (\n rewardEntryAccount: ProgramAccount<RewardEntry> | undefined,\n stakeEntryAccount: ProgramAccount<StakeEntry>,\n rewardPoolAccount: ProgramAccount<RewardPool>,\n) => {\n const rewardEntry: RewardEntry =\n rewardEntryAccount?.account ?? createDefaultRewardEntry(stakeEntryAccount, rewardPoolAccount);\n const stakeEntry = stakeEntryAccount.account;\n const rewardPool = rewardPoolAccount.account;\n\n const rewardEntryAccumulator = RewardEntryAccumulator.fromEntry(rewardEntry);\n if (rewardEntryAccumulator.createdTs.lt(stakeEntry.createdTs)) {\n throw new Error(\"InvalidRewardEntry\");\n }\n\n const currTs = Math.floor(Date.now() / 1000);\n\n const stakedTs = rewardPool.createdTs ? BN.max(stakeEntry.createdTs, rewardPool.createdTs) : stakeEntry.createdTs;\n const claimableTs = stakeEntry.closedTs.gtn(0) ? stakeEntry.closedTs : new BN(currTs);\n\n const amountUpdated =\n !rewardPool.rewardAmount.eq(rewardPool.lastRewardAmount) &&\n rewardPool.lastAmountUpdateTs.gt(stakeEntry.createdTs) &&\n rewardPool.lastAmountUpdateTs.gt(stakeEntry.closedTs);\n const periodUpdated =\n !rewardPool.rewardPeriod.eq(rewardPool.lastRewardPeriod) &&\n rewardPool.lastPeriodUpdateTs.gt(stakeEntry.createdTs) &&\n rewardPool.lastPeriodUpdateTs.gt(stakeEntry.closedTs);\n\n if (amountUpdated || periodUpdated) {\n let firstUpdateTs: BN, secondUpdateTs: BN, rewardAmount: BN, rewardPeriod: BN;\n if (amountUpdated && periodUpdated) {\n if (rewardPool.lastAmountUpdateTs.lt(rewardPool.lastPeriodUpdateTs)) {\n firstUpdateTs = rewardPool.lastAmountUpdateTs;\n secondUpdateTs = rewardPool.lastPeriodUpdateTs;\n rewardAmount = rewardPool.rewardAmount;\n rewardPeriod = rewardEntryAccumulator.lastRewardPeriod;\n } else {\n firstUpdateTs = rewardPool.lastPeriodUpdateTs;\n secondUpdateTs = rewardPool.lastAmountUpdateTs;\n rewardAmount = rewardEntryAccumulator.lastRewardAmount;\n rewardPeriod = rewardPool.rewardPeriod;\n }\n } else if (amountUpdated) {\n firstUpdateTs = new BN(0);\n secondUpdateTs = rewardPool.lastAmountUpdateTs;\n rewardAmount = rewardEntryAccumulator.lastRewardAmount;\n rewardPeriod = rewardEntryAccumulator.lastRewardPeriod;\n } else {\n firstUpdateTs = new BN(0);\n secondUpdateTs = rewardPool.lastPeriodUpdateTs;\n rewardAmount = rewardEntryAccumulator.lastRewardAmount;\n rewardPeriod = rewardEntryAccumulator.lastRewardPeriod;\n }\n\n if (firstUpdateTs.gtn(0)) {\n const firstAccountableAmount = rewardEntryAccumulator.getAccountableAmount(\n stakedTs,\n firstUpdateTs,\n stakeEntry.effectiveAmount,\n rewardEntryAccumulator.lastRewardAmount,\n rewardEntryAccumulator.lastRewardPeriod,\n );\n rewardEntryAccumulator.addAccountedAmount(firstAccountableAmount);\n rewardEntryAccumulator.lastAccountedTs = rewardEntryAccumulator.getLastAccountedTs(\n stakedTs,\n firstUpdateTs,\n rewardPool.lastRewardPeriod,\n );\n }\n const secondAccountableAmount = rewardEntryAccumulator.getAccountableAmount(\n stakedTs,\n secondUpdateTs,\n stakeEntry.effectiveAmount,\n rewardAmount,\n rewardPeriod,\n );\n rewardEntryAccumulator.addAccountedAmount(secondAccountableAmount);\n rewardEntryAccumulator.lastAccountedTs = rewardEntryAccumulator.getLastAccountedTs(\n stakedTs,\n secondUpdateTs,\n rewardPeriod,\n );\n }\n\n const accountableAmount = rewardEntryAccumulator.getAccountableAmount(\n stakedTs,\n claimableTs,\n stakeEntry.effectiveAmount,\n rewardPool.rewardAmount,\n rewardPool.rewardPeriod,\n );\n rewardEntryAccumulator.addAccountedAmount(accountableAmount);\n\n return rewardEntryAccumulator.getClaimableAmount();\n};\n\nexport const calculateRewardRateFromAmount = (\n rewardAmount: BN,\n stakeTokenDecimals: number,\n rewardTokenDecimals: number,\n) => {\n const decimals = rewardTokenDecimals + (REWARD_AMOUNT_DECIMALS - stakeTokenDecimals);\n return getNumberFromBN(rewardAmount, decimals);\n};\n\nexport const calculateRewardAmountFromValue = (rewardTokenValue: BN, stakeTokenDecimals: number) => {\n const decimalsDiff = REWARD_AMOUNT_DECIMALS - stakeTokenDecimals;\n if (decimalsDiff === 0) {\n return rewardTokenValue;\n }\n const diffFactor = new BN(10).pow(new BN(Math.abs(decimalsDiff)));\n if (decimalsDiff > 0) {\n return rewardTokenValue.mul(diffFactor);\n }\n return rewardTokenValue.div(diffFactor);\n};\n\nexport const calculateRewardAmountFromRate = (\n rewardRate: number,\n stakeTokenDecimals: number,\n rewardTokenDecimals: number,\n) => {\n return calculateRewardAmountFromValue(getBN(rewardRate, rewardTokenDecimals), stakeTokenDecimals);\n};\n","import type { TransferFeeConfig } from \"@solana/spl-token\";\nimport type { Connection } from \"@solana/web3.js\";\nimport type BN from \"bn.js\";\nimport { divCeilN } from \"@streamflow/common\";\n\nimport { DEFAULT_FEE_BN, FEE_PRECISION_FACTOR_BN, SCALE_PRECISION_FACTOR, U64_MAX } from \"../constants.js\";\n\nexport const calculateFeeAmount = (amount: BN, fee: BN = DEFAULT_FEE_BN) => {\n if (fee.eq(FEE_PRECISION_FACTOR_BN)) {\n return amount;\n }\n return amount.mul(fee).div(FEE_PRECISION_FACTOR_BN);\n};\n\nexport const calculateDecimalsShift = (maxWeight: bigint, maxShift = 999) => {\n if (maxShift == 0) {\n return 0;\n }\n\n let decimalsShift = 0;\n while ((maxWeight * U64_MAX) / BigInt(SCALE_PRECISION_FACTOR) / BigInt(10 ** decimalsShift) > U64_MAX) {\n decimalsShift += 1;\n if (decimalsShift == maxShift) {\n return maxShift;\n }\n }\n return decimalsShift;\n};\n\nexport async function calculateAmountWithTransferFees(\n connection: Connection,\n transferFeeConfig: TransferFeeConfig,\n transferAmount: bigint,\n): Promise<{ transferAmount: bigint; feeCharged: bigint }> {\n const epoch = await connection.getEpochInfo();\n const transferFee =\n epoch.epoch >= transferFeeConfig.newerTransferFee.epoch\n ? transferFeeConfig.newerTransferFee\n : transferFeeConfig.olderTransferFee;\n const transferFeeBasisPoints = BigInt(transferFee.transferFeeBasisPoints);\n let feeCharged = BigInt(0);\n\n if (transferFeeBasisPoints !== BigInt(0)) {\n const numerator = transferAmount * 10_000n;\n const denominator = 10_000n - transferFeeBasisPoints;\n const rawPreFeeAmount = divCeilN(numerator, denominator);\n const fee = rawPreFeeAmount - transferAmount;\n transferAmount = rawPreFeeAmount;\n feeCharged = fee > transferFee.maximumFee ? transferFee.maximumFee : fee;\n }\n\n return { transferAmount, feeCharged };\n}\n","import BN from \"bn.js\";\n\nimport { SCALE_PRECISION_FACTOR_BN } from \"../constants.js\";\n\nexport const calculateStakeWeight = (minDuration: BN, maxDuration: BN, maxWeight: BN, duration: BN) => {\n const durationSpan = maxDuration.sub(minDuration);\n if (durationSpan.eq(new BN(0))) {\n return SCALE_PRECISION_FACTOR_BN;\n }\n const durationExceedingMin = duration.sub(minDuration);\n const normalizedWeight = durationExceedingMin.mul(SCALE_PRECISION_FACTOR_BN).div(durationSpan);\n const weightDiff = maxWeight.sub(SCALE_PRECISION_FACTOR_BN);\n\n return BN.max(\n SCALE_PRECISION_FACTOR_BN.add(normalizedWeight.mul(weightDiff).div(SCALE_PRECISION_FACTOR_BN)),\n SCALE_PRECISION_FACTOR_BN,\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../solana/constants.ts","../../solana/descriptor/idl/governor.json","../../solana/descriptor/idl/fee_manager.json","../../solana/descriptor/idl/reward_pool.json","../../solana/descriptor/idl/reward_pool_dynamic.json","../../solana/descriptor/idl/stake_pool.json","../../solana/lib/derive-accounts.ts","../../solana/client.ts","../../solana/lib/rewards.ts","../../solana/lib/fee-amounts.ts","../../solana/lib/stake-weight.ts"],"names":["BN","PublicKey","ICluster","Connection","buildSendThrottler","Program","invariant","getFilters","TOKEN_PROGRAM_ID","pk","ixs","getAssociatedTokenAddressSync","checkOrCreateAtaBatch","unwrapExecutionParams","createAndEstimateTransaction","prepareBaseInstructions","prepareTransaction","signAndExecuteTransaction","translateError","parseIdlErrors","ContractError","getNumberFromBN","getBN","divCeilN"],"mappings":"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","file":"index.cjs","sourcesContent":["import { ICluster } from \"@streamflow/common\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\nexport const FEE_PRECISION_FACTOR = 10_000;\nexport const FEE_PRECISION_FACTOR_BN = new BN(FEE_PRECISION_FACTOR);\nexport const DEFAULT_FEE = 25;\nexport const DEFAULT_FEE_BN = new BN(DEFAULT_FEE);\nexport const SCALE_PRECISION_FACTOR = 1_000_000_000;\nexport const SCALE_PRECISION_FACTOR_BN = new BN(SCALE_PRECISION_FACTOR);\nexport const REWARD_AMOUNT_DECIMALS = 9;\nexport const REWARD_AMOUNT_PRECISION_FACTOR = 1_000_000_000;\nexport const REWARD_AMOUNT_PRECISION_FACTOR_BN = new BN(REWARD_AMOUNT_PRECISION_FACTOR);\nexport const U64_MAX = 18446744073709551615n;\nexport const STAKE_ENTRY_DISCRIMINATOR = [187, 127, 9, 35, 155, 68, 86, 40];\nexport const STAKE_ENTRY_PREFIX = Buffer.from(\"stake-entry\", \"utf-8\");\nexport const STAKE_POOL_PREFIX = Buffer.from(\"stake-pool\", \"utf-8\");\nexport const STAKE_MINT_PREFIX = Buffer.from(\"stake-mint\", \"utf-8\");\nexport const STAKE_VAULT_PREFIX = Buffer.from(\"stake-vault\", \"utf-8\");\nexport const REWARD_POOL_PREFIX = Buffer.from(\"reward-pool\", \"utf-8\");\nexport const REWARD_VAULT_PREFIX = Buffer.from(\"reward-vault\", \"utf-8\");\nexport const REWARD_ENTRY_PREFIX = Buffer.from(\"reward-entry\", \"utf-8\");\nexport const CONFIG_PREFIX = Buffer.from(\"config\", \"utf-8\");\nexport const FEE_VALUE_PREFIX = Buffer.from(\"fee-value\", \"utf-8\");\nexport const STREAMFLOW_TREASURY_PUBLIC_KEY = new PublicKey(\"5SEpbdjFK5FxwTvfsGMXVQTD2v4M2c5tyRTxhdsPkgDw\");\n\nexport const ANCHOR_DISCRIMINATOR_OFFSET = 8;\nexport const STAKE_ENTRY_STAKE_POOL_OFFSET = ANCHOR_DISCRIMINATOR_OFFSET + 4;\nexport const STAKE_ENTRY_PAYER_OFFSET = STAKE_ENTRY_STAKE_POOL_OFFSET + 32;\nexport const STAKE_ENTRY_OWNER_OFFSET = STAKE_ENTRY_PAYER_OFFSET + 32;\nexport const STAKE_ENTRY_BYTE_OFFSETS = {\n payer: STAKE_ENTRY_PAYER_OFFSET,\n authority: STAKE_ENTRY_OWNER_OFFSET,\n stakePool: STAKE_ENTRY_STAKE_POOL_OFFSET,\n} as const;\n\nexport const STAKE_POOL_MINT_OFFSET = ANCHOR_DISCRIMINATOR_OFFSET + 2;\nexport const STAKE_POOL_CREATOR_OFFSET = STAKE_POOL_MINT_OFFSET + 32;\nexport const STAKE_POOL_BYTE_OFFSETS = {\n mint: STAKE_POOL_MINT_OFFSET,\n creator: STAKE_POOL_CREATOR_OFFSET,\n} as const;\n\nexport const REWARD_POOL_STAKE_POOL_OFFSET = ANCHOR_DISCRIMINATOR_OFFSET + 2;\nexport const REWARD_POOL_MINT_OFFSET = REWARD_POOL_STAKE_POOL_OFFSET + 32;\nexport const REWARD_POOL_BYTE_OFFSETS = {\n stakePool: REWARD_POOL_STAKE_POOL_OFFSET,\n mint: REWARD_POOL_MINT_OFFSET,\n} as const;\n\nexport const REWARD_ENTRY_REWARD_POOL_OFFSET = ANCHOR_DISCRIMINATOR_OFFSET;\nexport const REWARD_ENTRY_STAKE_ENTRY_OFFSET = REWARD_ENTRY_REWARD_POOL_OFFSET + 32;\nexport const REWARD_ENTRY_BYTE_OFFSETS = {\n stakeEntry: REWARD_ENTRY_STAKE_ENTRY_OFFSET,\n rewardPool: REWARD_ENTRY_REWARD_POOL_OFFSET,\n} as const;\n\nexport const STAKE_POOL_PROGRAM_ID: Record<ICluster, string> = {\n [ICluster.Mainnet]: \"STAKEvGqQTtzJZH6BWDcbpzXXn2BBerPAgQ3EGLN2GH\",\n [ICluster.Devnet]: \"STAKEvGqQTtzJZH6BWDcbpzXXn2BBerPAgQ3EGLN2GH\",\n [ICluster.Testnet]: \"STAKEvGqQTtzJZH6BWDcbpzXXn2BBerPAgQ3EGLN2GH\",\n [ICluster.Local]: \"STAKEvGqQTtzJZH6BWDcbpzXXn2BBerPAgQ3EGLN2GH\",\n};\nexport const REWARD_POOL_PROGRAM_ID: Record<ICluster, string> = {\n [ICluster.Mainnet]: \"RWRDdfRbi3339VgKxTAXg4cjyniF7cbhNbMxZWiSKmj\",\n [ICluster.Devnet]: \"RWRDdfRbi3339VgKxTAXg4cjyniF7cbhNbMxZWiSKmj\",\n [ICluster.Testnet]: \"RWRDdfRbi3339VgKxTAXg4cjyniF7cbhNbMxZWiSKmj\",\n [ICluster.Local]: \"RWRDdfRbi3339VgKxTAXg4cjyniF7cbhNbMxZWiSKmj\",\n};\nexport const REWARD_POOL_DYNAMIC_PROGRAM_ID: Record<ICluster, string> = {\n [ICluster.Mainnet]: \"RWRDyfZa6Rk9UYi85yjYYfGmoUqffLqjo6vZdFawEez\",\n [ICluster.Devnet]: \"RWRDyfZa6Rk9UYi85yjYYfGmoUqffLqjo6vZdFawEez\",\n [ICluster.Testnet]: \"RWRDyfZa6Rk9UYi85yjYYfGmoUqffLqjo6vZdFawEez\",\n [ICluster.Local]: \"RWRDyfZa6Rk9UYi85yjYYfGmoUqffLqjo6vZdFawEez\",\n};\nexport const FEE_PROGRAM_ID: Record<ICluster, string> = {\n [ICluster.Mainnet]: \"FEELzfBhsWXTNJX53zZcDVfRNoFYZQ6cZA3jLiGVL16V\",\n [ICluster.Devnet]: \"FEELzfBhsWXTNJX53zZcDVfRNoFYZQ6cZA3jLiGVL16V\",\n [ICluster.Testnet]: \"FEELzfBhsWXTNJX53zZcDVfRNoFYZQ6cZA3jLiGVL16V\",\n [ICluster.Local]: \"FEELzfBhsWXTNJX53zZcDVfRNoFYZQ6cZA3jLiGVL16V\",\n};\n","{\n \"address\": \"GVERNASJFxi8vjjJtwCKYQTeN51XsV1y2B1ap1GtKrKR\",\n \"metadata\": {\n \"name\": \"governor\",\n \"version\": \"2.4.0\",\n \"spec\": \"0.1.0\",\n \"description\": \"Governor program to allow users to vote with stake tokens\"\n },\n \"instructions\": [\n {\n \"name\": \"add_proposal\",\n \"discriminator\": [\n 130,\n 139,\n 214,\n 107,\n 93,\n 13,\n 84,\n 152\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"The stake pool associated with the governor\"\n ],\n \"relations\": [\n \"governor\"\n ]\n },\n {\n \"name\": \"governor\",\n \"docs\": [\n \"The governor to which the proposal is being added\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"proposal\",\n \"docs\": [\n \"The new proposal account to be created\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 112,\n 114,\n 111,\n 112,\n 111,\n 115,\n 97,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"governor\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the governor\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"text\",\n \"type\": \"string\"\n },\n {\n \"name\": \"options\",\n \"type\": {\n \"vec\": \"string\"\n }\n },\n {\n \"name\": \"voting_start_ts\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"voting_end_ts\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"change_authority\",\n \"discriminator\": [\n 50,\n 106,\n 66,\n 104,\n 99,\n 118,\n 145,\n 88\n ],\n \"accounts\": [\n {\n \"name\": \"governor\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current Authority\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"new_authority\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"create_governor\",\n \"discriminator\": [\n 103,\n 30,\n 78,\n 252,\n 28,\n 128,\n 40,\n 3\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"The stake pool for which the governor is being created\"\n ]\n },\n {\n \"name\": \"governor\",\n \"docs\": [\n \"The governor account to be created\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 103,\n 111,\n 118,\n 101,\n 114,\n 110,\n 111,\n 114\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the stake pool\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"set_active_proposal\",\n \"discriminator\": [\n 41,\n 14,\n 222,\n 18,\n 33,\n 232,\n 43,\n 82\n ],\n \"accounts\": [\n {\n \"name\": \"governor\",\n \"docs\": [\n \"The governor for which to set the active proposal\"\n ],\n \"writable\": true,\n \"relations\": [\n \"proposal\"\n ]\n },\n {\n \"name\": \"proposal\",\n \"docs\": [\n \"The proposal to set as active\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the governor\"\n ],\n \"signer\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"vote_on_proposal\",\n \"discriminator\": [\n 188,\n 239,\n 13,\n 88,\n 119,\n 199,\n 251,\n 119\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Original Stake Pool\"\n ],\n \"relations\": [\n \"governor\"\n ]\n },\n {\n \"name\": \"governor\",\n \"docs\": [\n \"The governor account that manages the voting process\"\n ],\n \"writable\": true,\n \"relations\": [\n \"proposal\"\n ]\n },\n {\n \"name\": \"proposal\",\n \"docs\": [\n \"The proposal being voted on\"\n ]\n },\n {\n \"name\": \"vote\",\n \"docs\": [\n \"The vote account that will be created to record the vote\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 118,\n 111,\n 116,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"proposal\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"voter\"\n }\n ]\n }\n },\n {\n \"name\": \"stake_mint_account\",\n \"docs\": [\n \"The user's stake token account that holds the stake tokens\"\n ]\n },\n {\n \"name\": \"voter\",\n \"docs\": [\n \"The user who is voting\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"rent_sponsor\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 110,\n 116,\n 45,\n 115,\n 112,\n 111,\n 110,\n 115,\n 111,\n 114\n ]\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"event_authority\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121\n ]\n }\n ]\n }\n },\n {\n \"name\": \"program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"option_index\",\n \"type\": \"u8\"\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"Governor\",\n \"discriminator\": [\n 37,\n 136,\n 44,\n 80,\n 68,\n 85,\n 213,\n 178\n ]\n },\n {\n \"name\": \"Proposal\",\n \"discriminator\": [\n 26,\n 94,\n 189,\n 187,\n 116,\n 136,\n 53,\n 33\n ]\n },\n {\n \"name\": \"StakePool\",\n \"discriminator\": [\n 121,\n 34,\n 206,\n 21,\n 79,\n 127,\n 255,\n 28\n ]\n },\n {\n \"name\": \"Vote\",\n \"discriminator\": [\n 96,\n 91,\n 104,\n 57,\n 145,\n 35,\n 172,\n 155\n ]\n }\n ],\n \"events\": [\n {\n \"name\": \"VoteEvent\",\n \"discriminator\": [\n 195,\n 71,\n 250,\n 105,\n 120,\n 119,\n 234,\n 134\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"ArithmeticError\",\n \"msg\": \"Arithmetic Error (overflow/underflow)\"\n },\n {\n \"code\": 6001,\n \"name\": \"Unauthorized\",\n \"msg\": \"Account is not authorized to execute this instruction\"\n },\n {\n \"code\": 6002,\n \"name\": \"InvalidStakeMint\",\n \"msg\": \"Provided Stake Mint does not equal the Pool Stake Mint\"\n },\n {\n \"code\": 6003,\n \"name\": \"InvalidStakePool\",\n \"msg\": \"Provided Stake Pool does not equal the Entry Stake Pool\"\n },\n {\n \"code\": 6004,\n \"name\": \"InvalidGovernor\",\n \"msg\": \"Provided Governor does not match the proposal Governor\"\n },\n {\n \"code\": 6005,\n \"name\": \"InvalidProposalText\",\n \"msg\": \"Invalid proposal text provided\"\n },\n {\n \"code\": 6006,\n \"name\": \"InvalidProposalOptions\",\n \"msg\": \"Invalid proposal options provided\"\n },\n {\n \"code\": 6007,\n \"name\": \"InvalidProposalDuration\",\n \"msg\": \"Invalid proposal duration\"\n },\n {\n \"code\": 6008,\n \"name\": \"ProposalAlreadyActive\",\n \"msg\": \"This proposal is already active\"\n },\n {\n \"code\": 6009,\n \"name\": \"VotingNotStarted\",\n \"msg\": \"Voting not started yet\"\n },\n {\n \"code\": 6010,\n \"name\": \"VotingEnded\",\n \"msg\": \"Voting has already ended\"\n },\n {\n \"code\": 6011,\n \"name\": \"InvalidOptionIndex\",\n \"msg\": \"Provided option is not a valid proposal option\"\n },\n {\n \"code\": 6012,\n \"name\": \"InsufficientStakeTokens\",\n \"msg\": \"Insufficient tokens for voting\"\n }\n ],\n \"types\": [\n {\n \"name\": \"Governor\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump Seed used to sign transactions\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to support multiple governors for the same pool\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool for which Reward Pool was added\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the Governor that can add proposals and set the current one\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"current_proposal\",\n \"docs\": [\n \"Address of the current proposal\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"total_proposals\",\n \"docs\": [\n \"Total number of created proposals\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 128\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Proposal\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce used to derive proposal address\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"governor\",\n \"docs\": [\n \"Stake Pool for which Reward Pool was added\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"text\",\n \"docs\": [\n \"Text of the proposals we reserve up to 512 bytes (ascii symbols take 1 byte)\"\n ],\n \"type\": \"string\"\n },\n {\n \"name\": \"options\",\n \"docs\": [\n \"Potential options that will be used when answering, we reserve enough space for up to 8x32 = 256 ascii symbols in total\"\n ],\n \"type\": {\n \"vec\": \"string\"\n }\n },\n {\n \"name\": \"voting_start_ts\",\n \"docs\": [\n \"Time when voting starts, 0 means that voting start immediately after proposal was created\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"voting_end_ts\",\n \"docs\": [\n \"Time when voting ends, 0 means that voting will be possible anytime\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"created_ts\",\n \"docs\": [\n \"Time when proposal was created\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_active_ts\",\n \"docs\": [\n \"Last time when proposal was made active\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"StakePool\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump Seed used to sign transactions\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate pools for the same mint\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint of the Stake Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Initial Creator\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"min_weight\",\n \"docs\": [\n \"The lowest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.\",\n \"For instance:\",\n \"* `min_weight = 1 x SCALE_FACTOR_BASE` signifies a minimum multiplier of 1x for min staking duration\",\n \"* `min_weight = 2 x SCALE_FACTOR_BASE` indicates a minimum multiplier of 2x for min staking duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_weight\",\n \"docs\": [\n \"The highest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.\",\n \"For instance:\",\n \"* `max_weight = 1 x SCALE_FACTOR_BASE` signifies a max multiplier of 1x for max staking duration\",\n \"* `max_weight = 2 x SCALE_FACTOR_BASE` indicates a max multiplier of 2x for max staking duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_duration\",\n \"docs\": [\n \"Min Duration of stake in seconds\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_duration\",\n \"docs\": [\n \"Max Duration of stake in seconds, the more duration, the more weight the stake has\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"permissionless\",\n \"docs\": [\n \"Whether anyone can add Reward Pools or just admin\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that stores staked tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"stake_mint\",\n \"docs\": [\n \"Stake Mint, will be returned in exchange for stake tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"total_stake\",\n \"docs\": [\n \"Total number of Staked tokens\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_effective_stake\",\n \"docs\": [\n \"Total staked tokens accounting for each stake weight, does not equal `total_stake`,\",\n \"represents a sum of effective stake multiplied by 10^9 for precision\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"freeze_stake_mint\",\n \"docs\": [\n \"Whether we should freeze stake mint token accounts\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"unstake_period\",\n \"docs\": [\n \"Period for unstaking, if set unstake at first should be requested, and the real unstake can only happen after this period\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_total_stake_capped\",\n \"docs\": [\n \"Whether amount of total staked tokens is limited by `remaining_total_stake` - stored as separate flag to not deal with `Option`\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"remaining_total_stake\",\n \"docs\": [\n \"Remaining total amount of staked tokens (cumulative)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"expiry_ts\",\n \"docs\": [\n \"Time when stake pool expires, staking is not possible after expiration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"auto_unstake\",\n \"docs\": [\n \"Whether auto unstaking is enabled, stake entries will be unstaked after duration\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 37\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Vote\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"proposal\",\n \"docs\": [\n \"Question to which vote was provided\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"voter\",\n \"docs\": [\n \"Voter that voted on the proposal\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"option_index\",\n \"docs\": [\n \"Index of the option used for voting\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"weight\",\n \"docs\": [\n \"Weight of the vote, correspond to number of sTokens used\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_sponsored\",\n \"docs\": [\n \"Whether the vote rent has been sponsored by the rent vault\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 63\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"VoteEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"governor\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"proposal\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"voter\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"option_index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"value\",\n \"type\": \"u64\"\n }\n ]\n }\n }\n ]\n}","{\n \"address\": \"FEELzfBhsWXTNJX53zZcDVfRNoFYZQ6cZA3jLiGVL16V\",\n \"metadata\": {\n \"name\": \"fee_manager\",\n \"version\": \"2.4.0\",\n \"spec\": \"0.1.0\",\n \"description\": \"Stores Fees and other admin configuration for the Staking protocol\"\n },\n \"instructions\": [\n {\n \"name\": \"change_authority\",\n \"discriminator\": [\n 50,\n 106,\n 66,\n 104,\n 99,\n 118,\n 145,\n 88\n ],\n \"accounts\": [\n {\n \"name\": \"config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"authority\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"new_authority\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"initialize\",\n \"discriminator\": [\n 175,\n 175,\n 109,\n 31,\n 13,\n 152,\n 155,\n 237\n ],\n \"accounts\": [\n {\n \"name\": \"config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"authority\"\n ],\n \"writable\": true,\n \"signer\": true,\n \"address\": \"ACYtYsL4KYtJzD53wqyifqad2D8224kamcngYPgSy3t\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"remove_fee\",\n \"discriminator\": [\n 190,\n 227,\n 105,\n 10,\n 30,\n 161,\n 81,\n 212\n ],\n \"accounts\": [\n {\n \"name\": \"fee_value\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 102,\n 101,\n 101,\n 45,\n 118,\n 97,\n 108,\n 117,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"target\"\n }\n ]\n }\n },\n {\n \"name\": \"config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"authority\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"target\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"update_config\",\n \"discriminator\": [\n 29,\n 158,\n 252,\n 191,\n 10,\n 83,\n 219,\n 99\n ],\n \"accounts\": [\n {\n \"name\": \"config\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"authority\"\n ],\n \"signer\": true\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"streamflow_fee\",\n \"type\": {\n \"option\": \"u64\"\n }\n }\n ]\n },\n {\n \"name\": \"write_fee\",\n \"discriminator\": [\n 80,\n 12,\n 148,\n 143,\n 16,\n 120,\n 24,\n 48\n ],\n \"accounts\": [\n {\n \"name\": \"fee_value\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 102,\n 101,\n 101,\n 45,\n 118,\n 97,\n 108,\n 117,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"target\"\n }\n ]\n }\n },\n {\n \"name\": \"config\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"authority\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"target\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"streamflow_fee\",\n \"type\": \"u64\"\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"Config\",\n \"discriminator\": [\n 155,\n 12,\n 170,\n 224,\n 30,\n 250,\n 204,\n 130\n ]\n },\n {\n \"name\": \"FeeValue\",\n \"discriminator\": [\n 10,\n 188,\n 89,\n 64,\n 4,\n 183,\n 231,\n 0\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"Unauthorized\",\n \"msg\": \"Account is not authorized to execute this instruction\"\n },\n {\n \"code\": 6001,\n \"name\": \"InvalidFee\",\n \"msg\": \"Provided fee is not valid\"\n }\n ],\n \"types\": [\n {\n \"name\": \"Config\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Fee Manager authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"streamflow_fee\",\n \"docs\": [\n \"Default fee\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer_1\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n },\n {\n \"name\": \"_buffer_2\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n },\n {\n \"name\": \"_buffer_3\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"FeeValue\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"streamflow_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n }\n ]\n }\n }\n ]\n}","{\n \"address\": \"RWRDdfRbi3339VgKxTAXg4cjyniF7cbhNbMxZWiSKmj\",\n \"metadata\": {\n \"name\": \"reward_pool\",\n \"version\": \"2.4.0\",\n \"spec\": \"0.1.0\",\n \"description\": \"Program to manage Reward Pools for Stake Pools and claim rewards from them\"\n },\n \"instructions\": [\n {\n \"name\": \"change_authority\",\n \"discriminator\": [\n 50,\n 106,\n 66,\n 104,\n 99,\n 118,\n 145,\n 88\n ],\n \"accounts\": [\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current Authority\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"new_authority\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"claim_rewards\",\n \"discriminator\": [\n 4,\n 144,\n 132,\n 71,\n 116,\n 23,\n 151,\n 80\n ],\n \"accounts\": [\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Stake Entry for which rewards are being claimed\"\n ]\n },\n {\n \"name\": \"reward_entry\",\n \"docs\": [\n \"Reward Entry that stores metadata about claimed rewards\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_entry\"\n }\n ]\n }\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Reward Pool Vault that stores tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"to\",\n \"docs\": [\n \"Account to send the reward tokens to.\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"claimant\",\n \"docs\": [\n \"Who is claiming the tokens.\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"The mint to claim.\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"claim_rewards_as_worker\",\n \"discriminator\": [\n 120,\n 246,\n 117,\n 149,\n 120,\n 210,\n 52,\n 193\n ],\n \"accounts\": [\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"writable\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Stake Entry for which rewards are being claimed\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"reward_entry\",\n \"docs\": [\n \"Reward Entry that stores metadata about claimed rewards\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_entry\"\n }\n ]\n }\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Reward Pool Vault that stores tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"stake_vault\",\n \"writable\": true\n },\n {\n \"name\": \"to\",\n \"writable\": true\n },\n {\n \"name\": \"stake_mint_from\",\n \"writable\": true\n },\n {\n \"name\": \"claimant\",\n \"writable\": true\n },\n {\n \"name\": \"worker\",\n \"docs\": [\n \"Auto unstake worker\"\n ],\n \"writable\": true,\n \"signer\": true,\n \"address\": \"wdrwhnCv4pzW8beKsbPa4S2UDZrXenjg16KJdKSpb5u\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"The mint to claim.\"\n ],\n \"writable\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"stake_mint\",\n \"docs\": [\n \"Mint for sTokens issued by the stake pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"stake_pool_program\",\n \"address\": \"STAKEvGqQTtzJZH6BWDcbpzXXn2BBerPAgQ3EGLN2GH\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"clawback\",\n \"discriminator\": [\n 111,\n 92,\n 142,\n 79,\n 33,\n 234,\n 82,\n 27\n ],\n \"accounts\": [\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool to Which Reward Pool belongs\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Reward Pool Vault that stores tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"to\",\n \"docs\": [\n \"Account to send the reward tokens to.\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current Authority\"\n ],\n \"writable\": true,\n \"signer\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"The mint to claim.\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"close_entry\",\n \"discriminator\": [\n 132,\n 26,\n 202,\n 145,\n 190,\n 37,\n 114,\n 67\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ]\n },\n {\n \"name\": \"stake_entry\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"stake_nonce\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 6,\n 133,\n 25,\n 160,\n 130,\n 0,\n 119,\n 110,\n 227,\n 8,\n 28,\n 85,\n 214,\n 116,\n 67,\n 41,\n 155,\n 152,\n 181,\n 139,\n 124,\n 208,\n 85,\n 71,\n 175,\n 40,\n 123,\n 71,\n 139,\n 170,\n 201,\n 178\n ]\n }\n }\n },\n {\n \"name\": \"reward_entry\",\n \"docs\": [\n \"Reward Entry that stores metadata about claimed rewards\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_entry\"\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"rent_sponsor\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 110,\n 116,\n 45,\n 115,\n 112,\n 111,\n 110,\n 115,\n 111,\n 114\n ]\n }\n ]\n }\n }\n ],\n \"args\": [\n {\n \"name\": \"stake_nonce\",\n \"type\": \"u32\"\n }\n ]\n },\n {\n \"name\": \"create_entry\",\n \"discriminator\": [\n 248,\n 207,\n 142,\n 242,\n 66,\n 162,\n 150,\n 16\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Original Stake Pool\"\n ],\n \"relations\": [\n \"reward_pool\",\n \"stake_entry\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ]\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Stake Entry for which rewards are being claimed\"\n ]\n },\n {\n \"name\": \"reward_entry\",\n \"docs\": [\n \"Reward Entry that stores metadata about claimed rewards\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_entry\"\n }\n ]\n }\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Rent payer\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"authority\"\n },\n {\n \"name\": \"rent_sponsor\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 110,\n 116,\n 45,\n 115,\n 112,\n 111,\n 110,\n 115,\n 111,\n 114\n ]\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"create_pool\",\n \"discriminator\": [\n 233,\n 146,\n 209,\n 142,\n 207,\n 104,\n 64,\n 188\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool to Which Reward Pool is being added\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool to add\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 112,\n 111,\n 111,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint used for rewards\"\n ]\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that will store the tokens\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n }\n ]\n }\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Reward Pool creator\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"reward_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_period\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"permissionless\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"last_claim_period_opt\",\n \"type\": {\n \"option\": \"u64\"\n }\n }\n ]\n },\n {\n \"name\": \"fund_pool\",\n \"discriminator\": [\n 36,\n 57,\n 233,\n 176,\n 181,\n 20,\n 87,\n 159\n ],\n \"accounts\": [\n {\n \"name\": \"funder\",\n \"docs\": [\n \"Reward Pool funder\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"from\",\n \"docs\": [\n \"Token Account from which tokens will be transferred\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Reward Pool Vault that stores tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint of reward tokens\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"streamflow_treasury\",\n \"writable\": true,\n \"address\": \"5SEpbdjFK5FxwTvfsGMXVQTD2v4M2c5tyRTxhdsPkgDw\"\n },\n {\n \"name\": \"streamflow_treasury_tokens\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"streamflow_treasury\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"config\",\n \"docs\": [\n \"Fee Configuration\"\n ],\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ],\n \"program\": {\n \"kind\": \"account\",\n \"path\": \"fee_program\"\n }\n }\n },\n {\n \"name\": \"fee_value\",\n \"docs\": [\n \"Fee Value for the funder account\"\n ],\n \"optional\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 102,\n 101,\n 101,\n 45,\n 118,\n 97,\n 108,\n 117,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"funder\"\n }\n ],\n \"program\": {\n \"kind\": \"account\",\n \"path\": \"fee_program\"\n }\n }\n },\n {\n \"name\": \"fee_program\",\n \"address\": \"FEELzfBhsWXTNJX53zZcDVfRNoFYZQ6cZA3jLiGVL16V\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"update_pool\",\n \"discriminator\": [\n 239,\n 214,\n 170,\n 78,\n 36,\n 35,\n 30,\n 34\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current Authority\"\n ],\n \"writable\": true,\n \"signer\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool to Which Reward Pool belongs\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_amount\",\n \"type\": {\n \"option\": \"u64\"\n }\n },\n {\n \"name\": \"reward_period\",\n \"type\": {\n \"option\": \"u64\"\n }\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"Config\",\n \"discriminator\": [\n 155,\n 12,\n 170,\n 224,\n 30,\n 250,\n 204,\n 130\n ]\n },\n {\n \"name\": \"FeeValue\",\n \"discriminator\": [\n 10,\n 188,\n 89,\n 64,\n 4,\n 183,\n 231,\n 0\n ]\n },\n {\n \"name\": \"RewardEntry\",\n \"discriminator\": [\n 208,\n 191,\n 173,\n 14,\n 213,\n 84,\n 179,\n 162\n ]\n },\n {\n \"name\": \"RewardPool\",\n \"discriminator\": [\n 134,\n 121,\n 197,\n 211,\n 133,\n 154,\n 82,\n 32\n ]\n },\n {\n \"name\": \"StakeEntry\",\n \"discriminator\": [\n 187,\n 127,\n 9,\n 35,\n 155,\n 68,\n 86,\n 40\n ]\n },\n {\n \"name\": \"StakePool\",\n \"discriminator\": [\n 121,\n 34,\n 206,\n 21,\n 79,\n 127,\n 255,\n 28\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"ArithmeticError\",\n \"msg\": \"Arithmetic Error (overflow/underflow)\"\n },\n {\n \"code\": 6001,\n \"name\": \"InvalidRewardAmount\",\n \"msg\": \"Reward amount should be more than 0\"\n },\n {\n \"code\": 6002,\n \"name\": \"InvalidRewardPeriod\",\n \"msg\": \"Reward period should be more than 0 and less or equal than staking duration if auto unstake is enabled\"\n },\n {\n \"code\": 6003,\n \"name\": \"Unauthorized\",\n \"msg\": \"Account is not authorized to execute this instruction\"\n },\n {\n \"code\": 6004,\n \"name\": \"OwnerMismatch\",\n \"msg\": \"Token account owner did not match intended owner\"\n },\n {\n \"code\": 6005,\n \"name\": \"InvalidRewardVault\",\n \"msg\": \"Provided Reward Vault is Invalid\"\n },\n {\n \"code\": 6006,\n \"name\": \"InvalidRewardEntry\",\n \"msg\": \"Provided Reward Entry is Invalid\"\n },\n {\n \"code\": 6007,\n \"name\": \"InvalidStakeEntry\",\n \"msg\": \"Provided Stake Entry is Invalid\"\n },\n {\n \"code\": 6008,\n \"name\": \"InvalidRewardPool\",\n \"msg\": \"Provided Reward Pool is Invalid\"\n },\n {\n \"code\": 6009,\n \"name\": \"InvalidMint\",\n \"msg\": \"Invalid Mint\"\n },\n {\n \"code\": 6010,\n \"name\": \"StakeEntryClosed\",\n \"msg\": \"Stake Entry is closed, rewards are not claimable anymore\"\n },\n {\n \"code\": 6011,\n \"name\": \"StakeEntryOpened\",\n \"msg\": \"Stake Entry is still opened, closing is not possible\"\n },\n {\n \"code\": 6012,\n \"name\": \"RewardPoolDrained\",\n \"msg\": \"Reward Pool does not have enough Rewards for Claiming\"\n },\n {\n \"code\": 6013,\n \"name\": \"UpdateTooSoon\",\n \"msg\": \"Repeated update can not happen sooner than the stake pool max duration\"\n },\n {\n \"code\": 6014,\n \"name\": \"InvalidLastClaimPeriod\",\n \"msg\": \"Invalid last claim period provided\"\n },\n {\n \"code\": 6015,\n \"name\": \"ClawbackNotPossible\",\n \"msg\": \"Clawback is not possible for the provided Stake Pool\"\n },\n {\n \"code\": 6016,\n \"name\": \"ClawbackTooEarly\",\n \"msg\": \"Clawback requested too early, wait for the Pool to expire and cooldown to pass\"\n },\n {\n \"code\": 6017,\n \"name\": \"UpdateNotPossible\",\n \"msg\": \"Reward pool can not be updated\"\n },\n {\n \"code\": 6018,\n \"name\": \"EntryCreationNotPossibleAfterUnlock\",\n \"msg\": \"Reward entry can not be created after stake has been unlocked for this reward pool\"\n },\n {\n \"code\": 6019,\n \"name\": \"RefundNotPossible\",\n \"msg\": \"Refund not possible for this reward entry\"\n },\n {\n \"code\": 6020,\n \"name\": \"PoolCreationLimited\",\n \"msg\": \"Pool creation limited, use nonce 0\"\n }\n ],\n \"types\": [\n {\n \"name\": \"Config\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Fee Manager authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"streamflow_fee\",\n \"docs\": [\n \"Default fee\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer_1\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n },\n {\n \"name\": \"_buffer_2\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n },\n {\n \"name\": \"_buffer_3\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"FeeValue\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"streamflow_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"RewardEntry\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Stake Entry for which reward entry was initialized\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"created_ts\",\n \"docs\": [\n \"Timestamp when reward entry has been created\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"accounted_amount\",\n \"docs\": [\n \"Sum of accounted amounts, used to correctly issue rewards in case of precision loss\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"claimed_amount\",\n \"docs\": [\n \"Sum of already claimed rewards\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_accounted_ts\",\n \"docs\": [\n \"Timestamp when rewards have been claimed last time\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_reward_amount\",\n \"docs\": [\n \"Reward amount used on last claim or entry creation\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_reward_period\",\n \"docs\": [\n \"Reward Period used on last claim or entry creation\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_sponsored\",\n \"docs\": [\n \"Whether the entry rent has been sponsored by the rent vault\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 31\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"RewardPool\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump Seed used to sign transactions\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate pools for the same mint\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool for which Reward Pool was added\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint of Reward Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Creator of the Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reward_amount\",\n \"docs\": [\n \"Amount of rewards that will be distributed per effective stake\",\n \"\",\n \"Should be a fraction of a raw token amount which is 1 / 10^9,\",\n \"i.e. `reward_amount` of `1_000_000_000` equals one raw token per effective stake\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_period\",\n \"docs\": [\n \"Period of Rewards distribution in seconds\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"permissionless\",\n \"docs\": [\n \"Whether anyone can fund the Pool\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"last_reward_amount\",\n \"docs\": [\n \"`reward_amount` used before the last update\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_reward_period\",\n \"docs\": [\n \"`reward_period` used before the last update\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_amount_update_ts\",\n \"docs\": [\n \"Time when `reward_amount` was updated the last time\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_period_update_ts\",\n \"docs\": [\n \"Time when `reward_period` was updated the last time\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that stores reward tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"funded_amount\",\n \"docs\": [\n \"Total funded amount\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"claimed_amount\",\n \"docs\": [\n \"Total number of rewards claimed\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"created_ts\",\n \"docs\": [\n \"Time when Reward Pool was created\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_claim_period\",\n \"docs\": [\n \"For how much seconds after unstake user should be able to claim rewards\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"clawed_back_ts\",\n \"docs\": [\n \"Timestamp when reward pool was clawed back\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 40\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"StakeEntry\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate stakes for the same pool\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool for which tokens were staked\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Original Owner of Staked tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the Entry\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"amount\",\n \"docs\": [\n \"Amount of deposited funds\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"duration\",\n \"docs\": [\n \"Duration of the lockup\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"effective_amount\",\n \"docs\": [\n \"Effective Amount staked, does not equal to deposited amount, accounts for Stake Weight\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"created_ts\",\n \"docs\": [\n \"Timestamp when Deposit was made\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"closed_ts\",\n \"docs\": [\n \"Timestamp when entry has been closed\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"prior_total_effective_stake\",\n \"docs\": [\n \"Total effective stake at the time of staking\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"unstake_ts\",\n \"docs\": [\n \"Timestamp when unstake was requested, will be used in case `unstake_period` is set\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_sponsored\",\n \"docs\": [\n \"Whether the entry rent has been sponsored by the rent vault\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"auto_unstake\",\n \"docs\": [\n \"Whether auto unstaking is enabled, copied from the stake pool for use in instructions that don't require the stake pool account\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 38\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"StakePool\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump Seed used to sign transactions\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate pools for the same mint\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint of the Stake Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Initial Creator\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"min_weight\",\n \"docs\": [\n \"The lowest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.\",\n \"For instance:\",\n \"* `min_weight = 1 x SCALE_FACTOR_BASE` signifies a minimum multiplier of 1x for min staking duration\",\n \"* `min_weight = 2 x SCALE_FACTOR_BASE` indicates a minimum multiplier of 2x for min staking duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_weight\",\n \"docs\": [\n \"The highest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.\",\n \"For instance:\",\n \"* `max_weight = 1 x SCALE_FACTOR_BASE` signifies a max multiplier of 1x for max staking duration\",\n \"* `max_weight = 2 x SCALE_FACTOR_BASE` indicates a max multiplier of 2x for max staking duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_duration\",\n \"docs\": [\n \"Min Duration of stake in seconds\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_duration\",\n \"docs\": [\n \"Max Duration of stake in seconds, the more duration, the more weight the stake has\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"permissionless\",\n \"docs\": [\n \"Whether anyone can add Reward Pools or just admin\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that stores staked tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"stake_mint\",\n \"docs\": [\n \"Stake Mint, will be returned in exchange for stake tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"total_stake\",\n \"docs\": [\n \"Total number of Staked tokens\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_effective_stake\",\n \"docs\": [\n \"Total staked tokens accounting for each stake weight, does not equal `total_stake`,\",\n \"represents a sum of effective stake multiplied by 10^9 for precision\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"freeze_stake_mint\",\n \"docs\": [\n \"Whether we should freeze stake mint token accounts\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"unstake_period\",\n \"docs\": [\n \"Period for unstaking, if set unstake at first should be requested, and the real unstake can only happen after this period\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_total_stake_capped\",\n \"docs\": [\n \"Whether amount of total staked tokens is limited by `remaining_total_stake` - stored as separate flag to not deal with `Option`\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"remaining_total_stake\",\n \"docs\": [\n \"Remaining total amount of staked tokens (cumulative)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"expiry_ts\",\n \"docs\": [\n \"Time when stake pool expires, staking is not possible after expiration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"auto_unstake\",\n \"docs\": [\n \"Whether auto unstaking is enabled, stake entries will be unstaked after duration\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 37\n ]\n }\n }\n ]\n }\n }\n ]\n}","{\n \"address\": \"RWRDyfZa6Rk9UYi85yjYYfGmoUqffLqjo6vZdFawEez\",\n \"metadata\": {\n \"name\": \"reward_pool_dynamic\",\n \"version\": \"2.4.0\",\n \"spec\": \"0.1.0\",\n \"description\": \"Reward pools with dynamic rewards distribution\"\n },\n \"instructions\": [\n {\n \"name\": \"change_authority\",\n \"discriminator\": [\n 50,\n 106,\n 66,\n 104,\n 99,\n 118,\n 145,\n 88\n ],\n \"accounts\": [\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current Authority\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"new_authority\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"claim_rewards\",\n \"discriminator\": [\n 4,\n 144,\n 132,\n 71,\n 116,\n 23,\n 151,\n 80\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Original Stake Pool\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Stake Entry for which rewards are being claimed\"\n ]\n },\n {\n \"name\": \"reward_entry\",\n \"docs\": [\n \"Reward Entry that stores metadata about claimed rewards\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_entry\"\n }\n ]\n }\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Reward Pool Vault that stores tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"to\",\n \"docs\": [\n \"Account to send the reward tokens to.\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"claimant\",\n \"docs\": [\n \"Who is claiming the tokens.\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"The mint to claim.\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"governor\",\n \"docs\": [\n \"Reward Pool governor\"\n ],\n \"optional\": true\n },\n {\n \"name\": \"vote\",\n \"docs\": [\n \"Vote for the active proposal\"\n ],\n \"optional\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"close_entry\",\n \"discriminator\": [\n 132,\n 26,\n 202,\n 145,\n 190,\n 37,\n 114,\n 67\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ]\n },\n {\n \"name\": \"stake_entry\",\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"stake_nonce\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 6,\n 133,\n 25,\n 160,\n 130,\n 0,\n 119,\n 110,\n 227,\n 8,\n 28,\n 85,\n 214,\n 116,\n 67,\n 41,\n 155,\n 152,\n 181,\n 139,\n 124,\n 208,\n 85,\n 71,\n 175,\n 40,\n 123,\n 71,\n 139,\n 170,\n 201,\n 178\n ]\n }\n }\n },\n {\n \"name\": \"reward_entry\",\n \"docs\": [\n \"Reward Entry that stores metadata about claimed rewards\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_entry\"\n }\n ]\n }\n },\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"rent_sponsor\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 110,\n 116,\n 45,\n 115,\n 112,\n 111,\n 110,\n 115,\n 111,\n 114\n ]\n }\n ]\n }\n }\n ],\n \"args\": [\n {\n \"name\": \"stake_nonce\",\n \"type\": \"u32\"\n }\n ]\n },\n {\n \"name\": \"create_entry\",\n \"discriminator\": [\n 248,\n 207,\n 142,\n 242,\n 66,\n 162,\n 150,\n 16\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Original Stake Pool\"\n ],\n \"relations\": [\n \"reward_pool\",\n \"stake_entry\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Stake Entry for which rewards are being claimed\"\n ]\n },\n {\n \"name\": \"reward_entry\",\n \"docs\": [\n \"Reward Entry that stores metadata about claimed rewards\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_entry\"\n }\n ]\n }\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Rent payer\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"authority\"\n },\n {\n \"name\": \"rent_sponsor\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 110,\n 116,\n 45,\n 115,\n 112,\n 111,\n 110,\n 115,\n 111,\n 114\n ]\n }\n ]\n }\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"create_pool\",\n \"discriminator\": [\n 233,\n 146,\n 209,\n 142,\n 207,\n 104,\n 64,\n 188\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool to Which Reward Pool is being added\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool to add\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 112,\n 111,\n 111,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint used for rewards\"\n ]\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that will store the tokens\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 119,\n 97,\n 114,\n 100,\n 45,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"reward_pool\"\n }\n ]\n }\n },\n {\n \"name\": \"governor\",\n \"docs\": [\n \"Governor to be set for the RewardPool\"\n ],\n \"optional\": true\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Reward Pool creator\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"permissionless\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"claim_period\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"claim_start_ts\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"fund_pool\",\n \"discriminator\": [\n 36,\n 57,\n 233,\n 176,\n 181,\n 20,\n 87,\n 159\n ],\n \"accounts\": [\n {\n \"name\": \"funder\",\n \"docs\": [\n \"Reward Pool funder\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"from\",\n \"docs\": [\n \"Token Account from which tokens will be transferred\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Reward Pool Vault that stores tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint of reward tokens\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Original Stake Pool\"\n ],\n \"relations\": [\n \"reward_pool\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"streamflow_treasury\",\n \"writable\": true,\n \"address\": \"5SEpbdjFK5FxwTvfsGMXVQTD2v4M2c5tyRTxhdsPkgDw\"\n },\n {\n \"name\": \"streamflow_treasury_tokens\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"streamflow_treasury\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"config\",\n \"docs\": [\n \"Fee Configuration\"\n ],\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 99,\n 111,\n 110,\n 102,\n 105,\n 103\n ]\n }\n ],\n \"program\": {\n \"kind\": \"account\",\n \"path\": \"fee_program\"\n }\n }\n },\n {\n \"name\": \"fee_value\",\n \"docs\": [\n \"Fee Value for the funder account\"\n ],\n \"optional\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 102,\n 101,\n 101,\n 45,\n 118,\n 97,\n 108,\n 117,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"funder\"\n }\n ],\n \"program\": {\n \"kind\": \"account\",\n \"path\": \"fee_program\"\n }\n }\n },\n {\n \"name\": \"fee_program\",\n \"address\": \"FEELzfBhsWXTNJX53zZcDVfRNoFYZQ6cZA3jLiGVL16V\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"set_governor\",\n \"discriminator\": [\n 47,\n 75,\n 9,\n 199,\n 215,\n 187,\n 161,\n 161\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool - to verify the governor belongs to the same stake pool\"\n ],\n \"relations\": [\n \"reward_pool\",\n \"governor\"\n ]\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool - to be updated with new governor\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"governor\",\n \"docs\": [\n \"New Governor to be set for the RewardPool\"\n ]\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current Authority - only authority can set the governor\"\n ],\n \"writable\": true,\n \"signer\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"update_pool\",\n \"discriminator\": [\n 239,\n 214,\n 170,\n 78,\n 36,\n 35,\n 30,\n 34\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current Authority\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"claim_period\",\n \"type\": {\n \"option\": \"u64\"\n }\n },\n {\n \"name\": \"permissionless\",\n \"type\": {\n \"option\": \"bool\"\n }\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"Config\",\n \"discriminator\": [\n 155,\n 12,\n 170,\n 224,\n 30,\n 250,\n 204,\n 130\n ]\n },\n {\n \"name\": \"FeeValue\",\n \"discriminator\": [\n 10,\n 188,\n 89,\n 64,\n 4,\n 183,\n 231,\n 0\n ]\n },\n {\n \"name\": \"Governor\",\n \"discriminator\": [\n 37,\n 136,\n 44,\n 80,\n 68,\n 85,\n 213,\n 178\n ]\n },\n {\n \"name\": \"RewardEntry\",\n \"discriminator\": [\n 208,\n 191,\n 173,\n 14,\n 213,\n 84,\n 179,\n 162\n ]\n },\n {\n \"name\": \"RewardPool\",\n \"discriminator\": [\n 134,\n 121,\n 197,\n 211,\n 133,\n 154,\n 82,\n 32\n ]\n },\n {\n \"name\": \"StakeEntry\",\n \"discriminator\": [\n 187,\n 127,\n 9,\n 35,\n 155,\n 68,\n 86,\n 40\n ]\n },\n {\n \"name\": \"StakePool\",\n \"discriminator\": [\n 121,\n 34,\n 206,\n 21,\n 79,\n 127,\n 255,\n 28\n ]\n },\n {\n \"name\": \"Vote\",\n \"discriminator\": [\n 96,\n 91,\n 104,\n 57,\n 145,\n 35,\n 172,\n 155\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"ArithmeticError\",\n \"msg\": \"Arithmetic Error (overflow/underflow)\"\n },\n {\n \"code\": 6001,\n \"name\": \"Unauthorized\",\n \"msg\": \"Account is not authorized to execute this instruction\"\n },\n {\n \"code\": 6002,\n \"name\": \"OwnerMismatch\",\n \"msg\": \"Token account owner did not match intended owner\"\n },\n {\n \"code\": 6003,\n \"name\": \"InvalidRewardPool\",\n \"msg\": \"Provided Reward Pool is Invalid\"\n },\n {\n \"code\": 6004,\n \"name\": \"InvalidRewardVault\",\n \"msg\": \"Incorrect vault for RewardPool\"\n },\n {\n \"code\": 6005,\n \"name\": \"InvalidRewardEntry\",\n \"msg\": \"Provided Reward Entry is Invalid\"\n },\n {\n \"code\": 6006,\n \"name\": \"InvalidStakeEntry\",\n \"msg\": \"Provided Stake Entry is Invalid\"\n },\n {\n \"code\": 6007,\n \"name\": \"InvalidStakePool\",\n \"msg\": \"Provided Stake Pool does not equal the Governor Stake Pool\"\n },\n {\n \"code\": 6008,\n \"name\": \"InvalidMint\",\n \"msg\": \"Provided Mint does not equal the Pool Mint\"\n },\n {\n \"code\": 6009,\n \"name\": \"StakeEntryClosed\",\n \"msg\": \"Stake Entry is closed, rewards are not claimable anymore\"\n },\n {\n \"code\": 6010,\n \"name\": \"StakeEntryOpened\",\n \"msg\": \"Stake Entry is still opened, closing is not possible\"\n },\n {\n \"code\": 6011,\n \"name\": \"InvalidClaimStartTs\",\n \"msg\": \"Invalid claim start ts provided\"\n },\n {\n \"code\": 6012,\n \"name\": \"ClaimTooEarly\",\n \"msg\": \"Claiming is not possible until claim period has passed\"\n },\n {\n \"code\": 6013,\n \"name\": \"RewardPoolDrained\",\n \"msg\": \"Reward Pool does not have enough Rewards for Claiming\"\n },\n {\n \"code\": 6014,\n \"name\": \"InvalidGovernor\",\n \"msg\": \"Provided governor is invalid\"\n },\n {\n \"code\": 6015,\n \"name\": \"InvalidVote\",\n \"msg\": \"Provided vote is invalid\"\n },\n {\n \"code\": 6016,\n \"name\": \"VoteRequired\",\n \"msg\": \"Vote is required for claiming\"\n }\n ],\n \"types\": [\n {\n \"name\": \"Config\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Fee Manager authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"streamflow_fee\",\n \"docs\": [\n \"Default fee\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer_1\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n },\n {\n \"name\": \"_buffer_2\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n },\n {\n \"name\": \"_buffer_3\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"FeeValue\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"streamflow_fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Governor\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump Seed used to sign transactions\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to support multiple governors for the same pool\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool for which Reward Pool was added\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the Governor that can add proposals and set the current one\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"current_proposal\",\n \"docs\": [\n \"Address of the current proposal\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"total_proposals\",\n \"docs\": [\n \"Total number of created proposals\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 128\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"RewardEntry\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"reward_pool\",\n \"docs\": [\n \"Reward Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Stake Entry for which reward entry was initialized\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"created_ts\",\n \"docs\": [\n \"Timestamp when reward entry has been created\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"rewards_state\",\n \"docs\": [\n \"State of the reward disitrbution, accounts for the last state in the reward pool\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"claimed_amount\",\n \"docs\": [\n \"Sum of already claimed rewards\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_claimed_ts\",\n \"docs\": [\n \"Timestamp when rewards have been claimed last time\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_sponsored\",\n \"docs\": [\n \"Whether the entry rent has been sponsored by the rent vault\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 31\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"RewardPool\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump Seed used to sign transactions\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate pools for the same mint\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool for which Reward Pool was added\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"governor\",\n \"docs\": [\n \"Governor of the Stake Pool, should be passed at claiming if set\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint of Reward Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Creator of the Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"permissionless\",\n \"docs\": [\n \"Whether anyone can fund the Pool\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"claim_period\",\n \"docs\": [\n \"Period of claims, may be used to block consecutive claims within the same period\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"claim_start_ts\",\n \"docs\": [\n \"Time when claiming starts, will be used as a base timestamp if claim_period is set\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that stores reward tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"funded_amount\",\n \"docs\": [\n \"Total funded amount\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"claimed_amount\",\n \"docs\": [\n \"Total number of rewards claimed\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"rewards_state\",\n \"docs\": [\n \"Ever increasing accumulator of the amount of rewards per effective stake.\\n Said another way, if a user deposited before any rewards were added to the\\n `vault`, then this would be the token amount per effective stake they could\\n claim.\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"last_amount\",\n \"docs\": [\n \"latest amount of tokens in the vault\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"created_ts\",\n \"docs\": [\n \"Time when Reward Pool was created\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 128\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"StakeEntry\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate stakes for the same pool\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool for which tokens were staked\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Original Owner of Staked tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the Entry\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"amount\",\n \"docs\": [\n \"Amount of deposited funds\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"duration\",\n \"docs\": [\n \"Duration of the lockup\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"effective_amount\",\n \"docs\": [\n \"Effective Amount staked, does not equal to deposited amount, accounts for Stake Weight\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"created_ts\",\n \"docs\": [\n \"Timestamp when Deposit was made\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"closed_ts\",\n \"docs\": [\n \"Timestamp when entry has been closed\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"prior_total_effective_stake\",\n \"docs\": [\n \"Total effective stake at the time of staking\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"unstake_ts\",\n \"docs\": [\n \"Timestamp when unstake was requested, will be used in case `unstake_period` is set\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_sponsored\",\n \"docs\": [\n \"Whether the entry rent has been sponsored by the rent vault\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"auto_unstake\",\n \"docs\": [\n \"Whether auto unstaking is enabled, copied from the stake pool for use in instructions that don't require the stake pool account\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 38\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"StakePool\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump Seed used to sign transactions\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate pools for the same mint\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint of the Stake Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Initial Creator\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"min_weight\",\n \"docs\": [\n \"The lowest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.\",\n \"For instance:\",\n \"* `min_weight = 1 x SCALE_FACTOR_BASE` signifies a minimum multiplier of 1x for min staking duration\",\n \"* `min_weight = 2 x SCALE_FACTOR_BASE` indicates a minimum multiplier of 2x for min staking duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_weight\",\n \"docs\": [\n \"The highest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.\",\n \"For instance:\",\n \"* `max_weight = 1 x SCALE_FACTOR_BASE` signifies a max multiplier of 1x for max staking duration\",\n \"* `max_weight = 2 x SCALE_FACTOR_BASE` indicates a max multiplier of 2x for max staking duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_duration\",\n \"docs\": [\n \"Min Duration of stake in seconds\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_duration\",\n \"docs\": [\n \"Max Duration of stake in seconds, the more duration, the more weight the stake has\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"permissionless\",\n \"docs\": [\n \"Whether anyone can add Reward Pools or just admin\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that stores staked tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"stake_mint\",\n \"docs\": [\n \"Stake Mint, will be returned in exchange for stake tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"total_stake\",\n \"docs\": [\n \"Total number of Staked tokens\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_effective_stake\",\n \"docs\": [\n \"Total staked tokens accounting for each stake weight, does not equal `total_stake`,\",\n \"represents a sum of effective stake multiplied by 10^9 for precision\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"freeze_stake_mint\",\n \"docs\": [\n \"Whether we should freeze stake mint token accounts\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"unstake_period\",\n \"docs\": [\n \"Period for unstaking, if set unstake at first should be requested, and the real unstake can only happen after this period\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_total_stake_capped\",\n \"docs\": [\n \"Whether amount of total staked tokens is limited by `remaining_total_stake` - stored as separate flag to not deal with `Option`\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"remaining_total_stake\",\n \"docs\": [\n \"Remaining total amount of staked tokens (cumulative)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"expiry_ts\",\n \"docs\": [\n \"Time when stake pool expires, staking is not possible after expiration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"auto_unstake\",\n \"docs\": [\n \"Whether auto unstaking is enabled, stake entries will be unstaked after duration\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 37\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Vote\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"proposal\",\n \"docs\": [\n \"Question to which vote was provided\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"voter\",\n \"docs\": [\n \"Voter that voted on the proposal\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"option_index\",\n \"docs\": [\n \"Index of the option used for voting\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"weight\",\n \"docs\": [\n \"Weight of the vote, correspond to number of sTokens used\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_sponsored\",\n \"docs\": [\n \"Whether the vote rent has been sponsored by the rent vault\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 63\n ]\n }\n }\n ]\n }\n }\n ]\n}","{\n \"address\": \"STAKEvGqQTtzJZH6BWDcbpzXXn2BBerPAgQ3EGLN2GH\",\n \"metadata\": {\n \"name\": \"stake_pool\",\n \"version\": \"2.4.0\",\n \"spec\": \"0.1.0\",\n \"description\": \"Program to manage Stake Pools and stake/unstake tokens\"\n },\n \"instructions\": [\n {\n \"name\": \"change_authority\",\n \"discriminator\": [\n 50,\n 106,\n 66,\n 104,\n 99,\n 118,\n 145,\n 88\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current Authority\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"new_authority\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"close_entry\",\n \"discriminator\": [\n 132,\n 26,\n 202,\n 145,\n 190,\n 37,\n 114,\n 67\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"relations\": [\n \"stake_entry\"\n ]\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Stake Entry\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"rent_sponsor\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 110,\n 116,\n 45,\n 115,\n 112,\n 111,\n 110,\n 115,\n 111,\n 114\n ]\n }\n ]\n }\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"create_lookup_table\",\n \"discriminator\": [\n 74,\n 26,\n 45,\n 214,\n 23,\n 155,\n 143,\n 153\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool\"\n ]\n },\n {\n \"name\": \"lookup_table_link\",\n \"docs\": [\n \"Link that will store address of the actual Lookup Table\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 108,\n 111,\n 111,\n 107,\n 117,\n 112,\n 45,\n 116,\n 97,\n 98,\n 108,\n 101\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"lookup_table\",\n \"writable\": true\n },\n {\n \"name\": \"lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Payer of the transaction\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"authority\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"recent_slot\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"create_pool\",\n \"discriminator\": [\n 233,\n 146,\n 209,\n 142,\n 207,\n 104,\n 64,\n 188\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 112,\n 111,\n 111,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"creator\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint used for staking\"\n ]\n },\n {\n \"name\": \"vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n }\n ]\n }\n },\n {\n \"name\": \"stake_mint\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 109,\n 105,\n 110,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n }\n ]\n }\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Stake Pool creator\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"max_weight\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_duration\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_duration\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"permissionless\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"freeze_stake_mint\",\n \"type\": {\n \"option\": \"bool\"\n }\n },\n {\n \"name\": \"unstake_period\",\n \"type\": {\n \"option\": \"u64\"\n }\n }\n ]\n },\n {\n \"name\": \"create_pool_v2\",\n \"discriminator\": [\n 133,\n 27,\n 21,\n 38,\n 67,\n 86,\n 91,\n 132\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 112,\n 111,\n 111,\n 108\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"mint\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"creator\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint used for staking\"\n ]\n },\n {\n \"name\": \"vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 118,\n 97,\n 117,\n 108,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n }\n ]\n }\n },\n {\n \"name\": \"stake_mint\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 109,\n 105,\n 110,\n 116\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n }\n ]\n }\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Stake Pool creator\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"max_weight\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_duration\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_duration\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"permissionless\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"freeze_stake_mint\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"unstake_period\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_total_stake_cumulative\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"expiry_ts\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"auto_unstake\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"name\": \"migrate_entry\",\n \"discriminator\": [\n 239,\n 154,\n 55,\n 173,\n 110,\n 36,\n 188,\n 214\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool_from\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"writable\": true,\n \"address\": \"Cja9f8JFS6sTgBqSRZGBrA2HDbUj4MZUGdtRYruKTeJp\"\n },\n {\n \"name\": \"stake_pool_to\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"writable\": true,\n \"address\": \"BXRBbWMkscNBZoBL4fgRk77GBUX9eVP4AendQEumtPi8\"\n },\n {\n \"name\": \"stake_entry_from\",\n \"docs\": [\n \"Entry that will store Stake Metadata\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool_from\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"stake_entry_to\",\n \"docs\": [\n \"Entry that will store Stake Metadata\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool_to\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"new_nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"vault_from\",\n \"docs\": [\n \"Stake Pool Vault that stores staked tokens\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"vault_to\",\n \"docs\": [\n \"Stake Pool Vault that stores staked tokens\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"to\",\n \"docs\": [\n \"Token Account to transfer Stake Mint tokens to\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Owner of the Token Account from which tokens will be staked\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"authority\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Original mint of staked tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool_from\",\n \"stake_pool_to\"\n ]\n },\n {\n \"name\": \"stake_mint_from\",\n \"docs\": [\n \"Mint of stake tokens that will be minted in return for staking\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"stake_mint_to\",\n \"docs\": [\n \"Mint of stake tokens that will be minted in return for staking\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"new_nonce\",\n \"type\": \"u32\"\n }\n ]\n },\n {\n \"name\": \"request_unstake\",\n \"discriminator\": [\n 44,\n 154,\n 110,\n 253,\n 160,\n 202,\n 54,\n 34\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"writable\": true,\n \"relations\": [\n \"stake_entry\"\n ]\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Entry that stores Stake Metadata\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Stake Entry Authority\"\n ],\n \"writable\": true,\n \"signer\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"set_token_metadata_spl\",\n \"discriminator\": [\n 244,\n 162,\n 227,\n 218,\n 129,\n 5,\n 25,\n 253\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Stake Pool Authority\"\n ],\n \"signer\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"stake_pool\"\n },\n {\n \"name\": \"stake_mint\",\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"metadata_account\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 109,\n 101,\n 116,\n 97,\n 100,\n 97,\n 116,\n 97\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"metadata_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"account\",\n \"path\": \"metadata_program\"\n }\n }\n },\n {\n \"name\": \"metadata_program\",\n \"docs\": [\n \"MPL Program\"\n ],\n \"address\": \"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"rent\",\n \"address\": \"SysvarRent111111111111111111111111111111111\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"name\": \"uri\",\n \"type\": \"string\"\n }\n ]\n },\n {\n \"name\": \"set_token_metadata_t22\",\n \"discriminator\": [\n 239,\n 134,\n 91,\n 83,\n 196,\n 57,\n 120,\n 106\n ],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Stake Pool Authority\"\n ],\n \"signer\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"stake_pool\"\n },\n {\n \"name\": \"stake_mint\",\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"name\": \"uri\",\n \"type\": \"string\"\n }\n ]\n },\n {\n \"name\": \"stake\",\n \"discriminator\": [\n 206,\n 176,\n 202,\n 18,\n 200,\n 209,\n 179,\n 108\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Entry that will store Stake Metadata\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 115,\n 116,\n 97,\n 107,\n 101,\n 45,\n 101,\n 110,\n 116,\n 114,\n 121\n ]\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_pool\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"arg\",\n \"path\": \"nonce\"\n }\n ]\n }\n },\n {\n \"name\": \"from\",\n \"docs\": [\n \"Token Account from which stake tokens will be transferred\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Stake Pool Vault that stores staked tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"to\",\n \"docs\": [\n \"Token Account to transfer Stake Mint tokens to\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Owner of the Token Account from which tokens will be staked\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"authority\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Original mint of staked tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"stake_mint\",\n \"docs\": [\n \"Mint of stake tokens that will be minted in return for staking\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"rent_sponsor\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 110,\n 116,\n 45,\n 115,\n 112,\n 111,\n 110,\n 115,\n 111,\n 114\n ]\n }\n ]\n }\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"nonce\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"duration\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"unstake\",\n \"discriminator\": [\n 90,\n 95,\n 107,\n 42,\n 205,\n 124,\n 50,\n 225\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"writable\": true,\n \"relations\": [\n \"stake_entry\"\n ]\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Entry that stores Stake Metadata\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"from\",\n \"docs\": [\n \"Stake Mint Token account\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that stores Staked tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"to\",\n \"docs\": [\n \"Token account to withdraw Staked tokens to\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Stake Entry Authority\"\n ],\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Original mint of staked tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"stake_mint\",\n \"docs\": [\n \"Stake Mint used to exchanged Staked tokens to\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"rent_sponsor\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 114,\n 101,\n 110,\n 116,\n 45,\n 115,\n 112,\n 111,\n 110,\n 115,\n 111,\n 114\n ]\n }\n ]\n }\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"should_close\",\n \"type\": {\n \"option\": \"bool\"\n }\n }\n ]\n },\n {\n \"name\": \"unstake_as_worker\",\n \"discriminator\": [\n 18,\n 36,\n 224,\n 241,\n 46,\n 185,\n 228,\n 142\n ],\n \"accounts\": [\n {\n \"name\": \"stake_pool\",\n \"writable\": true,\n \"relations\": [\n \"stake_entry\"\n ]\n },\n {\n \"name\": \"stake_entry\",\n \"docs\": [\n \"Entry that stores Stake Metadata\"\n ],\n \"writable\": true\n },\n {\n \"name\": \"from\",\n \"docs\": [\n \"Stake Mint Token account\"\n ],\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"account\",\n \"path\": \"authority\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"token_program\"\n },\n {\n \"kind\": \"account\",\n \"path\": \"stake_mint\"\n }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89\n ]\n }\n }\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that stores Staked tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"to\",\n \"writable\": true\n },\n {\n \"name\": \"authority\",\n \"writable\": true\n },\n {\n \"name\": \"worker\",\n \"docs\": [\n \"Auto unstake worker\"\n ],\n \"writable\": true,\n \"signer\": true,\n \"address\": \"wdrwhnCv4pzW8beKsbPa4S2UDZrXenjg16KJdKSpb5u\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Original mint of staked tokens\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"stake_mint\",\n \"docs\": [\n \"Stake Mint used to exchanged Staked tokens to\"\n ],\n \"writable\": true,\n \"relations\": [\n \"stake_pool\"\n ]\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": []\n }\n ],\n \"accounts\": [\n {\n \"name\": \"LookupTableLink\",\n \"discriminator\": [\n 133,\n 88,\n 187,\n 141,\n 1,\n 53,\n 72,\n 236\n ]\n },\n {\n \"name\": \"StakeEntry\",\n \"discriminator\": [\n 187,\n 127,\n 9,\n 35,\n 155,\n 68,\n 86,\n 40\n ]\n },\n {\n \"name\": \"StakePool\",\n \"discriminator\": [\n 121,\n 34,\n 206,\n 21,\n 79,\n 127,\n 255,\n 28\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"InvalidDuration\",\n \"msg\": \"Minimum duration must be less than the maximum, maximum should be a realistic number of seconds\"\n },\n {\n \"code\": 6001,\n \"name\": \"InvalidWeight\",\n \"msg\": \"Weight should be more than minimum\"\n },\n {\n \"code\": 6002,\n \"name\": \"DurationTooShort\",\n \"msg\": \"Duration of staking can't be less than minimum duration of the pool\"\n },\n {\n \"code\": 6003,\n \"name\": \"InvalidStakeAmount\",\n \"msg\": \"Stake amount should be more than 0\"\n },\n {\n \"code\": 6004,\n \"name\": \"ArithmeticError\",\n \"msg\": \"Arithmetic Error (overflow/underflow)\"\n },\n {\n \"code\": 6005,\n \"name\": \"Unauthorized\",\n \"msg\": \"Account is not authorized to execute this instruction\"\n },\n {\n \"code\": 6006,\n \"name\": \"OwnerMismatch\",\n \"msg\": \"Token account owner did not match intended owner\"\n },\n {\n \"code\": 6007,\n \"name\": \"InvalidMint\",\n \"msg\": \"Provided Mint does not equal the Pool Mint\"\n },\n {\n \"code\": 6008,\n \"name\": \"InvalidStakeVault\",\n \"msg\": \"Provided Stake Vault does not equal the Pool Vault\"\n },\n {\n \"code\": 6009,\n \"name\": \"InvalidStakeMint\",\n \"msg\": \"Provided Stake Mint does not equal the Pool Stake Mint\"\n },\n {\n \"code\": 6010,\n \"name\": \"InvalidStakePool\",\n \"msg\": \"Provided Stake Pool does not equal the Entry Stake Pool\"\n },\n {\n \"code\": 6011,\n \"name\": \"InvalidPoolMint\",\n \"msg\": \"Provided Mint does not equal the Pool Mint\"\n },\n {\n \"code\": 6012,\n \"name\": \"ClosedStake\",\n \"msg\": \"Stake Entry is already closed and can't be used\"\n },\n {\n \"code\": 6013,\n \"name\": \"LockedStake\",\n \"msg\": \"Stake is locked, unstake is not possible\"\n },\n {\n \"code\": 6014,\n \"name\": \"UnsupportedTokenExtensions\",\n \"msg\": \"Mint has unsupported Token Extensions\"\n },\n {\n \"code\": 6015,\n \"name\": \"UnstakeRequestNotRequired\",\n \"msg\": \"Unstake request is not required\"\n },\n {\n \"code\": 6016,\n \"name\": \"UnstakeRequestRequired\",\n \"msg\": \"Stake pool has unstake period, request is required prior to unstake\"\n },\n {\n \"code\": 6017,\n \"name\": \"UnstakeTooEarly\",\n \"msg\": \"Unstake is not possible until unstake period has passed\"\n },\n {\n \"code\": 6018,\n \"name\": \"ActiveStake\",\n \"msg\": \"Stake Entry is still active, can't be closed\"\n },\n {\n \"code\": 6019,\n \"name\": \"InvalidMinDuration\",\n \"msg\": \"Minimum duration should be at least 1, for auto-unstake 7 days at least\"\n },\n {\n \"code\": 6020,\n \"name\": \"AutoUnstakeNotPossible\",\n \"msg\": \"Auto unstake is not possible with unstake period or with a permissionless pool\"\n },\n {\n \"code\": 6021,\n \"name\": \"InvalidExpiry\",\n \"msg\": \"Expiry can not be less than max duration\"\n },\n {\n \"code\": 6022,\n \"name\": \"StakePayerNotSupported\",\n \"msg\": \"Separate payer account is not supported when staking in a pool with auto-unstake\"\n },\n {\n \"code\": 6023,\n \"name\": \"StakeAmountExceedsMax\",\n \"msg\": \"Stake amount exceeds max total stake\"\n },\n {\n \"code\": 6024,\n \"name\": \"StakeDurationExceedsExpiry\",\n \"msg\": \"Stake duration exceeds stake pool expiry\"\n },\n {\n \"code\": 6025,\n \"name\": \"AccountDelegateRevoked\",\n \"msg\": \"Token account delegate has been revoked by staker, can't burn tokens\"\n },\n {\n \"code\": 6026,\n \"name\": \"RefundNotPossible\",\n \"msg\": \"Refund not possible for this stake entry\"\n }\n ],\n \"types\": [\n {\n \"name\": \"LookupTableLink\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate lookup tables for the same stake pool\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool for which tokens were staked\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the Entry\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"lookup_table\",\n \"docs\": [\n \"Pubkey of the address lookup table\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 64\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"StakeEntry\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate stakes for the same pool\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"stake_pool\",\n \"docs\": [\n \"Stake Pool for which tokens were staked\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"payer\",\n \"docs\": [\n \"Original Owner of Staked tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Authority of the Entry\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"amount\",\n \"docs\": [\n \"Amount of deposited funds\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"duration\",\n \"docs\": [\n \"Duration of the lockup\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"effective_amount\",\n \"docs\": [\n \"Effective Amount staked, does not equal to deposited amount, accounts for Stake Weight\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"created_ts\",\n \"docs\": [\n \"Timestamp when Deposit was made\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"closed_ts\",\n \"docs\": [\n \"Timestamp when entry has been closed\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"prior_total_effective_stake\",\n \"docs\": [\n \"Total effective stake at the time of staking\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"unstake_ts\",\n \"docs\": [\n \"Timestamp when unstake was requested, will be used in case `unstake_period` is set\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_sponsored\",\n \"docs\": [\n \"Whether the entry rent has been sponsored by the rent vault\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"auto_unstake\",\n \"docs\": [\n \"Whether auto unstaking is enabled, copied from the stake pool for use in instructions that don't require the stake pool account\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 38\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"StakePool\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump Seed used to sign transactions\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"nonce\",\n \"docs\": [\n \"Nonce to differentiate pools for the same mint\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Mint of the Stake Pool\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"creator\",\n \"docs\": [\n \"Initial Creator\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"Current authority\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"min_weight\",\n \"docs\": [\n \"The lowest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.\",\n \"For instance:\",\n \"* `min_weight = 1 x SCALE_FACTOR_BASE` signifies a minimum multiplier of 1x for min staking duration\",\n \"* `min_weight = 2 x SCALE_FACTOR_BASE` indicates a minimum multiplier of 2x for min staking duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_weight\",\n \"docs\": [\n \"The highest weight awarded for staking, measured as a fraction of `1 / SCALE_FACTOR_BASE`.\",\n \"For instance:\",\n \"* `max_weight = 1 x SCALE_FACTOR_BASE` signifies a max multiplier of 1x for max staking duration\",\n \"* `max_weight = 2 x SCALE_FACTOR_BASE` indicates a max multiplier of 2x for max staking duration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_duration\",\n \"docs\": [\n \"Min Duration of stake in seconds\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_duration\",\n \"docs\": [\n \"Max Duration of stake in seconds, the more duration, the more weight the stake has\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"permissionless\",\n \"docs\": [\n \"Whether anyone can add Reward Pools or just admin\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"vault\",\n \"docs\": [\n \"Escrow Account that stores staked tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"stake_mint\",\n \"docs\": [\n \"Stake Mint, will be returned in exchange for stake tokens\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"total_stake\",\n \"docs\": [\n \"Total number of Staked tokens\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_effective_stake\",\n \"docs\": [\n \"Total staked tokens accounting for each stake weight, does not equal `total_stake`,\",\n \"represents a sum of effective stake multiplied by 10^9 for precision\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"freeze_stake_mint\",\n \"docs\": [\n \"Whether we should freeze stake mint token accounts\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"unstake_period\",\n \"docs\": [\n \"Period for unstaking, if set unstake at first should be requested, and the real unstake can only happen after this period\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"is_total_stake_capped\",\n \"docs\": [\n \"Whether amount of total staked tokens is limited by `remaining_total_stake` - stored as separate flag to not deal with `Option`\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"remaining_total_stake\",\n \"docs\": [\n \"Remaining total amount of staked tokens (cumulative)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"expiry_ts\",\n \"docs\": [\n \"Time when stake pool expires, staking is not possible after expiration\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"auto_unstake\",\n \"docs\": [\n \"Whether auto unstaking is enabled, stake entries will be unstaked after duration\"\n ],\n \"type\": \"bool\"\n },\n {\n \"name\": \"_buffer\",\n \"docs\": [\n \"Buffer for additional fields\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 37\n ]\n }\n }\n ]\n }\n }\n ]\n}","import { PublicKey } from \"@solana/web3.js\";\n// eslint-disable-next-line no-restricted-imports\nimport BN from \"bn.js\";\n\nimport {\n STAKE_POOL_PREFIX,\n STAKE_VAULT_PREFIX,\n STAKE_MINT_PREFIX,\n STAKE_ENTRY_PREFIX,\n REWARD_POOL_PREFIX,\n REWARD_VAULT_PREFIX,\n REWARD_ENTRY_PREFIX,\n CONFIG_PREFIX,\n FEE_VALUE_PREFIX,\n} from \"../constants.js\";\n\nexport const deriveStakePoolPDA = (\n programId: PublicKey,\n mint: PublicKey,\n authority: PublicKey,\n nonce: number,\n): PublicKey => {\n return PublicKey.findProgramAddressSync(\n [STAKE_POOL_PREFIX, mint.toBuffer(), authority.toBuffer(), new BN(nonce).toArrayLike(Buffer, \"le\", 1)],\n programId,\n )[0];\n};\n\nexport const deriveStakeVaultPDA = (programId: PublicKey, stakePool: PublicKey): PublicKey => {\n return PublicKey.findProgramAddressSync([STAKE_VAULT_PREFIX, stakePool.toBuffer()], programId)[0];\n};\n\nexport const deriveStakeMintPDA = (programId: PublicKey, stakePool: PublicKey): PublicKey => {\n return PublicKey.findProgramAddressSync([STAKE_MINT_PREFIX, stakePool.toBuffer()], programId)[0];\n};\n\nexport const deriveStakeEntryPDA = (\n programId: PublicKey,\n stakePool: PublicKey,\n authority: PublicKey,\n nonce: number,\n): PublicKey => {\n return PublicKey.findProgramAddressSync(\n [STAKE_ENTRY_PREFIX, stakePool.toBuffer(), authority.toBuffer(), new BN(nonce).toArrayLike(Buffer, \"le\", 4)],\n programId,\n )[0];\n};\n\nexport const deriveRewardPoolPDA = (\n programId: PublicKey,\n stakePool: PublicKey,\n mint: PublicKey,\n nonce: number,\n): PublicKey => {\n return PublicKey.findProgramAddressSync(\n [REWARD_POOL_PREFIX, stakePool.toBuffer(), mint.toBuffer(), new BN(nonce).toArrayLike(Buffer, \"le\", 1)],\n programId,\n )[0];\n};\n\nexport const deriveRewardVaultPDA = (programId: PublicKey, rewardPool: PublicKey): PublicKey => {\n return PublicKey.findProgramAddressSync([REWARD_VAULT_PREFIX, rewardPool.toBuffer()], programId)[0];\n};\n\nexport const deriveRewardEntryPDA = (programId: PublicKey, rewardPool: PublicKey, stakeEntry: PublicKey): PublicKey => {\n return PublicKey.findProgramAddressSync(\n [REWARD_ENTRY_PREFIX, rewardPool.toBuffer(), stakeEntry.toBuffer()],\n programId,\n )[0];\n};\n\nexport const deriveConfigPDA = (programId: PublicKey): PublicKey => {\n return PublicKey.findProgramAddressSync([CONFIG_PREFIX], programId)[0];\n};\n\nexport const deriveFeeValuePDA = (programId: PublicKey, target: PublicKey): PublicKey => {\n return PublicKey.findProgramAddressSync([FEE_VALUE_PREFIX, target.toBuffer()], programId)[0];\n};\n","import type { AccountsCoder, AnchorError, Idl, IdlAccounts, ProgramAccount, ProgramError } from \"@coral-xyz/anchor\";\nimport { Program, parseIdlErrors, translateError } from \"@coral-xyz/anchor\";\nimport { TOKEN_PROGRAM_ID, getAssociatedTokenAddressSync } from \"@solana/spl-token\";\nimport {\n type Commitment,\n Connection,\n type ConnectionConfig,\n PublicKey,\n type TransactionInstruction,\n} from \"@solana/web3.js\";\nimport { ContractError, ICluster, type ITransactionResult, invariant } from \"@streamflow/common\";\nimport {\n buildSendThrottler,\n checkOrCreateAtaBatch,\n createAndEstimateTransaction,\n getFilters,\n pk,\n prepareBaseInstructions,\n prepareTransaction,\n signAndExecuteTransaction,\n unwrapExecutionParams,\n} from \"@streamflow/common\";\nimport type PQueue from \"p-queue\";\nimport BN from \"bn.js\";\n\nimport {\n REWARD_ENTRY_BYTE_OFFSETS,\n REWARD_POOL_BYTE_OFFSETS,\n REWARD_POOL_DYNAMIC_PROGRAM_ID,\n REWARD_POOL_PROGRAM_ID,\n STAKE_ENTRY_BYTE_OFFSETS,\n STAKE_POOL_BYTE_OFFSETS,\n STAKE_POOL_PROGRAM_ID,\n STREAMFLOW_TREASURY_PUBLIC_KEY,\n} from \"./constants.js\";\nimport { type FeeManager as FeeManagerProgramType } from \"./descriptor/fee_manager.js\";\nimport GovernorIDL from \"./descriptor/idl/governor.json\";\nimport FeeManagerIDL from \"./descriptor/idl/fee_manager.json\";\nimport RewardPoolIDL from \"./descriptor/idl/reward_pool.json\";\nimport RewardPoolDynamicIDL from \"./descriptor/idl/reward_pool_dynamic.json\";\nimport StakePoolIDL from \"./descriptor/idl/stake_pool.json\";\nimport { type Governor as GovernorProgramType } from \"./descriptor/governor.js\";\nimport { type RewardPool as RewardPoolProgramType } from \"./descriptor/reward_pool.js\";\nimport { type RewardPoolDynamic as RewardPoolDynamicProgramType } from \"./descriptor/reward_pool_dynamic.js\";\nimport { type StakePool as StakePoolProgramType } from \"./descriptor/stake_pool.js\";\nimport {\n deriveConfigPDA,\n deriveFeeValuePDA,\n deriveRewardPoolPDA,\n deriveRewardVaultPDA,\n deriveStakeEntryPDA,\n deriveStakePoolPDA,\n} from \"./lib/derive-accounts.js\";\nimport type {\n ClaimRewardPoolArgs,\n CloseRewardEntryArgs,\n CloseStakeEntryArgs,\n CreateRewardEntryArgs,\n CreateRewardPoolArgs,\n CreateStakePoolArgs,\n DefaultFeeValueConfig,\n FeeValue,\n FundPoolArgs,\n IInteractExt,\n RewardEntry,\n RewardPool,\n StakeAndCreateEntriesArgs,\n StakeArgs,\n StakeEntry,\n StakePool,\n UnstakeAndClaimArgs,\n UnstakeAndCloseArgs,\n UnstakeArgs,\n UpdateRewardPoolArgs,\n} from \"./types.js\";\n\ninterface Programs {\n stakePoolProgram: Program<StakePoolProgramType>;\n rewardPoolProgram: Program<RewardPoolProgramType>;\n rewardPoolDynamicProgram: Program<RewardPoolDynamicProgramType>;\n feeManagerProgram: Program<FeeManagerProgramType>;\n governor: Program<GovernorProgramType>;\n}\n\ntype CreationResult = ITransactionResult & { metadataId: PublicKey };\n\ninterface IInitOptions {\n clusterUrl: string;\n cluster?: ICluster;\n commitment?: Commitment | ConnectionConfig;\n programIds?: {\n stakePool?: string;\n rewardPool?: string;\n rewardPoolDynamic?: string;\n feeManager?: string;\n governor?: string;\n };\n sendRate?: number;\n sendThrottler?: PQueue;\n}\n\nexport class SolanaStakingClient {\n connection: Connection;\n\n private readonly cluster: ICluster;\n\n private readonly commitment: Commitment | ConnectionConfig;\n\n private readonly sendThrottler: PQueue;\n\n public readonly programs: Programs;\n\n constructor({\n clusterUrl,\n cluster = ICluster.Mainnet,\n commitment = \"confirmed\",\n programIds,\n sendRate = 1,\n sendThrottler,\n }: IInitOptions) {\n this.cluster = cluster;\n this.commitment = commitment;\n this.connection = new Connection(clusterUrl, this.commitment);\n this.sendThrottler = sendThrottler ?? buildSendThrottler(sendRate);\n const stakePoolIdl = {\n ...StakePoolIDL,\n address: programIds?.stakePool ?? STAKE_POOL_PROGRAM_ID[cluster] ?? StakePoolIDL.address,\n } as StakePoolProgramType;\n const rewardPoolIdl = {\n ...RewardPoolIDL,\n address: programIds?.rewardPool ?? REWARD_POOL_PROGRAM_ID[cluster] ?? RewardPoolIDL.address,\n } as RewardPoolProgramType;\n const rewardPoolDynamicIdl = {\n ...RewardPoolDynamicIDL,\n address: programIds?.rewardPool ?? REWARD_POOL_DYNAMIC_PROGRAM_ID[cluster] ?? RewardPoolDynamicIDL.address,\n } as RewardPoolDynamicProgramType;\n const feeManagerIdl = {\n ...FeeManagerIDL,\n address: programIds?.feeManager ?? FeeManagerIDL.address,\n } as FeeManagerProgramType;\n const governorIdl = {\n ...GovernorIDL,\n address: programIds?.governor ?? GovernorIDL.address,\n };\n this.programs = {\n stakePoolProgram: new Program(stakePoolIdl, {\n connection: this.connection,\n }) as Program<StakePoolProgramType>,\n rewardPoolProgram: new Program(rewardPoolIdl, {\n connection: this.connection,\n }) as Program<RewardPoolProgramType>,\n rewardPoolDynamicProgram: new Program(rewardPoolDynamicIdl, {\n connection: this.connection,\n }) as Program<RewardPoolDynamicProgramType>,\n feeManagerProgram: new Program(feeManagerIdl, {\n connection: this.connection,\n }) as Program<FeeManagerProgramType>,\n governor: new Program(governorIdl, {\n connection: this.connection,\n }) as Program<GovernorProgramType>,\n };\n }\n\n getCurrentProgramId(programKey: keyof Programs): PublicKey {\n const program = this.programs[programKey];\n invariant(program, `Program ${programKey} is not found`);\n return program.programId;\n }\n\n getCommitment(): Commitment | undefined {\n return typeof this.commitment == \"string\" ? this.commitment : this.commitment.commitment;\n }\n\n async getStakePool(id: string | PublicKey): Promise<StakePool> {\n const { stakePoolProgram } = this.programs;\n return stakePoolProgram.account.stakePool.fetch(id);\n }\n\n async searchStakePools(\n criteria: Partial<Pick<StakePool, keyof typeof STAKE_POOL_BYTE_OFFSETS>> = {},\n ): Promise<ProgramAccount<StakePool>[]> {\n const { stakePoolProgram } = this.programs;\n return stakePoolProgram.account.stakePool.all(getFilters(criteria, STAKE_POOL_BYTE_OFFSETS));\n }\n\n async getStakeEntry(id: string | PublicKey): Promise<StakeEntry | null> {\n const { stakePoolProgram } = this.programs;\n return stakePoolProgram.account.stakeEntry.fetch(id);\n }\n\n async searchStakeEntries(\n criteria: Partial<Pick<StakeEntry, keyof typeof STAKE_ENTRY_BYTE_OFFSETS>> = {},\n ): Promise<ProgramAccount<StakeEntry>[]> {\n const { stakePoolProgram } = this.programs;\n return stakePoolProgram.account.stakeEntry.all(getFilters(criteria, STAKE_ENTRY_BYTE_OFFSETS));\n }\n\n async searchRewardPools(\n criteria: Partial<Pick<RewardPool, \"stakePool\" | \"mint\">> = {},\n ): Promise<ProgramAccount<RewardPool>[]> {\n const { rewardPoolProgram } = this.programs;\n return rewardPoolProgram.account.rewardPool.all(getFilters(criteria, REWARD_POOL_BYTE_OFFSETS));\n }\n\n async searchRewardEntries(\n criteria: Partial<Pick<RewardEntry, keyof typeof REWARD_ENTRY_BYTE_OFFSETS>>,\n ): Promise<ProgramAccount<RewardEntry>[]> {\n const { rewardPoolProgram } = this.programs;\n return rewardPoolProgram.account.rewardEntry.all(getFilters(criteria, REWARD_ENTRY_BYTE_OFFSETS));\n }\n\n async getFee(target: string | PublicKey): Promise<FeeValue | DefaultFeeValueConfig> {\n const perTargetFee = await this.getFeeValueIfExists(target);\n if (perTargetFee) {\n return perTargetFee;\n }\n return this.getDefaultFeeValue();\n }\n\n getDefaultFeeValue(): Promise<DefaultFeeValueConfig> {\n const { feeManagerProgram } = this.programs;\n const feeValueKey = deriveConfigPDA(feeManagerProgram.programId);\n return feeManagerProgram.account.config.fetch(feeValueKey);\n }\n\n getFeeValueIfExists(target: string | PublicKey): Promise<FeeValue | null> {\n const { feeManagerProgram } = this.programs;\n const feeValueKey = deriveFeeValuePDA(feeManagerProgram.programId, new PublicKey(target));\n return feeManagerProgram.account.feeValue.fetchNullable(feeValueKey);\n }\n\n async createStakePool(data: CreateStakePoolArgs, extParams: IInteractExt): Promise<CreationResult> {\n const { ixs, publicKey } = await this.prepareCreateStakePoolInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n metadataId: publicKey,\n };\n }\n\n async prepareCreateStakePoolInstructions(\n {\n maxWeight,\n maxDuration,\n minDuration,\n mint,\n permissionless = false,\n freezeStakeMint = null,\n unstakePeriod = null,\n maxTotalStakeCumulative,\n expiryTs,\n autoUnstake,\n nonce,\n tokenProgramId = TOKEN_PROGRAM_ID,\n }: CreateStakePoolArgs,\n extParams: IInteractExt,\n ) {\n const { stakePoolProgram } = this.programs;\n const creator = extParams.invoker.publicKey;\n const v2ParamsSet = maxTotalStakeCumulative !== undefined || expiryTs !== undefined || autoUnstake !== undefined;\n invariant(creator, \"Undefined invoker publicKey\");\n const createInstruction = await (\n v2ParamsSet\n ? stakePoolProgram.methods.createPoolV2(\n nonce,\n maxWeight,\n minDuration,\n maxDuration,\n permissionless,\n freezeStakeMint ?? false,\n unstakePeriod ?? new BN(0),\n maxTotalStakeCumulative ?? new BN(0),\n expiryTs ?? new BN(0),\n autoUnstake ?? false,\n )\n : stakePoolProgram.methods.createPool(\n nonce,\n maxWeight,\n minDuration,\n maxDuration,\n permissionless,\n freezeStakeMint,\n unstakePeriod,\n )\n )\n .accounts({\n creator,\n mint,\n tokenProgram: tokenProgramId,\n })\n .instruction();\n\n const stakePoolPDA = deriveStakePoolPDA(stakePoolProgram.programId, pk(mint), creator, nonce);\n\n return { ixs: [createInstruction], publicKey: stakePoolPDA };\n }\n\n async stake(data: StakeArgs, extParams: IInteractExt): Promise<ITransactionResult> {\n const { ixs } = await this.prepareStakeInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n /**\n * Stake into a Pool and creates Reward Entries to track rewards.\n *\n * Resulting transaction may bee too large for execution if there are too many reward pools.\n *\n * @param data - enriched stake params with an array of reward pools\n * @param extParams - parameter required for transaction execution\n */\n async stakeAndCreateEntries(\n data: StakeAndCreateEntriesArgs,\n extParams: IInteractExt,\n ): Promise<ITransactionResult> {\n const { ixs } = await this.prepareStakeAndCreateEntriesInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareStakeAndCreateEntriesInstructions(\n data: StakeAndCreateEntriesArgs,\n extParams: IInteractExt,\n ): Promise<{\n ixs: TransactionInstruction[];\n }> {\n const ixs = await Promise.all([\n this.prepareStakeInstructions(data, extParams).then(({ ixs }) => ixs),\n ...data.rewardPools.map((params) =>\n this.prepareCreateRewardEntryInstructions(\n {\n stakePool: data.stakePool,\n stakePoolMint: data.stakePoolMint,\n depositNonce: data.nonce,\n rewardPoolNonce: params.nonce,\n rewardMint: params.mint,\n tokenProgramId: params.tokenProgramId,\n rewardPoolType: params.rewardPoolType,\n },\n extParams,\n ).then(({ ixs }) => ixs),\n ),\n ]).then((ixs) => ixs.flat());\n\n return { ixs };\n }\n\n async prepareStakeInstructions(\n { nonce, amount, duration, stakePool, stakePoolMint, tokenProgramId = TOKEN_PROGRAM_ID }: StakeArgs,\n extParams: IInteractExt,\n ): Promise<{\n ixs: TransactionInstruction[];\n }> {\n const { stakePoolProgram } = this.programs;\n const staker = extParams.invoker.publicKey;\n invariant(staker, \"Undefined invoker publicKey\");\n const poolMintAccountKey = getAssociatedTokenAddressSync(pk(stakePoolMint), staker, true, pk(tokenProgramId));\n const instruction = await stakePoolProgram.methods\n .stake(nonce, amount, duration)\n .accounts({\n stakePool: stakePool,\n tokenProgram: tokenProgramId,\n from: poolMintAccountKey,\n authority: staker,\n payer: staker,\n })\n .instruction();\n\n return { ixs: [instruction] };\n }\n\n async unstake(data: UnstakeArgs, extParams: IInteractExt): Promise<ITransactionResult> {\n const { ixs } = await this.prepareUnstakeInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n /**\n * Unstake from a pool, claiming all rewards prior to that.\n *\n * Resulting transaction may be too large for execution if there are too many reward pools.\n *\n * @param data - enriched unstake args with reward pools\n * @param extParams - parameter required for transaction execution\n */\n async unstakeAndClaim(data: UnstakeAndClaimArgs, extParams: IInteractExt): Promise<ITransactionResult> {\n const { ixs } = await this.prepareUnstakeAndClaimInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareUnstakeAndClaimInstructions(\n data: UnstakeAndClaimArgs,\n extParams: IInteractExt,\n ): Promise<{\n ixs: TransactionInstruction[];\n }> {\n const ixs = await Promise.all([\n ...data.rewardPools.map((params) =>\n this.prepareClaimRewardsInstructions(\n {\n stakePool: data.stakePool,\n stakePoolMint: data.stakePoolMint,\n depositNonce: data.nonce,\n rewardPoolNonce: params.nonce,\n rewardMint: params.mint,\n tokenProgramId: params.tokenProgramId,\n rewardPoolType: params.rewardPoolType,\n governor: params.governor,\n vote: params.vote,\n },\n extParams,\n ).then(({ ixs }) => ixs),\n ),\n this.prepareUnstakeAndCloseInstructions(data, extParams).then(({ ixs }) => ixs),\n ]).then((ixs) => ixs.flat());\n\n return { ixs };\n }\n\n /**\n * Unstake from a pool, closing all related stake and reward entries.\n *\n * REWARDS WON'T be claimed - use this call only if user can't unstake with rewards claims, i.e. when reward pool is drained.\n *\n * Resulting transaction may be too large for execution if there are too many reward pools.\n *\n * @param data - enriched unstake args with reward pools\n * @param extParams - parameter required for transaction execution\n */\n async unstakeAndClose(data: UnstakeAndCloseArgs, extParams: IInteractExt): Promise<ITransactionResult> {\n const { ixs } = await this.prepareUnstakeAndCloseInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareUnstakeAndCloseInstructions(\n data: UnstakeAndCloseArgs,\n extParams: IInteractExt,\n ): Promise<{\n ixs: TransactionInstruction[];\n }> {\n const ixs = await Promise.all([\n this.prepareUnstakeInstructions({ ...data, shouldClose: true }, extParams).then(({ ixs }) => ixs),\n ...data.rewardPools.map((params) =>\n this.prepareCloseRewardEntryInstructions(\n {\n stakePool: data.stakePool,\n stakePoolMint: data.stakePoolMint,\n depositNonce: data.nonce,\n rewardPoolNonce: params.nonce,\n rewardMint: params.mint,\n tokenProgramId: params.tokenProgramId,\n rewardPoolType: params.rewardPoolType,\n },\n extParams,\n ).then(({ ixs }) => ixs),\n ),\n ]).then((ixs) => ixs.flat());\n\n return { ixs };\n }\n\n async prepareUnstakeInstructions(\n { stakePool, stakePoolMint, nonce, tokenProgramId = TOKEN_PROGRAM_ID, shouldClose = false }: UnstakeArgs,\n extParams: IInteractExt,\n ): Promise<{\n ixs: TransactionInstruction[];\n }> {\n const { stakePoolProgram } = this.programs;\n const staker = extParams.invoker.publicKey;\n invariant(staker, \"Undefined invoker publicKey\");\n const stakeEntryKey = deriveStakeEntryPDA(stakePoolProgram.programId, pk(stakePool), staker, nonce);\n const poolMintAccountKey = getAssociatedTokenAddressSync(pk(stakePoolMint), staker, true, pk(tokenProgramId));\n const instruction = await stakePoolProgram.methods\n .unstake(shouldClose)\n .accounts({\n stakeEntry: stakeEntryKey,\n to: poolMintAccountKey,\n authority: staker,\n tokenProgram: tokenProgramId,\n })\n .instruction();\n\n return { ixs: [instruction] };\n }\n\n async closeStakeEntry(data: CloseStakeEntryArgs, extParams: IInteractExt) {\n const { ixs } = await this.prepareCloseStakeEntryInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareCloseStakeEntryInstructions({ stakePool, nonce }: CloseStakeEntryArgs, extParams: IInteractExt) {\n const { stakePoolProgram } = this.programs;\n const staker = extParams.invoker.publicKey;\n invariant(staker, \"Undefined invoker publicKey\");\n const stakeEntryKey = deriveStakeEntryPDA(stakePoolProgram.programId, pk(stakePool), staker, nonce);\n const instruction = await stakePoolProgram.methods\n .closeEntry()\n .accounts({\n stakeEntry: stakeEntryKey,\n authority: staker,\n })\n .instruction();\n return { ixs: [instruction] };\n }\n\n async createRewardPool(data: CreateRewardPoolArgs, extParams: IInteractExt): Promise<CreationResult> {\n const { ixs, publicKey } = await this.prepareCreateRewardPoolInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n metadataId: publicKey,\n };\n }\n\n async prepareCreateRewardPoolInstructions(\n {\n nonce,\n rewardAmount,\n rewardPeriod,\n rewardMint,\n permissionless = false,\n stakePool,\n lastClaimPeriodOpt,\n tokenProgramId = TOKEN_PROGRAM_ID,\n }: CreateRewardPoolArgs,\n extParams: IInteractExt,\n ) {\n const { rewardPoolProgram } = this.programs;\n const creator = extParams.invoker.publicKey;\n invariant(creator, \"Undefined invoker publicKey\");\n const instruction = await rewardPoolProgram.methods\n .createPool(nonce, rewardAmount, rewardPeriod, permissionless, lastClaimPeriodOpt)\n .accounts({\n creator,\n stakePool,\n mint: rewardMint,\n tokenProgram: tokenProgramId,\n })\n .instruction();\n\n const rewardPoolKey = deriveRewardPoolPDA(rewardPoolProgram.programId, pk(stakePool), pk(rewardMint), nonce);\n\n return { publicKey: rewardPoolKey, ixs: [instruction] };\n }\n\n async claimRewards(data: ClaimRewardPoolArgs, extParams: IInteractExt): Promise<ITransactionResult> {\n const { ixs } = await this.prepareClaimRewardsInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareClaimRewardsInstructions(\n {\n rewardPoolNonce,\n depositNonce,\n stakePool,\n tokenProgramId = TOKEN_PROGRAM_ID,\n rewardMint,\n rewardPoolType = \"fixed\",\n governor,\n vote,\n }: ClaimRewardPoolArgs,\n extParams: IInteractExt,\n ) {\n const rewardPoolProgram = this.getRewardProgram(rewardPoolType);\n const { stakePoolProgram } = this.programs;\n const staker = extParams.invoker.publicKey;\n invariant(staker, \"Undefined invoker publicKey\");\n const rewardPoolKey = deriveRewardPoolPDA(\n rewardPoolProgram.programId,\n pk(stakePool),\n pk(rewardMint),\n rewardPoolNonce,\n );\n let ixBuilder = rewardPoolProgram.methods.claimRewards().accounts({\n stakeEntry: deriveStakeEntryPDA(stakePoolProgram.programId, pk(stakePool), staker, depositNonce),\n rewardPool: rewardPoolKey,\n claimant: staker,\n tokenProgram: tokenProgramId,\n to: getAssociatedTokenAddressSync(pk(rewardMint), staker, true, pk(tokenProgramId)),\n });\n\n if (this.isDynamicRewardProgram(rewardPoolProgram)) {\n if (governor === undefined) {\n governor = (await rewardPoolProgram.account.rewardPool.fetch(rewardPoolKey)).governor;\n }\n // @ts-expect-error\n ixBuilder = ixBuilder.accountsPartial({ governor, vote: vote ?? null });\n }\n\n return { ixs: [await ixBuilder.instruction()] };\n }\n\n async fundPool(data: FundPoolArgs, extParams: IInteractExt): Promise<ITransactionResult> {\n const { ixs } = await this.prepareFundPoolInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareFundPoolInstructions(\n {\n amount,\n tokenProgramId = TOKEN_PROGRAM_ID,\n rewardMint,\n stakePool,\n feeValue,\n nonce,\n rewardPoolType = \"fixed\",\n }: FundPoolArgs,\n extParams: IInteractExt,\n ) {\n const rewardPoolProgram = this.getRewardProgram(rewardPoolType);\n const staker = extParams.invoker.publicKey;\n invariant(staker, \"Undefined invoker publicKey\");\n const existingFee = await this.getFeeValueIfExists(staker);\n const rewardMintPk = pk(rewardMint);\n const tokenProgramPk = pk(tokenProgramId);\n const treasuryATA =\n !existingFee || existingFee.streamflowFee.gtn(0)\n ? await checkOrCreateAtaBatch(\n this.connection,\n [STREAMFLOW_TREASURY_PUBLIC_KEY],\n rewardMintPk,\n extParams.invoker,\n tokenProgramPk,\n )\n : null;\n const rewardPoolPda = deriveRewardPoolPDA(rewardPoolProgram.programId, pk(stakePool), rewardMintPk, nonce);\n const instruction = await rewardPoolProgram.methods\n .fundPool(amount)\n .accountsPartial({\n funder: staker,\n rewardPool: rewardPoolPda,\n from: getAssociatedTokenAddressSync(rewardMintPk, staker, true, tokenProgramPk),\n tokenProgram: tokenProgramId,\n vault: deriveRewardVaultPDA(rewardPoolProgram.programId, rewardPoolPda),\n mint: rewardMint,\n feeValue,\n })\n .instruction();\n\n return { ixs: treasuryATA ? treasuryATA.concat([instruction]) : [instruction] };\n }\n\n async createRewardEntry(data: CreateRewardEntryArgs, extParams: IInteractExt): Promise<ITransactionResult> {\n const { ixs } = await this.prepareCreateRewardEntryInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareCreateRewardEntryInstructions(\n { stakePool, rewardPoolNonce, depositNonce, rewardMint, rewardPoolType = \"fixed\" }: CreateRewardEntryArgs,\n extParams: IInteractExt,\n ) {\n const rewardPoolProgram = this.getRewardProgram(rewardPoolType);\n const { stakePoolProgram } = this.programs;\n const staker = extParams.invoker.publicKey;\n invariant(staker, \"Undefined invoker publicKey\");\n const instruction = await rewardPoolProgram.methods\n .createEntry()\n .accounts({\n payer: staker,\n authority: staker,\n stakeEntry: deriveStakeEntryPDA(stakePoolProgram.programId, pk(stakePool), staker, depositNonce),\n rewardPool: deriveRewardPoolPDA(rewardPoolProgram.programId, pk(stakePool), pk(rewardMint), rewardPoolNonce),\n })\n .accountsPartial({\n stakePool,\n })\n .instruction();\n\n return { ixs: [instruction] };\n }\n\n async closeRewardEntry(data: CloseRewardEntryArgs, extParams: IInteractExt): Promise<ITransactionResult> {\n const { ixs } = await this.prepareCloseRewardEntryInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareCloseRewardEntryInstructions(\n { stakePool, rewardPoolNonce, depositNonce, rewardMint, rewardPoolType = \"fixed\" }: CreateRewardEntryArgs,\n extParams: IInteractExt,\n ) {\n const rewardPoolProgram = this.getRewardProgram(rewardPoolType);\n const staker = extParams.invoker.publicKey;\n invariant(staker, \"Undefined invoker publicKey\");\n const instruction = await rewardPoolProgram.methods\n .closeEntry(depositNonce)\n .accounts({\n authority: staker,\n rewardPool: deriveRewardPoolPDA(rewardPoolProgram.programId, pk(stakePool), pk(rewardMint), rewardPoolNonce),\n })\n .instruction();\n\n return { ixs: [instruction] };\n }\n\n async updateRewardPool(data: UpdateRewardPoolArgs, extParams: IInteractExt) {\n const { ixs } = await this.prepareUpdateRewardPoolInstructions(data, extParams);\n const { signature } = await this.execute(ixs, extParams);\n\n return {\n ixs,\n txId: signature,\n };\n }\n\n async prepareUpdateRewardPoolInstructions(\n { rewardPool, rewardAmount, rewardPeriod, stakePool }: UpdateRewardPoolArgs,\n extParams: IInteractExt,\n ) {\n const { rewardPoolProgram } = this.programs;\n const invoker = extParams.invoker.publicKey;\n invariant(invoker, \"Undefined invoker publicKey\");\n const instruction = await rewardPoolProgram.methods\n .updatePool(rewardAmount, rewardPeriod)\n .accountsPartial({\n stakePool,\n authority: invoker,\n rewardPool,\n })\n .instruction();\n\n return { ixs: [instruction] };\n }\n\n decode<\n ProgramName extends keyof Programs = keyof Programs,\n DecodingProgram = Programs[ProgramName],\n DerivedIdl extends Idl = DecodingProgram extends Program<infer IDLType> ? IDLType : never,\n AccountName extends keyof IdlAccounts<DerivedIdl> = keyof IdlAccounts<DerivedIdl>,\n DecodedAccount = IdlAccounts<DerivedIdl>[AccountName],\n >(\n programKey: ProgramName,\n accountName: AccountName,\n accInfo: Parameters<AccountsCoder[\"decode\"]>[1],\n ): DecodedAccount {\n const decodingProgram = this.programs[programKey];\n invariant(decodingProgram, `Decoding program with key ${programKey} is not available`);\n return decodingProgram.coder.accounts.decode(accountName.toString(), accInfo);\n }\n\n getDiscriminator<\n ProgramName extends keyof Programs = keyof Programs,\n DecodingProgram = Programs[ProgramName],\n DerivedIdl extends Idl = DecodingProgram extends Program<infer IDLType> ? IDLType : never,\n AccountName extends keyof IdlAccounts<DerivedIdl> = keyof IdlAccounts<DerivedIdl>,\n >(programKey: ProgramName, accountName: AccountName): number[] {\n const decodingProgram = this.programs[programKey];\n invariant(decodingProgram, `Decoding program with key ${programKey} is not available`);\n const accountEntity = decodingProgram.idl.accounts.find((acc) => acc.name === accountName);\n invariant(\n accountEntity,\n `Decoding program with key ${programKey} doesn't specify account with name ${accountName.toString()}`,\n );\n return accountEntity.discriminator;\n }\n\n async execute(ixs: TransactionInstruction[], extParams: IInteractExt) {\n const executionParams = unwrapExecutionParams(extParams, this.connection);\n\n ixs = await createAndEstimateTransaction(\n async (params) => prepareBaseInstructions(this.connection, params).concat(ixs),\n executionParams,\n );\n\n const { tx, hash, context } = await prepareTransaction(this.connection, ixs, extParams.invoker.publicKey);\n\n try {\n const signature = await signAndExecuteTransaction(\n this.connection,\n extParams.invoker,\n tx,\n {\n hash,\n context,\n commitment: this.getCommitment(),\n },\n { sendThrottler: this.sendThrottler, skipSimulation: executionParams.skipSimulation },\n );\n return { signature };\n } catch (err: unknown) {\n if (err instanceof Error) {\n const parsed: AnchorError | ProgramError | typeof err = translateError(\n err,\n parseIdlErrors(this.programs.stakePoolProgram.idl), // TODO how to catch an error from a specific program?\n );\n if (parsed) {\n throw new ContractError(err, parsed.name, parsed.message);\n }\n }\n throw err;\n }\n }\n\n private getRewardProgram(type: \"fixed\"): Program<RewardPoolProgramType>;\n private getRewardProgram(type: \"dynamic\"): Program<RewardPoolDynamicProgramType>;\n private getRewardProgram(\n type: \"fixed\" | \"dynamic\",\n ): Program<RewardPoolProgramType> | Program<RewardPoolDynamicProgramType>;\n private getRewardProgram(\n type: \"fixed\" | \"dynamic\",\n ): Program<RewardPoolProgramType> | Program<RewardPoolDynamicProgramType> {\n if (type === \"dynamic\") {\n return this.programs.rewardPoolDynamicProgram;\n } else {\n return this.programs.rewardPoolProgram;\n }\n }\n\n private isDynamicRewardProgram = (\n program: Program<RewardPoolProgramType> | Program<RewardPoolDynamicProgramType>,\n ): program is Program<RewardPoolDynamicProgramType> => {\n return program.programId.equals(this.programs.rewardPoolDynamicProgram.programId);\n };\n}\n","import type { ProgramAccount } from \"@coral-xyz/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\n// eslint-disable-next-line no-restricted-imports\nimport BN from \"bn.js\";\nimport { getBN, getNumberFromBN } from \"@streamflow/common\";\n\nimport type { RewardEntry, RewardPool, StakeEntry } from \"../types.js\";\nimport { REWARD_AMOUNT_DECIMALS, REWARD_AMOUNT_PRECISION_FACTOR_BN, SCALE_PRECISION_FACTOR_BN } from \"../constants.js\";\n\nexport class RewardEntryAccumulator implements RewardEntry {\n lastAccountedTs: BN;\n\n claimedAmount: BN;\n\n accountedAmount: BN;\n\n rewardPool: PublicKey;\n\n stakeEntry: PublicKey;\n\n createdTs: BN;\n\n lastRewardAmount: BN;\n\n lastRewardPeriod: BN;\n\n isSponsored: boolean;\n\n buffer: number[];\n\n constructor(\n lastAccountedTs: BN,\n claimedAmount: BN,\n accountedAmount: BN,\n rewardPool: PublicKey,\n stakeEntry: PublicKey,\n createdTs: BN,\n lastRewardAmount: BN,\n lastRewardPeriod: BN,\n isSponsored: boolean,\n buffer: number[],\n ) {\n this.lastAccountedTs = lastAccountedTs;\n this.claimedAmount = claimedAmount;\n this.accountedAmount = accountedAmount;\n this.rewardPool = rewardPool;\n this.stakeEntry = stakeEntry;\n this.createdTs = createdTs;\n this.isSponsored = isSponsored;\n this.buffer = buffer;\n this.lastRewardAmount = lastRewardAmount;\n this.lastRewardPeriod = lastRewardPeriod;\n }\n\n static fromEntry(entry: RewardEntry): RewardEntryAccumulator {\n return new this(\n entry.lastAccountedTs,\n entry.claimedAmount,\n entry.accountedAmount,\n entry.rewardPool,\n entry.stakeEntry,\n entry.createdTs,\n entry.lastRewardAmount,\n entry.lastRewardPeriod,\n entry.isSponsored,\n entry.buffer,\n );\n }\n\n // Calculate accountable amount by calculating how many seconds have passed since last claim/stake time\n getAccountableAmount(\n stakedTs: BN,\n accountableTs: BN,\n effectiveStakedAmount: BN,\n rewardAmount: BN,\n rewardPeriod: BN,\n ): BN {\n const lastAccountedTs = this.lastAccountedTs.gt(new BN(0)) ? this.lastAccountedTs : stakedTs;\n const secondsPassed = accountableTs.sub(lastAccountedTs);\n\n if (secondsPassed.lt(rewardPeriod)) {\n return new BN(0);\n }\n\n const periodsPassed = secondsPassed.div(rewardPeriod);\n\n const claimablePerEffectiveStake = periodsPassed.mul(rewardAmount);\n\n return claimablePerEffectiveStake.mul(effectiveStakedAmount).div(SCALE_PRECISION_FACTOR_BN);\n }\n\n // Calculates claimable amount from accountable amount.\n getClaimableAmount(): BN {\n const claimedAmount = this.claimedAmount.mul(REWARD_AMOUNT_PRECISION_FACTOR_BN);\n const nonClaimedAmount = this.accountedAmount.sub(claimedAmount);\n return nonClaimedAmount.div(REWARD_AMOUNT_PRECISION_FACTOR_BN);\n }\n\n // Get the time of the last unlock\n getLastAccountedTs(stakedTs: BN, claimableTs: BN, rewardPeriod: BN): BN {\n const lastAccountedTs = this.lastAccountedTs.gtn(0) ? this.lastAccountedTs : stakedTs;\n const totalSecondsPassed = claimableTs.sub(lastAccountedTs);\n const periodsPassed = totalSecondsPassed.div(rewardPeriod);\n const periodsToSeconds = periodsPassed.mul(rewardPeriod);\n return lastAccountedTs.add(periodsToSeconds);\n }\n\n // Adds accounted amount\n addAccountedAmount(accountedAmount: BN): void {\n this.accountedAmount = this.accountedAmount.add(accountedAmount);\n }\n\n // Adds claimed amount\n addClaimedAmount(claimedAmount: BN): void {\n this.claimedAmount = this.claimedAmount.add(claimedAmount);\n }\n}\n\nconst createDefaultRewardEntry = (\n stakeEntry: ProgramAccount<StakeEntry>,\n rewardPool: ProgramAccount<RewardPool>,\n): RewardEntry => {\n return {\n stakeEntry: new PublicKey(stakeEntry.publicKey),\n rewardPool: new PublicKey(rewardPool.publicKey),\n createdTs: stakeEntry.account.createdTs,\n lastAccountedTs: new BN(0),\n lastRewardAmount: new BN(0),\n lastRewardPeriod: new BN(0),\n accountedAmount: new BN(0),\n claimedAmount: new BN(0),\n isSponsored: false,\n buffer: [],\n };\n};\n\nexport const calcRewards = (\n rewardEntryAccount: ProgramAccount<RewardEntry> | undefined,\n stakeEntryAccount: ProgramAccount<StakeEntry>,\n rewardPoolAccount: ProgramAccount<RewardPool>,\n) => {\n const rewardEntry: RewardEntry =\n rewardEntryAccount?.account ?? createDefaultRewardEntry(stakeEntryAccount, rewardPoolAccount);\n const stakeEntry = stakeEntryAccount.account;\n const rewardPool = rewardPoolAccount.account;\n\n const rewardEntryAccumulator = RewardEntryAccumulator.fromEntry(rewardEntry);\n if (rewardEntryAccumulator.createdTs.lt(stakeEntry.createdTs)) {\n throw new Error(\"InvalidRewardEntry\");\n }\n\n const currTs = Math.floor(Date.now() / 1000);\n\n const stakedTs = rewardPool.createdTs ? BN.max(stakeEntry.createdTs, rewardPool.createdTs) : stakeEntry.createdTs;\n const claimableTs = stakeEntry.closedTs.gtn(0) ? stakeEntry.closedTs : new BN(currTs);\n\n const amountUpdated =\n !rewardPool.rewardAmount.eq(rewardPool.lastRewardAmount) &&\n rewardPool.lastAmountUpdateTs.gt(stakeEntry.createdTs) &&\n rewardPool.lastAmountUpdateTs.gt(stakeEntry.closedTs);\n const periodUpdated =\n !rewardPool.rewardPeriod.eq(rewardPool.lastRewardPeriod) &&\n rewardPool.lastPeriodUpdateTs.gt(stakeEntry.createdTs) &&\n rewardPool.lastPeriodUpdateTs.gt(stakeEntry.closedTs);\n\n if (amountUpdated || periodUpdated) {\n let firstUpdateTs: BN, secondUpdateTs: BN, rewardAmount: BN, rewardPeriod: BN;\n if (amountUpdated && periodUpdated) {\n if (rewardPool.lastAmountUpdateTs.lt(rewardPool.lastPeriodUpdateTs)) {\n firstUpdateTs = rewardPool.lastAmountUpdateTs;\n secondUpdateTs = rewardPool.lastPeriodUpdateTs;\n rewardAmount = rewardPool.rewardAmount;\n rewardPeriod = rewardEntryAccumulator.lastRewardPeriod;\n } else {\n firstUpdateTs = rewardPool.lastPeriodUpdateTs;\n secondUpdateTs = rewardPool.lastAmountUpdateTs;\n rewardAmount = rewardEntryAccumulator.lastRewardAmount;\n rewardPeriod = rewardPool.rewardPeriod;\n }\n } else if (amountUpdated) {\n firstUpdateTs = new BN(0);\n secondUpdateTs = rewardPool.lastAmountUpdateTs;\n rewardAmount = rewardEntryAccumulator.lastRewardAmount;\n rewardPeriod = rewardEntryAccumulator.lastRewardPeriod;\n } else {\n firstUpdateTs = new BN(0);\n secondUpdateTs = rewardPool.lastPeriodUpdateTs;\n rewardAmount = rewardEntryAccumulator.lastRewardAmount;\n rewardPeriod = rewardEntryAccumulator.lastRewardPeriod;\n }\n\n if (firstUpdateTs.gtn(0)) {\n const firstAccountableAmount = rewardEntryAccumulator.getAccountableAmount(\n stakedTs,\n firstUpdateTs,\n stakeEntry.effectiveAmount,\n rewardEntryAccumulator.lastRewardAmount,\n rewardEntryAccumulator.lastRewardPeriod,\n );\n rewardEntryAccumulator.addAccountedAmount(firstAccountableAmount);\n rewardEntryAccumulator.lastAccountedTs = rewardEntryAccumulator.getLastAccountedTs(\n stakedTs,\n firstUpdateTs,\n rewardPool.lastRewardPeriod,\n );\n }\n const secondAccountableAmount = rewardEntryAccumulator.getAccountableAmount(\n stakedTs,\n secondUpdateTs,\n stakeEntry.effectiveAmount,\n rewardAmount,\n rewardPeriod,\n );\n rewardEntryAccumulator.addAccountedAmount(secondAccountableAmount);\n rewardEntryAccumulator.lastAccountedTs = rewardEntryAccumulator.getLastAccountedTs(\n stakedTs,\n secondUpdateTs,\n rewardPeriod,\n );\n }\n\n const accountableAmount = rewardEntryAccumulator.getAccountableAmount(\n stakedTs,\n claimableTs,\n stakeEntry.effectiveAmount,\n rewardPool.rewardAmount,\n rewardPool.rewardPeriod,\n );\n rewardEntryAccumulator.addAccountedAmount(accountableAmount);\n\n return rewardEntryAccumulator.getClaimableAmount();\n};\n\nexport const calculateRewardRateFromAmount = (\n rewardAmount: BN,\n stakeTokenDecimals: number,\n rewardTokenDecimals: number,\n) => {\n const decimals = rewardTokenDecimals + (REWARD_AMOUNT_DECIMALS - stakeTokenDecimals);\n return getNumberFromBN(rewardAmount, decimals);\n};\n\nexport const calculateRewardAmountFromValue = (rewardTokenValue: BN, stakeTokenDecimals: number) => {\n const decimalsDiff = REWARD_AMOUNT_DECIMALS - stakeTokenDecimals;\n if (decimalsDiff === 0) {\n return rewardTokenValue;\n }\n const diffFactor = new BN(10).pow(new BN(Math.abs(decimalsDiff)));\n if (decimalsDiff > 0) {\n return rewardTokenValue.mul(diffFactor);\n }\n return rewardTokenValue.div(diffFactor);\n};\n\nexport const calculateRewardAmountFromRate = (\n rewardRate: number,\n stakeTokenDecimals: number,\n rewardTokenDecimals: number,\n) => {\n return calculateRewardAmountFromValue(getBN(rewardRate, rewardTokenDecimals), stakeTokenDecimals);\n};\n","import type { TransferFeeConfig } from \"@solana/spl-token\";\nimport type { Connection } from \"@solana/web3.js\";\nimport type BN from \"bn.js\";\nimport { divCeilN } from \"@streamflow/common\";\n\nimport { DEFAULT_FEE_BN, FEE_PRECISION_FACTOR_BN, SCALE_PRECISION_FACTOR, U64_MAX } from \"../constants.js\";\n\nexport const calculateFeeAmount = (amount: BN, fee: BN = DEFAULT_FEE_BN) => {\n if (fee.eq(FEE_PRECISION_FACTOR_BN)) {\n return amount;\n }\n return amount.mul(fee).div(FEE_PRECISION_FACTOR_BN);\n};\n\nexport const calculateDecimalsShift = (maxWeight: bigint, maxShift = 999) => {\n if (maxShift == 0) {\n return 0;\n }\n\n let decimalsShift = 0;\n while ((maxWeight * U64_MAX) / BigInt(SCALE_PRECISION_FACTOR) / BigInt(10 ** decimalsShift) > U64_MAX) {\n decimalsShift += 1;\n if (decimalsShift == maxShift) {\n return maxShift;\n }\n }\n return decimalsShift;\n};\n\nexport async function calculateAmountWithTransferFees(\n connection: Connection,\n transferFeeConfig: TransferFeeConfig,\n transferAmount: bigint,\n): Promise<{ transferAmount: bigint; feeCharged: bigint }> {\n const epoch = await connection.getEpochInfo();\n const transferFee =\n epoch.epoch >= transferFeeConfig.newerTransferFee.epoch\n ? transferFeeConfig.newerTransferFee\n : transferFeeConfig.olderTransferFee;\n const transferFeeBasisPoints = BigInt(transferFee.transferFeeBasisPoints);\n let feeCharged = BigInt(0);\n\n if (transferFeeBasisPoints !== BigInt(0)) {\n const numerator = transferAmount * 10_000n;\n const denominator = 10_000n - transferFeeBasisPoints;\n const rawPreFeeAmount = divCeilN(numerator, denominator);\n const fee = rawPreFeeAmount - transferAmount;\n transferAmount = rawPreFeeAmount;\n feeCharged = fee > transferFee.maximumFee ? transferFee.maximumFee : fee;\n }\n\n return { transferAmount, feeCharged };\n}\n","import BN from \"bn.js\";\n\nimport { SCALE_PRECISION_FACTOR_BN } from \"../constants.js\";\n\nexport const calculateStakeWeight = (minDuration: BN, maxDuration: BN, maxWeight: BN, duration: BN) => {\n const durationSpan = maxDuration.sub(minDuration);\n if (durationSpan.eq(new BN(0))) {\n return SCALE_PRECISION_FACTOR_BN;\n }\n const durationExceedingMin = duration.sub(minDuration);\n const normalizedWeight = durationExceedingMin.mul(SCALE_PRECISION_FACTOR_BN).div(durationSpan);\n const weightDiff = maxWeight.sub(SCALE_PRECISION_FACTOR_BN);\n\n return BN.max(\n SCALE_PRECISION_FACTOR_BN.add(normalizedWeight.mul(weightDiff).div(SCALE_PRECISION_FACTOR_BN)),\n SCALE_PRECISION_FACTOR_BN,\n );\n};\n"]}
|