goosefx-stake-rewards-sdk
Version:
A SDK for interfacing with the GooseFX stake rewards program
1,520 lines • 62.4 kB
TypeScript
export type GfxStakeRewardsProgramTypes = {
"version": "0.1.0";
"name": "gfx_stake_rewards";
"docs": [
"See this module for instruction documentation."
];
"instructions": [
{
"name": "initializeGlobalAccounts";
"docs": [
"Initialize global accounts"
];
"accounts": [
{
"name": "payer";
"isMut": true;
"isSigner": true;
},
{
"name": "payerGofx";
"isMut": true;
"isSigner": false;
},
{
"name": "gofxVaultSigner";
"isMut": false;
"isSigner": false;
},
{
"name": "gofxUnstakedSigner";
"isMut": false;
"isSigner": false;
},
{
"name": "usdcFeeSigner";
"isMut": false;
"isSigner": false;
},
{
"name": "usdcRewardSigner";
"isMut": false;
"isSigner": false;
},
{
"name": "gofxVault";
"isMut": true;
"isSigner": false;
"docs": [
"This instruction initializes the token account",
"required for storing staked GOFX."
];
},
{
"name": "usdcRewardVault";
"isMut": true;
"isSigner": false;
"docs": [
"This instruction initializes the token account",
"required for storing USDC rewards."
];
},
{
"name": "gofxUnstakedVault";
"isMut": true;
"isSigner": false;
"docs": [
"This instruction initializes the token account",
"required for storing unstaked GOFX before it is reclaimed."
];
},
{
"name": "usdcFeeVault";
"isMut": true;
"isSigner": false;
"docs": [
"This instruction initializes the token account",
"required for storing USDC fees collected for distribution."
];
},
{
"name": "gofxMint";
"isMut": false;
"isSigner": false;
"docs": [
"Needed for account initialization"
];
},
{
"name": "usdcMint";
"isMut": false;
"isSigner": false;
"docs": [
"Needed for account initialization"
];
},
{
"name": "stakePool";
"isMut": true;
"isSigner": false;
"docs": [
"This instruction initializes the global account struct that stores",
"staking information."
];
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "associatedTokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [];
},
{
"name": "initializeUserAccount";
"docs": [
"Initialize user accounts"
];
"accounts": [
{
"name": "owner";
"isMut": true;
"isSigner": true;
"docs": [
"This address will be the owner of the user metadata account being initialized."
];
},
{
"name": "funder";
"isMut": true;
"isSigner": true;
"docs": [
"This field allows a separate funder for the rent-exempt balance",
"of the accounts being initialized here."
];
},
{
"name": "stakePool";
"isMut": false;
"isSigner": false;
"docs": [
"Global state"
];
},
{
"name": "usdcMint";
"isMut": false;
"isSigner": false;
},
{
"name": "userMetadata";
"isMut": true;
"isSigner": false;
"docs": [
"User metadata account being initialized"
];
},
{
"name": "userRewardsHoldingAccount";
"isMut": true;
"isSigner": false;
"docs": [
"User's reward are escrowed at TokenAccount of their UserMetadata"
];
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "associatedTokenProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [];
},
{
"name": "crank";
"docs": [
"Crank"
];
"accounts": [
{
"name": "stakePool";
"isMut": true;
"isSigner": false;
"docs": [
"Global state"
];
},
{
"name": "usdcFeeVault";
"isMut": true;
"isSigner": false;
"docs": [
"In the SSL swap CPI, this is user_out_ata"
];
},
{
"name": "usdcRewardVault";
"isMut": true;
"isSigner": false;
"docs": [
"USDC reward account, fees distribute from here."
];
},
{
"name": "usdcFeeSigner";
"isMut": false;
"isSigner": false;
"docs": [
"that swaps an arbitrary token for USDC."
];
},
{
"name": "gfxSslProgram";
"isMut": false;
"isSigner": false;
"docs": [
"The swap CPI calls this program"
];
},
{
"name": "controller";
"isMut": false;
"isSigner": false;
},
{
"name": "pair";
"isMut": true;
"isSigner": false;
},
{
"name": "sslIn";
"isMut": true;
"isSigner": false;
},
{
"name": "sslOut";
"isMut": true;
"isSigner": false;
},
{
"name": "liabilityVaultIn";
"isMut": true;
"isSigner": false;
},
{
"name": "swappedLiabilityVaultIn";
"isMut": true;
"isSigner": false;
},
{
"name": "liabilityVaultOut";
"isMut": true;
"isSigner": false;
},
{
"name": "swappedLiabilityVaultOut";
"isMut": true;
"isSigner": false;
},
{
"name": "userInAta";
"isMut": true;
"isSigner": false;
"docs": [
"This must be a USDC token account owned by the [FeesCollected] PDA."
];
},
{
"name": "feeCollectorAta";
"isMut": true;
"isSigner": false;
},
{
"name": "userWallet";
"isMut": false;
"isSigner": false;
},
{
"name": "feeCollector";
"isMut": false;
"isSigner": false;
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "minOut";
"type": "u64";
}
];
},
{
"name": "crankV2Single";
"accounts": [
{
"name": "stakePool";
"isMut": true;
"isSigner": false;
"docs": [
"Global state"
];
},
{
"name": "usdcFeeVault";
"isMut": true;
"isSigner": false;
"docs": [
"In the Gamma swap CPI, this is user_out_ata"
];
},
{
"name": "usdcRewardVault";
"isMut": true;
"isSigner": false;
"docs": [
"USDC reward account, fees distribute from here."
];
},
{
"name": "usdcFeeSigner";
"isMut": false;
"isSigner": false;
"docs": [
"that swaps an arbitrary token for USDC."
];
},
{
"name": "gfxAmmProgram";
"isMut": false;
"isSigner": false;
"docs": [
"The swap CPI calls this program"
];
},
{
"name": "ammAuthority";
"isMut": false;
"isSigner": false;
},
{
"name": "ammConfig";
"isMut": false;
"isSigner": false;
},
{
"name": "ammPoolState";
"isMut": true;
"isSigner": false;
},
{
"name": "ammObservationState";
"isMut": true;
"isSigner": false;
},
{
"name": "ammInputVault";
"isMut": true;
"isSigner": false;
},
{
"name": "ammOutputVault";
"isMut": true;
"isSigner": false;
},
{
"name": "inputTokenMint";
"isMut": false;
"isSigner": false;
},
{
"name": "outputTokenMint";
"isMut": false;
"isSigner": false;
"docs": [
"USDC mint"
];
},
{
"name": "userInAta";
"isMut": true;
"isSigner": false;
"docs": [
"This must be a token account owned by the [FeesCollected] PDA."
];
},
{
"name": "inputTokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "outputTokenProgram";
"isMut": false;
"isSigner": false;
"docs": [
"Token program for USDC mint"
];
}
];
"args": [
{
"name": "minOut";
"type": "u64";
}
];
},
{
"name": "crankV2TwoHop";
"accounts": [
{
"name": "stakePool";
"isMut": true;
"isSigner": false;
"docs": [
"Global state"
];
},
{
"name": "usdcFeeVault";
"isMut": true;
"isSigner": false;
"docs": [
"In the Gamma swap CPI, this is user_out_ata"
];
},
{
"name": "usdcRewardVault";
"isMut": true;
"isSigner": false;
"docs": [
"USDC reward account, fees distribute from here."
];
},
{
"name": "usdcFeeSigner";
"isMut": false;
"isSigner": false;
"docs": [
"that swaps an arbitrary token for USDC."
];
},
{
"name": "gfxAmmProgram";
"isMut": false;
"isSigner": false;
"docs": [
"The swap CPI calls this program"
];
},
{
"name": "ammAuthority";
"isMut": false;
"isSigner": false;
},
{
"name": "ammConfig";
"isMut": false;
"isSigner": false;
},
{
"name": "hop1AmmPoolState";
"isMut": true;
"isSigner": false;
},
{
"name": "hop1AmmObservationState";
"isMut": true;
"isSigner": false;
},
{
"name": "hop1AmmInputVault";
"isMut": true;
"isSigner": false;
},
{
"name": "hop1AmmOutputVault";
"isMut": true;
"isSigner": false;
},
{
"name": "userInAta";
"isMut": true;
"isSigner": false;
"docs": [
"This must be a token account owned by the [FeesCollected] PDA."
];
},
{
"name": "inputTokenMint";
"isMut": false;
"isSigner": false;
},
{
"name": "intermediateTokenMint";
"isMut": false;
"isSigner": false;
},
{
"name": "outputTokenMint";
"isMut": false;
"isSigner": false;
},
{
"name": "inputTokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "intermediateTokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "outputTokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "intermediateTokenAccount";
"isMut": false;
"isSigner": false;
"docs": [
"the first hop.",
"This is a token account owned by the [FeesCollected] PDA and is",
"provided as input to the second hop."
];
},
{
"name": "hop2AmmPoolState";
"isMut": true;
"isSigner": false;
},
{
"name": "hop2AmmObservationState";
"isMut": true;
"isSigner": false;
},
{
"name": "hop2AmmInputVault";
"isMut": true;
"isSigner": false;
},
{
"name": "hop2AmmOutputVault";
"isMut": true;
"isSigner": false;
}
];
"args": [
{
"name": "minOutHop1";
"type": "u64";
},
{
"name": "minOutHop2";
"type": "u64";
}
];
},
{
"name": "stake";
"docs": [
"Stake"
];
"accounts": [
{
"name": "owner";
"isMut": true;
"isSigner": true;
},
{
"name": "stakePool";
"isMut": true;
"isSigner": false;
"docs": [
"Global state"
];
},
{
"name": "userRewardsHoldingAccount";
"isMut": true;
"isSigner": false;
"docs": [
"User's reward are escrowed at TokenAccount of their UserMetadata"
];
},
{
"name": "usdcRewardVault";
"isMut": true;
"isSigner": false;
"docs": [
"USDC reward account, fees distribute from here."
];
},
{
"name": "usdcRewardSigner";
"isMut": false;
"isSigner": false;
},
{
"name": "ownerGofx";
"isMut": true;
"isSigner": false;
},
{
"name": "gofxVault";
"isMut": true;
"isSigner": false;
},
{
"name": "userMetadata";
"isMut": true;
"isSigner": false;
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "amount";
"type": "u64";
}
];
},
{
"name": "unstake";
"docs": [
"Unstake"
];
"accounts": [
{
"name": "owner";
"isMut": true;
"isSigner": true;
"docs": [
"Signer, user metadata account owner"
];
},
{
"name": "stakePool";
"isMut": true;
"isSigner": false;
"docs": [
"Global state"
];
},
{
"name": "userRewardsHoldingAccount";
"isMut": true;
"isSigner": false;
"docs": [
"User's reward are escrowed at TokenAccount of their UserMetadata"
];
},
{
"name": "gofxVault";
"isMut": true;
"isSigner": false;
"docs": [
"Stores the staked GOFX. This instruction will transfer",
"GOFX out of here into the `gofx_unstaked_vault`."
];
},
{
"name": "gofxUnstakedVault";
"isMut": true;
"isSigner": false;
"docs": [
"Stores unstaked GOFX which awaits a claim by an unstaking ticket."
];
},
{
"name": "gofxVaultSigner";
"isMut": false;
"isSigner": false;
},
{
"name": "userMetadata";
"isMut": true;
"isSigner": false;
"docs": [
"We add a ticket to this account."
];
},
{
"name": "usdcRewardVault";
"isMut": true;
"isSigner": false;
"docs": [
"USDC reward account, fees distribute from here."
];
},
{
"name": "usdcRewardSigner";
"isMut": false;
"isSigner": false;
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "amount";
"type": "u64";
}
];
},
{
"name": "resolveUnstakingTicket";
"docs": [
"Resolve Unstaking Ticket"
];
"accounts": [
{
"name": "owner";
"isMut": true;
"isSigner": true;
"docs": [
"The user signing for staking activity on this program."
];
},
{
"name": "gofxUnstakedVault";
"isMut": true;
"isSigner": false;
"docs": [
"The associated GOFX account for [self.gofx_unstaked_signer],",
"and the vault that stores GOFX that will be reclaimed by an unstaking ticket."
];
},
{
"name": "gofxUnstakedSigner";
"isMut": false;
"isSigner": false;
},
{
"name": "ownerGofx";
"isMut": true;
"isSigner": false;
"docs": [
"The associated GOFX account for [self.owner]."
];
},
{
"name": "userMetadata";
"isMut": true;
"isSigner": false;
"docs": [
"The metadata account belonging to [self.owner]."
];
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "indices";
"type": "bytes";
}
];
},
{
"name": "crankUserRewardsHoldingAccount";
"docs": [
"Claim a user's share of fees on behalf of them to their holding account"
];
"accounts": [
{
"name": "user";
"isMut": false;
"isSigner": false;
},
{
"name": "userRewardsHoldingAccount";
"isMut": true;
"isSigner": false;
"docs": [
"User's reward are escrowed at TokenAccount of their UserMetadata"
];
},
{
"name": "stakePool";
"isMut": true;
"isSigner": false;
"docs": [
"Global state"
];
},
{
"name": "gofxVault";
"isMut": false;
"isSigner": false;
"docs": [
"GOFX Staking vault"
];
},
{
"name": "usdcRewardVault";
"isMut": true;
"isSigner": false;
"docs": [
"USDC reward account, fees distribute from here."
];
},
{
"name": "usdcRewardSigner";
"isMut": false;
"isSigner": false;
},
{
"name": "userMetadata";
"isMut": true;
"isSigner": false;
"docs": [
"Stores user staking information"
];
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [];
},
{
"name": "claimFees";
"docs": [
"Claim a share of the collected fees."
];
"accounts": [
{
"name": "owner";
"isMut": true;
"isSigner": true;
"docs": [
"Owner of the user metadata account"
];
},
{
"name": "usdcMint";
"isMut": false;
"isSigner": false;
"docs": [
"USDC Mint, required for the TokenAccount PDA"
];
},
{
"name": "userRewardsHoldingAccount";
"isMut": true;
"isSigner": false;
"docs": [
"A user's unique PDA that points to the TokenAccount escrowing",
"their balance"
];
},
{
"name": "userUsdcAccount";
"isMut": true;
"isSigner": false;
},
{
"name": "usdcRewardSigner";
"isMut": false;
"isSigner": false;
},
{
"name": "userMetadata";
"isMut": true;
"isSigner": false;
"docs": [
"Stores user staking information"
];
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [];
},
{
"name": "closeUserAccount";
"docs": [
"Close a user metadata PDA and return the rent lamports",
"once they close out of all interaction with this program."
];
"accounts": [
{
"name": "owner";
"isMut": true;
"isSigner": true;
"docs": [
"Signer, user metadata account owner"
];
},
{
"name": "rentRecipient";
"isMut": true;
"isSigner": false;
"docs": [
"Recipient of the lamports that supplied the rent-exempt balance",
"of the user metadata account being closed."
];
},
{
"name": "userMetadata";
"isMut": true;
"isSigner": false;
"docs": [
"Close this account"
];
},
{
"name": "userRewardsHoldingAccount";
"isMut": true;
"isSigner": false;
"docs": [
"User's reward are escrowed at TokenAccount of their UserMetadata"
];
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [];
},
{
"name": "createTokenDistributor";
"docs": [
"Create an account configured to distribute token balances fractionally to multiple",
"sources. This allows funneling portions of fee revenue from a single intermediary",
"to multiple locations, one of them being this program."
];
"accounts": [
{
"name": "authority";
"isMut": true;
"isSigner": true;
"docs": [
"The authority for the new token distributor.",
"Only this signer can configure the [TokenDistributionConfig] accounts",
"for this [TokenDistributor]."
];
},
{
"name": "payer";
"isMut": true;
"isSigner": true;
"docs": [
"Pays for the initialization of the new [TokenDistributor]."
];
},
{
"name": "tokenDistributor";
"isMut": true;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [];
},
{
"name": "createTokenDistributionConfig";
"docs": [
"Create configuration state for the token distribution of a given mint."
];
"accounts": [
{
"name": "authority";
"isMut": true;
"isSigner": true;
"docs": [
"The authority for the new token distribution config.",
"Only this signer can configure the [TokenDistributionConfig] accounts",
"for this [TokenDistributor]."
];
},
{
"name": "payer";
"isMut": true;
"isSigner": true;
"docs": [
"Pays for the initialization of the new [TokenDistributionConfig],",
"and the [TokenDistributor]'s associated token account for this mint."
];
},
{
"name": "mint";
"isMut": false;
"isSigner": false;
"docs": [
"The mint for the newly created [TokenDistributionConfig]."
];
},
{
"name": "tokenDistributor";
"isMut": false;
"isSigner": false;
"docs": [
"The distributor who will own the ATA for this mint and sign for",
"balance transfers during token distribution."
];
},
{
"name": "tokenDistributionConfig";
"isMut": true;
"isSigner": false;
},
{
"name": "tokenAct";
"isMut": true;
"isSigner": false;
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "associatedTokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "config";
"type": {
"vec": {
"defined": "TokenDestination";
};
};
}
];
},
{
"name": "configureTokenDistribution";
"docs": [
"Configure the token distribution of a given mint."
];
"accounts": [
{
"name": "authority";
"isMut": false;
"isSigner": true;
"docs": [
"The authority for the new token distribution config.",
"Only this signer can configure the [TokenDistributionConfig] accounts",
"for this [TokenDistributor]."
];
},
{
"name": "tokenDistributionConfig";
"isMut": true;
"isSigner": false;
}
];
"args": [
{
"name": "config";
"type": {
"vec": {
"defined": "TokenDestination";
};
};
}
];
},
{
"name": "crankTokenDistribution";
"docs": [
"Distribute tokens to multiple destinations according to a given configuration."
];
"accounts": [
{
"name": "tokenDistributor";
"isMut": false;
"isSigner": false;
},
{
"name": "tokenDistributionConfig";
"isMut": false;
"isSigner": false;
},
{
"name": "from";
"isMut": true;
"isSigner": false;
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [];
},
{
"name": "initializeTokenCrank";
"docs": [
"Initialize a generic token-crank, configured to specific `output-mint` and `destination-signer`"
];
"accounts": [
{
"name": "payer";
"isMut": true;
"isSigner": true;
},
{
"name": "tokenCrank";
"isMut": true;
"isSigner": true;
},
{
"name": "crankSigner";
"isMut": false;
"isSigner": false;
},
{
"name": "outputMint";
"isMut": false;
"isSigner": false;
"docs": [
"The crank output mint"
];
},
{
"name": "crankOutputVault";
"isMut": true;
"isSigner": false;
"docs": [
"This account receives the crank output and transfers it to the distribution vault"
];
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "associatedTokenProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "destinationOwner";
"type": "publicKey";
}
];
},
{
"name": "crankTokensGammaStep";
"docs": [
"For a specific crank, swap the balance of one of its crank-signer's token-accounts to the crank output-mint"
];
"accounts": [
{
"name": "crank";
"isMut": true;
"isSigner": false;
"docs": [
"Crank state"
];
},
{
"name": "crankSigner";
"isMut": false;
"isSigner": false;
},
{
"name": "inputTokenMint";
"isMut": false;
"isSigner": false;
"docs": [
"The input token mint"
];
},
{
"name": "outputTokenMint";
"isMut": false;
"isSigner": false;
"docs": [
"The output token mint"
];
},
{
"name": "inputTokenAccount";
"isMut": true;
"isSigner": false;
},
{
"name": "outputTokenAccount";
"isMut": true;
"isSigner": false;
},
{
"name": "gammaAuthority";
"isMut": false;
"isSigner": false;
},
{
"name": "gammaConfig";
"isMut": false;
"isSigner": false;
},
{
"name": "gammaPoolState";
"isMut": true;
"isSigner": false;
},
{
"name": "gammaPoolObservationState";
"isMut": true;
"isSigner": false;
},
{
"name": "gammaPoolInputVault";
"isMut": true;
"isSigner": false;
},
{
"name": "gammaPoolOutputVault";
"isMut": true;
"isSigner": false;
},
{
"name": "inputTokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "outputTokenProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "destinationOwner";
"isMut": false;
"isSigner": false;
},
{
"name": "destinationOutputTokenAccount";
"isMut": true;
"isSigner": false;
"isOptional": true;
},
{
"name": "gammaProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "minAmountOut";
"type": "u64";
}
];
},
{
"name": "initializeLstRewards";
"docs": [
"Initialize the LST rewards instance"
];
"accounts": [
{
"name": "payer";
"isMut": true;
"isSigner": true;
},
{
"name": "lstRewards";
"isMut": true;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "authority";
"type": "publicKey";
},
{
"name": "destinationReserveAccount";
"type": "publicKey";
}
];
},
{
"name": "updateLstRewardsParams";
"docs": [
"Update the params for LSTRewards, such as authority or the destination reserve account"
];
"accounts": [
{
"name": "authority";
"isMut": true;
"isSigner": true;
},
{
"name": "lstRewards";
"isMut": true;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [
{
"name": "authority";
"type": {
"option": "publicKey";
};
},
{
"name": "destinationReserveAccount";
"type": {
"option": "publicKey";
};
}
];
},
{
"name": "transferLstRewards";
"docs": [
"Transfer SOL from rewards native token-account to the destination reserve"
];
"accounts": [
{
"name": "lstRewards";
"isMut": true;
"isSigner": false;
},
{
"name": "rewardsTokenAccount";
"isMut": true;
"isSigner": false;
},
{
"name": "reserveAccount";
"isMut": true;
"isSigner": false;
},
{
"name": "systemProgram";
"isMut": false;
"isSigner": false;
},
{
"name": "tokenProgram";
"isMut": false;
"isSigner": false;
}
];
"args": [];
}
];
"accounts": [
{
"name": "tokenCrank";
"docs": [
"A global account that stores the result of cranking multiple tokens owned by",
"a particular PDA to a single output mint."
];
"type": {
"kind": "struct";
"fields": [
{
"name": "outputMint";
"docs": [
"The output mint for token cranks"
];
"type": "publicKey";
},
{
"name": "totalAccumulatedTokens";
"docs": [
"A monotonically increasing value, that increments each time the output-mint",
"is added to the [OutputVault]'s associated token account"
];
"type": "u128";
},
{
"name": "protocolActivatedAt";
"docs": [
"Protocol activation time"
];
"type": "i64";
},
{
"name": "destinationOwner";
"docs": [
"The signer of the token-account output tokens are transferred to"
];
"type": "publicKey";
}
];
};
},
{
"name": "lstRewards";
"docs": [
"Account storing information about LSTRewards. This account also acts",
"as the signer to transfer SOL from its token-account to a reserve-account."
];
"type": {
"kind": "struct";
"fields": [
{
"name": "authority";
"docs": [
"The authority of this account.",
"Allowed to set a new `authority`, `crank`, or `reserve_account`"
];
"type": "publicKey";
},
{
"name": "reserveAccount";
"docs": [
"The reserve stake account that receives SOL from the crank output"
];
"type": "publicKey";
},
{
"name": "totalLamportsDistributed";
"docs": [
"The total number of lamports send to the reserve account"
];
"type": "u128";
}
];
};
},
{
"name": "stakePool";
"docs": [
"A global account that stores global staking information."
];
"type": {
"kind": "struct";
"fields": [
{
"name": "totalAccumulatedProfit";
"docs": [
"A monotonically increasing value, that increments each time",
"USDC is added to the [UsdcRewardVault]'s associ