goosefx-stake-rewards-sdk
Version:
A SDK for interfacing with the GooseFX stake rewards program
1,528 lines • 62.1 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.IDL = void 0;
exports.IDL = {
"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 associated USDC account."
],
"type": "u64"
},
{
"name": "pro