/** * Program IDL in camelCase format in order to be used in JS/TS. * * Note that this is only a type helper and is not the actual IDL. The original * IDL can be found at `target/idl/permissionless.json`. */ export type Permissionless = { address: string; metadata: { name: "permissionless"; version: "3.2.0"; spec: "0.1.0"; description: "Created with Anchor"; }; instructions: [ { name: "addAsyncDeploymentTarget"; docs: [ "Adds an async deployment target for the given strategy type.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `strategy_type` - The async strategy type to add the deployment target for.", "* `target_key` - The key of the deployment target.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [21, 128, 4, 227, 182, 90, 20, 171]; accounts: [ { name: "signer"; writable: true; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "asyncDeploymentConfig"; writable: true; }, { name: "asyncDeploymentState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 97, 115, 121, 110, 99, 95, 100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "asyncDeploymentConfig"; } ]; }; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: [ { name: "strategyType"; type: { defined: { name: "asyncDeploymentStrategyType"; }; }; }, { name: "targetKey"; type: "pubkey"; } ]; }, { name: "addDeploymentTarget"; docs: [ "Add a deployment target for the given strategy type.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `strategy_type` - The strategy type to add the deployment target for.", "* `target_key` - The key of the deployment target.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [231, 191, 129, 183, 23, 79, 165, 130]; accounts: [ { name: "signer"; writable: true; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "deploymentConfig"; writable: true; }, { name: "deploymentState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "deploymentConfig"; } ]; }; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: [ { name: "strategyType"; type: { defined: { name: "deploymentStrategyType"; }; }; }, { name: "targetKey"; type: "pubkey"; } ]; }, { name: "addInstantWithdrawalLender"; docs: [ "Adds a new instant withdrawal lender to the pool.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `lender` - The address of the instant withdrawal lender.", "", "# Access Control", "Only the pool owner can call this instruction." ]; discriminator: [202, 77, 67, 93, 143, 238, 172, 10]; accounts: [ { name: "signer"; writable: true; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "instantWithdrawalLenderConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 105, 110, 115, 116, 97, 110, 116, 95, 119, 105, 116, 104, 100, 114, 97, 119, 97, 108, 95, 108, 101, 110, 100, 101, 114 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "arg"; path: "lender"; } ]; }; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: [ { name: "lender"; type: "pubkey"; } ]; }, { name: "addMode"; docs: [ "Adds a mode to the pool.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `mode_id` - The mode ID.", "* `mode_name` - The mode name.", "* `target_apy_bps` - The target annual percentage yield (APY) for the underlying assets", "deposited, expressed in basis points.", "* `token_metadata_args` - The mode token metadata parameters.", "", "# Dev Notes", "See the docs for `ModeConfig` on how `target_apy_bps` is related to the actual APY used", "for calculation.", "", "# Access Control", "Only the pool owner can call this instruction." ]; discriminator: [136, 187, 228, 193, 168, 107, 113, 144]; accounts: [ { name: "poolOwner"; writable: true; signer: true; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "modeConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "arg"; path: "modeId"; } ]; }; }, { name: "modeMint"; writable: true; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 109, 105, 110, 116]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "modeConfig"; } ]; }; }, { name: "tokenMetadata"; docs: ["The token metadata account."]; writable: true; }, { name: "tokenProgram"; }, { name: "associatedTokenProgram"; address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"; }, { name: "mplTokenMetadataProgram"; docs: ["The MPL Token Metadata program."]; address: "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; }, { name: "sysvarInstructionsProgram"; address: "Sysvar1nstructions1111111111111111111111111"; } ]; args: [ { name: "modeId"; type: "pubkey"; }, { name: "modeName"; type: "string"; }, { name: "targetApyBps"; type: "u16"; }, { name: "tokenMetadataArgs"; type: { defined: { name: "manageModeTokenMetadataArgs"; }; }; } ]; }, { name: "addPoolOperator"; docs: [ "Adds a new operator to the pool.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `operator` - The address of the pool operator.", "", "# Access Control", "Only the pool owner can call this instruction." ]; discriminator: [87, 245, 32, 78, 182, 157, 163, 249]; accounts: [ { name: "signer"; writable: true; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "poolOperatorConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 111, 112, 101, 114, 97, 116, 111, 114 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "arg"; path: "operator"; } ]; }; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: [ { name: "operator"; type: "pubkey"; } ]; }, { name: "addRedemptionRequestV2"; docs: [ "Adds a new redemption request. `payer` will pay for the account rent-exempt fees.", "", "# Arguments", "* `shares` - The number of shares the lender wants to redeem.", "", "# Trigger Condition", "Only when both the protocol and the pool are on.", "", "# Access Control", "Only lenders can call this instruction." ]; discriminator: [96, 173, 49, 36, 201, 46, 244, 189]; accounts: [ { name: "payer"; writable: true; signer: true; }, { name: "lender"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "modeConfig"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "mode_config.id"; account: "modeConfig"; } ]; }; }, { name: "modeMint"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 109, 105, 110, 116]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "modeConfig"; } ]; }; }, { name: "redemptionRequest"; writable: true; }, { name: "lenderState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 108, 101, 110, 100, 101, 114, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "modeConfig"; }, { kind: "account"; path: "lender"; } ]; }; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "poolModeToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "tokenProgram"; }, { kind: "account"; path: "modeMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "lenderModeToken"; writable: true; }, { name: "tokenProgram"; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: [ { name: "shares"; type: "u64"; } ]; }, { name: "addStrategyManagerWallet"; docs: [ "Adds a new wallet for the strategy manager to the pool.", "", "# Trigger Condition", "Only when the protocol and pool are both on.", "", "# Arguments", "* `wallet` - The wallet address.", "", "# Access Control", "Only the pool owner can call this instruction." ]; discriminator: [195, 173, 154, 48, 102, 125, 181, 237]; accounts: [ { name: "poolOwner"; writable: true; signer: true; relations: ["poolConfig"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "strategyManagerWallet"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114, 95, 119, 97, 108, 108, 101, 116 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "arg"; path: "wallet"; } ]; }; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: [ { name: "wallet"; type: "pubkey"; } ]; }, { name: "approveManualStrategyManager"; docs: [ "Approves a pending manual strategy manager proposal.", "", "# Trigger Condition", "Only when the protocol and pool are both on.", "", "# Access Control", "Only the Huma owner can call this instruction." ]; discriminator: [250, 162, 53, 178, 184, 236, 106, 167]; accounts: [ { name: "humaOwner"; writable: true; signer: true; }, { name: "poolOwner"; writable: true; relations: ["poolConfig"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; relations: ["proposal"]; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "proposal"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 109, 97, 110, 117, 97, 108, 95, 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114, 95, 112, 114, 111, 112, 111, 115, 97, 108 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "proposal.wallet"; account: "manualStrategyManagerProposal"; } ]; }; }, { name: "manualStrategyManager"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 109, 97, 110, 117, 97, 108, 95, 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "proposal.wallet"; account: "manualStrategyManagerProposal"; } ]; }; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: []; }, { name: "cancelManualStrategyManagerProposal"; docs: [ "Cancels a pending manual strategy manager proposal.", "", "# Trigger Condition", "Only when the protocol and pool are both on.", "", "# Access Control", "Only the pool owner can call this instruction." ]; discriminator: [164, 185, 150, 19, 234, 253, 40, 69]; accounts: [ { name: "poolOwner"; writable: true; signer: true; relations: ["poolConfig"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; relations: ["proposal"]; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "proposal"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 109, 97, 110, 117, 97, 108, 95, 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114, 95, 112, 114, 111, 112, 111, 115, 97, 108 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "proposal.wallet"; account: "manualStrategyManagerProposal"; } ]; }; } ]; args: []; }, { name: "cancelRedemptionRequest"; docs: [ "Reduces the number of shares request for redemption.", "", "# Arguments", "* `shares` - The number of shares in the redemption request to be canceled.", "", "# Trigger Condition", "Only when both the protocol and the pool are on.", "", "# Access Control", "Only the pool owner and the Sentinel service account can call this instruction." ]; discriminator: [77, 155, 4, 179, 114, 233, 162, 45]; accounts: [ { name: "signer"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "modeConfig"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "mode_config.id"; account: "modeConfig"; } ]; }; relations: ["redemptionRequest"]; }, { name: "modeMint"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 109, 105, 110, 116]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "modeConfig"; } ]; }; }, { name: "redemptionRequest"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 114, 101, 100, 101, 109, 112, 116, 105, 111, 110, 95, 114, 101, 113, 117, 101, 115, 116 ]; }, { kind: "account"; path: "redemption_request.id"; account: "redemptionRequest"; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "lenderState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 108, 101, 110, 100, 101, 114, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "modeConfig"; }, { kind: "account"; path: "redemption_request.lender"; account: "redemptionRequest"; } ]; }; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "poolModeToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "tokenProgram"; }, { kind: "account"; path: "modeMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "lenderModeToken"; writable: true; }, { name: "tokenProgram"; } ]; args: [ { name: "shares"; type: "u64"; } ]; }, { name: "changePoolOwner"; docs: [ "Changes the pool owner.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `new_owner` - The new pool owner.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [169, 55, 183, 24, 152, 180, 167, 11]; accounts: [ { name: "signer"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; } ]; args: [ { name: "newOwner"; type: "pubkey"; } ]; }, { name: "clearInstantWithdrawalLiquiditySource"; docs: [ "Clears the deployment target from which liquidity is pulled when the pool's available", "balance is insufficient to satisfy an instant withdrawal.", "", "# Trigger Condition", "When the protocol is on.", "", "# Access Control", "Only strategy manager wallets can call this instruction." ]; discriminator: [53, 151, 188, 231, 236, 184, 141, 85]; accounts: [ { name: "wallet"; signer: true; relations: ["strategyManagerWallet"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "strategyManagerWallet"; pda: { seeds: [ { kind: "const"; value: [ 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114, 95, 119, 97, 108, 108, 101, 116 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "strategy_manager_wallet.wallet"; account: "strategyManagerWallet"; } ]; }; } ]; args: []; }, { name: "closeLenderAccounts"; docs: [ "Closes the accounts owned by the lender.", "", "# Trigger Condition", "N/A. The instruction can be triggered at any time.", "", "# Access Control", "Only lenders can call this instruction." ]; discriminator: [222, 126, 36, 205, 193, 173, 194, 224]; accounts: [ { name: "payer"; writable: true; signer: true; }, { name: "lender"; signer: true; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "modeConfig"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "mode_config.id"; account: "modeConfig"; } ]; }; }, { name: "lenderState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 108, 101, 110, 100, 101, 114, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "modeConfig"; }, { kind: "account"; path: "lender"; } ]; }; } ]; args: []; }, { name: "closePool"; docs: [ "Closes the pool after its maturity.", "", "# Trigger Condition", "Only when the pool is in the pre-closure status.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [140, 189, 209, 23, 239, 62, 239, 11]; accounts: [ { name: "signer"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "poolUnderlyingToken"; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "tokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "tokenProgram"; } ]; args: []; }, { name: "completeLiquidityPaybackAsync"; docs: [ "Completes a previously initiated payback via an async strategy. Claims the", "redeemed underlying tokens from the target and updates pool accounting.", "", "# Trigger Condition", "When the protocol is on, and the pool is not closed.", "", "# Arguments", "* `strategy_type` - The async deployment strategy type.", "", "# Access Control", "Only strategy manager wallets can call this instruction." ]; discriminator: [233, 72, 152, 253, 73, 201, 108, 242]; accounts: [ { name: "wallet"; signer: true; relations: ["strategyManagerWallet"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "asyncDeploymentConfig"; }, { name: "asyncDeploymentState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 97, 115, 121, 110, 99, 95, 100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "asyncDeploymentConfig"; } ]; }; }, { name: "strategyManagerWallet"; pda: { seeds: [ { kind: "const"; value: [ 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114, 95, 119, 97, 108, 108, 101, 116 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "strategy_manager_wallet.wallet"; account: "strategyManagerWallet"; } ]; }; }, { name: "poolAuthority"; docs: ["deserialize."]; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "poolUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "tokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "tokenProgram"; } ]; args: [ { name: "strategyType"; type: { defined: { name: "asyncDeploymentStrategyType"; }; }; } ]; }, { name: "createLenderAccountsV2"; docs: [ "Creates the accounts necessary for a lender. `payer` will pay for the account rent-exempt fees.", "", "# Trigger Condition", "1. For the pool owner treasury: when the pool is not closed.", "2. For other lenders: when both the protocol and pool are on.", "", "# Access Control", "Anyone can call this instruction." ]; discriminator: [203, 52, 185, 231, 192, 74, 121, 108]; accounts: [ { name: "payer"; writable: true; signer: true; }, { name: "lender"; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "modeConfig"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "mode_config.id"; account: "modeConfig"; } ]; }; }, { name: "modeMint"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 109, 105, 110, 116]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "modeConfig"; } ]; }; }, { name: "lenderState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 108, 101, 110, 100, 101, 114, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "modeConfig"; }, { kind: "account"; path: "lender"; } ]; }; }, { name: "lenderModeToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "lender"; }, { kind: "account"; path: "tokenProgram"; }, { kind: "account"; path: "modeMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "tokenProgram"; }, { name: "associatedTokenProgram"; address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: []; }, { name: "createPool"; docs: [ "", "Creates a new permissionless pool.", "", "# Arguments", "* `pool_id` - The ID of the pool.", "* `pool_name` - The name of the pool.", "* `pool_owner_treasury` - The address of the pool owner treasury, which will be responsible", "for providing initial liquidity and receiving pool owner fees.", "", "# Trigger Condition", "N/A. The instruction can be triggered at any time.", "", "# Access Control", "Anyone can call this instruction. The signer will become the owner of the pool." ]; discriminator: [233, 146, 209, 142, 207, 104, 64, 188]; accounts: [ { name: "owner"; writable: true; signer: true; }, { name: "humaConfig"; }, { name: "liquidityAsset"; }, { name: "poolConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "arg"; path: "poolId"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "underlyingMint"; }, { name: "poolUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "tokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "tokenProgram"; }, { name: "associatedTokenProgram"; address: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: [ { name: "poolId"; type: "pubkey"; }, { name: "poolName"; type: "string"; }, { name: "poolOwnerTreasury"; type: "pubkey"; }, { name: "lossAuthority"; type: "pubkey"; } ]; }, { name: "declareLoss"; docs: [ "Declares loss on an investment. When the loss is on liquid assets, the strategy manager must", "also update `liquid_assets_deployed` accordingly.", "", "# Trigger Condition", "When the protocol is on, and the pool is either on or in the pre-closure status.", "", "# Dev Notes", "It is possible for the strategy manager to deploy and pay back liquidity after loss declaration.", "", "# Access Control", "Only the loss authority can call this instruction." ]; discriminator: [51, 202, 154, 130, 65, 132, 242, 188]; accounts: [ { name: "lossAuthority"; signer: true; relations: ["poolConfig"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "poolUnderlyingToken"; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "tokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "tokenProgram"; } ]; args: [ { name: "loss"; type: "u64"; } ]; }, { name: "deployLiquidity"; docs: [ "Deploys liquidity from the pool to investment opportunities.", "", "# Trigger Condition", "When the protocol is on, and the pool is either on or in the pre-closure status. Deployment", "is allowed in pre-closure in case the strategy manager accidentally pays more liquidity back", "than required for withdrawal and needs to take the funds back.", "", "# Arguments", "* `amount` - The amount to deploy.", "", "# Access Control", "Only strategy manager wallets can call this instruction." ]; discriminator: [49, 35, 101, 76, 93, 4, 31, 53]; accounts: [ { name: "wallet"; signer: true; relations: ["strategyManagerWallet"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "deploymentConfig"; }, { name: "deploymentState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "deploymentConfig"; } ]; }; }, { name: "strategyManagerWallet"; pda: { seeds: [ { kind: "const"; value: [ 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114, 95, 119, 97, 108, 108, 101, 116 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "strategy_manager_wallet.wallet"; account: "strategyManagerWallet"; } ]; }; }, { name: "poolAuthority"; docs: [ "deserialize. Mutable only because Jupiter Lending incorrectly requires the signer account", "to be writable." ]; writable: true; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "poolUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "tokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "tokenProgram"; } ]; args: [ { name: "strategyType"; type: { defined: { name: "deploymentStrategyType"; }; }; }, { name: "amount"; type: "u64"; } ]; }, { name: "deployLiquidityAsync"; docs: [ "Deploys liquidity from the pool via an async strategy.", "", "# Trigger Condition", "When the protocol is on, and the pool is on or in pre-closure.", "", "# Arguments", "* `strategy_type` - The async deployment strategy type.", "* `amount` - The amount to deploy.", "", "# Access Control", "Only strategy manager wallets can call this instruction." ]; discriminator: [44, 179, 47, 203, 177, 83, 181, 109]; accounts: [ { name: "wallet"; signer: true; relations: ["strategyManagerWallet"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "asyncDeploymentConfig"; }, { name: "asyncDeploymentState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 97, 115, 121, 110, 99, 95, 100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "asyncDeploymentConfig"; } ]; }; }, { name: "strategyManagerWallet"; pda: { seeds: [ { kind: "const"; value: [ 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114, 95, 119, 97, 108, 108, 101, 116 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "strategy_manager_wallet.wallet"; account: "strategyManagerWallet"; } ]; }; }, { name: "poolAuthority"; docs: ["deserialize."]; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "poolUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "tokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "tokenProgram"; } ]; args: [ { name: "strategyType"; type: { defined: { name: "asyncDeploymentStrategyType"; }; }; }, { name: "amount"; type: "u64"; } ]; }, { name: "deployLiquidityManually"; docs: [ "Deploys liquidity from the pool via the manual strategy. Only manual strategy managers", "can call this instruction. Subject to per-transaction and daily deployment limits.", "", "# Trigger Condition", "When the protocol is on, and the pool is either on or in the pre-closure status.", "", "# Arguments", "* `amount` - The amount to deploy.", "", "# Access Control", "Only manual strategy managers can call this instruction." ]; discriminator: [74, 157, 114, 153, 25, 5, 219, 43]; accounts: [ { name: "wallet"; signer: true; relations: ["manualStrategyManager"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "deploymentConfig"; }, { name: "deploymentState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "deploymentConfig"; } ]; }; }, { name: "manualStrategyManager"; pda: { seeds: [ { kind: "const"; value: [ 109, 97, 110, 117, 97, 108, 95, 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "manual_strategy_manager.wallet"; account: "manualStrategyManager"; } ]; }; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "poolUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "tokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "tokenProgram"; } ]; args: [ { name: "amount"; type: "u64"; } ]; }, { name: "deposit"; docs: [ "LP deposits to the pool to earn yield and share losses.", "", "All deposits should be made by calling this instruction and", "`make_initial_deposit()` (for the pool owner's initial deposit) only.", "Please do NOT directly transfer any crypto assets to the pool,", "which will cause a permanent loss, and we cannot help reverse transactions", "or retrieve assets.", "", "# Arguments", "* `assets` - The amount of underlying assets to be deposited.", "* `commitment` - The commitment type of the deposit. This is needed by other systems in the", "Huma protocol to track the commitment status of the deposit.", "* `commitment_auto_renewal` - Whether the commitment automatically renews after expiration.", "This is needed by other systems in the Huma protocol to track the commitment status of", "the deposit.", "", "# Returns", "The number of mode token minted.", "", "# Trigger Condition", "Only when both the protocol and the pool are on.", "", "# Access Control", "Anyone can call this instruction. The caller will become a lender in the pool.", "", "# Dev Notes", "1. `commitment` and `commitment_auto_renewal` are not used by the program.", "They are pass-through arguments used by other systems in the Huma protocol to detect", "deposit commitment violations.", "2. The parameter `commitment` has type `String` instead of `enum` so that we don't have to", "upgrade the program when we add additional commitment types/alter existing ones." ]; discriminator: [242, 35, 198, 137, 82, 225, 242, 182]; accounts: [ { name: "depositor"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "modeConfig"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "mode_config.id"; account: "modeConfig"; } ]; }; }, { name: "modeMint"; writable: true; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 109, 105, 110, 116]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "modeConfig"; } ]; }; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "poolUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "underlyingTokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "depositorUnderlyingToken"; writable: true; }, { name: "depositorModeToken"; writable: true; }, { name: "underlyingTokenProgram"; }, { name: "modeTokenProgram"; } ]; args: [ { name: "assets"; type: "u64"; }, { name: "commitment"; type: "string"; }, { name: "commitmentAutoRenewal"; type: "bool"; } ]; returns: "u64"; }, { name: "disablePool"; docs: [ "Disables the pool. Once a pool is disabled, no money moves in or out.", "", "# Trigger Condition", "Only when the pool is on.", "", "# Access Control", "Only pool operators can call this instruction." ]; discriminator: [248, 118, 211, 160, 149, 150, 135, 37]; accounts: [ { name: "poolOperator"; signer: true; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "poolOperatorConfig"; } ]; args: []; }, { name: "disburse"; docs: [ "Transfers all the amount that has been redeemed but not yet disbursed to the lender.", "", "# Trigger Condition", "When the protocol is on, and the pool is either on or in the pre-closure status.", "", "# Access Control", "Only lenders can call this instruction." ]; discriminator: [68, 250, 205, 89, 217, 142, 13, 44]; accounts: [ { name: "lender"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "modeConfig"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "mode_config.id"; account: "modeConfig"; } ]; }; }, { name: "lenderState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 108, 101, 110, 100, 101, 114, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "modeConfig"; }, { kind: "account"; path: "lender"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "poolUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "tokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "lenderUnderlyingToken"; writable: true; }, { name: "tokenProgram"; } ]; args: []; }, { name: "enablePool"; docs: [ "Turns on the pool. Before a pool is turned on, the required mode liquidity must be", "deposited first.", "", "# Trigger Condition", "N/A. The instruction can be triggered at any time.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [120, 47, 0, 69, 84, 74, 16, 177]; accounts: [ { name: "signer"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; } ]; args: []; }, { name: "enterPreClosure"; docs: [ "Puts the pool in pre-closure status so that final processing can happen to prepare", "for closure. Pool assets will be refreshed one last time and lenders will no longer accrue", "yields after the pool enters the pre-closure status.", "", "# Trigger Condition", "N/A. The instruction can be triggered at any time.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [236, 246, 62, 133, 60, 195, 118, 151]; accounts: [ { name: "signer"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; } ]; args: []; }, { name: "initiateLiquidityPaybackAsync"; docs: [ "Initiates a liquidity payback via an async strategy. The redeemed funds may not be", "available immediately and must be claimed in a separate step via", "`complete_liquidity_payback_async`.", "", "# Trigger Condition", "When the protocol is on, and the pool is not closed.", "", "# Arguments", "* `strategy_type` - The async deployment strategy type.", "* `shares` - The number of shares to redeem.", "", "# Access Control", "Only strategy manager wallets can call this instruction." ]; discriminator: [14, 191, 236, 248, 247, 101, 232, 70]; accounts: [ { name: "wallet"; signer: true; relations: ["strategyManagerWallet"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "asyncDeploymentConfig"; }, { name: "asyncDeploymentState"; pda: { seeds: [ { kind: "const"; value: [ 97, 115, 121, 110, 99, 95, 100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "asyncDeploymentConfig"; } ]; }; }, { name: "strategyManagerWallet"; pda: { seeds: [ { kind: "const"; value: [ 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114, 95, 119, 97, 108, 108, 101, 116 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "strategy_manager_wallet.wallet"; account: "strategyManagerWallet"; } ]; }; }, { name: "poolAuthority"; docs: ["deserialize."]; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; } ]; args: [ { name: "strategyType"; type: { defined: { name: "asyncDeploymentStrategyType"; }; }; }, { name: "shares"; type: "u64"; } ]; }, { name: "instantWithdraw"; docs: [ "Allows a lender to withdraw their own shares directly, bypassing the redemption queue.", "This provides immediate liquidity when the pool has sufficient available balance.", "", "# Arguments", "* `shares` - The number of shares the lender wants to withdraw.", "* `max_fee_bps` - The maximum fee in basis points the lender is willing to accept.", "If the actual fee (based on liquid asset ratio post-withdrawal) exceeds this, the", "instruction fails.", "", "# Trigger Condition", "Only when both the protocol and the pool are on.", "", "# Access Control", "Any lender can call this instruction for their own shares." ]; discriminator: [171, 49, 145, 176, 48, 101, 112, 162]; accounts: [ { name: "lender"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "modeConfig"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "mode_config.id"; account: "modeConfig"; } ]; }; }, { name: "modeMint"; writable: true; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 109, 105, 110, 116]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "modeConfig"; } ]; }; }, { name: "deploymentConfig"; optional: true; }, { name: "deploymentState"; writable: true; optional: true; pda: { seeds: [ { kind: "const"; value: [ 100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "deploymentConfig"; } ]; }; }, { name: "lenderState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 108, 101, 110, 100, 101, 114, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "modeConfig"; }, { kind: "account"; path: "lender"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "poolAuthority"; docs: [ "deserialize. Mutable only because Jupiter Lending incorrectly requires the signer account", "to be writable." ]; writable: true; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "poolUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "underlyingTokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "lenderUnderlyingToken"; writable: true; }, { name: "poolOwnerTreasuryUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "pool_config.pool_owner_treasury"; account: "poolConfig"; }, { kind: "account"; path: "underlyingTokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "lenderModeToken"; writable: true; }, { name: "underlyingTokenProgram"; }, { name: "modeTokenProgram"; } ]; args: [ { name: "shares"; type: "u64"; }, { name: "maxFeeBps"; type: "u16"; } ]; }, { name: "instantWithdrawPrivileged"; docs: [ "Allows an authorized instant withdrawal lender to withdraw their own shares directly,", "bypassing the redemption queue. This provides immediate liquidity when the pool", "has sufficient available balance.", "", "Compared to `instant_withdraw`, this privileged path gives authorized lenders several benefits:", "1. No fees are incurred.", "2. The instant withdrawal reserve can be tapped into.", "3. Redemption gating does not apply.", "", "Fees are applied to the post-withdrawal liquid-asset ratio (one tier per withdrawal),", "not progressively like tax brackets. Users may split a withdrawal into multiple", "smaller ones to reduce total fees if they prefer.", "", "# Arguments", "* `shares` - The number of shares the lender wants to withdraw.", "", "# Trigger Condition", "Only when both the protocol and the pool are on.", "", "# Access Control", "Only authorized instant withdrawal lenders can call this instruction for their own shares." ]; discriminator: [101, 97, 214, 222, 232, 246, 104, 48]; accounts: [ { name: "lender"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "instantWithdrawalLenderConfig"; }, { name: "modeConfig"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "mode_config.id"; account: "modeConfig"; } ]; }; }, { name: "modeMint"; writable: true; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 109, 105, 110, 116]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "modeConfig"; } ]; }; }, { name: "deploymentConfig"; optional: true; }, { name: "deploymentState"; writable: true; optional: true; pda: { seeds: [ { kind: "const"; value: [ 100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "deploymentConfig"; } ]; }; }, { name: "lenderState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 108, 101, 110, 100, 101, 114, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "modeConfig"; }, { kind: "account"; path: "lender"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "poolAuthority"; docs: [ "deserialize. Mutable only because Jupiter Lending incorrectly requires the signer account", "to be writable." ]; writable: true; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "poolUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "underlyingTokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "lenderUnderlyingToken"; writable: true; }, { name: "lenderModeToken"; writable: true; }, { name: "underlyingTokenProgram"; }, { name: "modeTokenProgram"; } ]; args: [ { name: "shares"; type: "u64"; } ]; }, { name: "makeInitialDeposit"; docs: [ "Allows the pool owner to make initial deposit before the pool goes live.", "", "# Arguments", "* `assets` - The amount of underlying assets to be deposited.", "* `commitment` - The commitment type of the deposit.", "", "# Returns", "The number of mode token minted.", "", "# Trigger Condition", "When the protocol is on and the pool is not closed.", "", "# Access Control", "Only authorized initial depositors can call this instruction.", "", "# Dev Notes", "The parameter `commitment` has type `String` instead of `enum` so that we can avoid program", "upgrade when we add additional commitment types in the future." ]; discriminator: [141, 233, 75, 102, 37, 93, 94, 79]; accounts: [ { name: "poolOwnerTreasury"; signer: true; relations: ["poolConfig"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "modeConfig"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "mode_config.id"; account: "modeConfig"; } ]; }; }, { name: "modeMint"; writable: true; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 109, 105, 110, 116]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "modeConfig"; } ]; }; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "poolUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "underlyingTokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "poolOwnerTreasuryUnderlyingToken"; writable: true; }, { name: "poolOwnerTreasuryModeToken"; writable: true; }, { name: "underlyingTokenProgram"; }, { name: "modeTokenProgram"; } ]; args: [ { name: "assets"; type: "u64"; }, { name: "commitment"; type: "string"; } ]; returns: "u64"; }, { name: "payBackLiquidity"; docs: [ "Pays back liquidity to the pool.", "", "# Trigger Condition", "When the protocol is on, and the pool is not closed.", "", "# Arguments", "* `amount` - The amount to pay back.", "", "# Access Control", "Only strategy manager wallets can call this instruction." ]; discriminator: [97, 171, 224, 78, 162, 164, 181, 228]; accounts: [ { name: "wallet"; signer: true; relations: ["strategyManagerWallet"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "deploymentConfig"; }, { name: "deploymentState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "deploymentConfig"; } ]; }; }, { name: "strategyManagerWallet"; pda: { seeds: [ { kind: "const"; value: [ 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114, 95, 119, 97, 108, 108, 101, 116 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "strategy_manager_wallet.wallet"; account: "strategyManagerWallet"; } ]; }; }, { name: "poolAuthority"; docs: [ "deserialize. Mutable only because Jupiter Lending incorrectly requires the signer account", "to be writable." ]; writable: true; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "poolUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "tokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "tokenProgram"; } ]; args: [ { name: "strategyType"; type: { defined: { name: "deploymentStrategyType"; }; }; }, { name: "amount"; type: "u64"; } ]; }, { name: "payBackLiquidityManually"; docs: [ "Pays back liquidity to the pool via the manual strategy.", "", "# Trigger Condition", "When the protocol is on, and the pool is not closed.", "", "# Arguments", "* `amount` - The amount to pay back.", "", "# Access Control", "Only manual strategy managers can call this instruction." ]; discriminator: [15, 105, 175, 222, 154, 87, 101, 132]; accounts: [ { name: "wallet"; signer: true; relations: ["manualStrategyManager"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "deploymentConfig"; }, { name: "deploymentState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "deploymentConfig"; } ]; }; }, { name: "manualStrategyManager"; pda: { seeds: [ { kind: "const"; value: [ 109, 97, 110, 117, 97, 108, 95, 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "manual_strategy_manager.wallet"; account: "manualStrategyManager"; } ]; }; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "poolUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "tokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "tokenProgram"; } ]; args: [ { name: "amount"; type: "u64"; } ]; }, { name: "processRedemptionRequest"; docs: [ "Processes the redemption request at the beginning of the redemption queue.", "", "# Trigger Condition", "When the protocol is on, and the pool is either on or in the pre-closure status.", "", "# Access Control", "Only the pool owner and the Sentinel service account can call this instruction." ]; discriminator: [211, 90, 36, 251, 91, 185, 216, 35]; accounts: [ { name: "signer"; signer: true; }, { name: "lender"; docs: ["`has_one` constraint."]; relations: ["redemptionRequest"]; }, { name: "payer"; docs: [ "The recipient of the `RedemptionRequest` account rent-exempt fee refunds after closure.", "`has_one` constraint." ]; writable: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "modeConfig"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "mode_config.id"; account: "modeConfig"; } ]; }; relations: ["redemptionRequest"]; }, { name: "modeMint"; writable: true; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 109, 105, 110, 116]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "modeConfig"; } ]; }; }, { name: "redemptionRequest"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 114, 101, 100, 101, 109, 112, 116, 105, 111, 110, 95, 114, 101, 113, 117, 101, 115, 116 ]; }, { kind: "account"; path: "redemption_request.id"; account: "redemptionRequest"; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "lenderState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 108, 101, 110, 100, 101, 114, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "modeConfig"; }, { kind: "account"; path: "lender"; } ]; }; }, { name: "strategyManagerWallet"; docs: [ "Strategy managers wallets are allowed to process redemption requests. If the signer", "is a strategy manager wallet this account needs to be passed in for validation. Otherwise,", "the account can be left as `None`." ]; optional: true; pda: { seeds: [ { kind: "const"; value: [ 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114, 95, 119, 97, 108, 108, 101, 116 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "strategy_manager_wallet.wallet"; account: "strategyManagerWallet"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "poolUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "underlyingTokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "lenderUnderlyingToken"; docs: [ "The account is optional to prevent an attack where a lender closes their underlying token", "account and consequently blocks the redemption request from being processed." ]; writable: true; optional: true; }, { name: "poolModeToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "modeTokenProgram"; }, { kind: "account"; path: "modeMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "underlyingTokenProgram"; }, { name: "modeTokenProgram"; } ]; args: []; }, { name: "proposeManualStrategyManager"; docs: [ "Proposes a new manual strategy manager for the pool.", "", "# Trigger Condition", "Only when the protocol and pool are both on.", "", "# Arguments", "* `wallet` - The proposed wallet address.", "", "# Access Control", "Only the pool owner can call this instruction. The proposal must be approved", "by the Huma owner via `approve_manual_strategy_manager`." ]; discriminator: [124, 74, 236, 183, 200, 93, 107, 181]; accounts: [ { name: "poolOwner"; writable: true; signer: true; relations: ["poolConfig"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "proposal"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 109, 97, 110, 117, 97, 108, 95, 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114, 95, 112, 114, 111, 112, 111, 115, 97, 108 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "arg"; path: "wallet"; } ]; }; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: [ { name: "wallet"; type: "pubkey"; } ]; }, { name: "recoverLoss"; docs: [ "Recovers declared losses by transferring assets from the loss authority to the pool.", "The transferred amount is applied to mode losses proportionally. When the recovery applies to", "losses on liquid assets, the strategy manager must also update `liquid_assets_deployed` accordingly.", "", "# Trigger Condition", "When the protocol is on and the pool is not closed.", "", "# Arguments", "* `amount` - The amount to transfer from the loss authority to the pool for loss recovery.", "", "# Access Control", "Only the loss authority can call this instruction." ]; discriminator: [32, 238, 42, 34, 64, 3, 58, 231]; accounts: [ { name: "lossAuthority"; signer: true; relations: ["poolConfig"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "lossAuthorityUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "lossAuthority"; }, { kind: "account"; path: "tokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "poolUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "tokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "tokenProgram"; } ]; args: [ { name: "amount"; type: "u64"; } ]; }, { name: "refreshModeAssets"; docs: [ "Refreshes the assets in a single mode to bring it up to date.", "", "# Trigger Condition", "When the protocol is on and the pool is not closed. When the pool is in pre-closure,", "this instruction is a no-op.", "", "# Access Control", "Anyone can call this instruction." ]; discriminator: [190, 133, 209, 144, 221, 100, 126, 205]; accounts: [ { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "modeConfig"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "mode_config.id"; account: "modeConfig"; } ]; }; } ]; args: []; }, { name: "refreshPoolAssets"; docs: [ "Refreshes the assets in all modes to bring them up to date.", "", "# Trigger Condition", "When the protocol is on and the pool is not closed. When the pool is in pre-closure,", "this instruction is a no-op.", "", "# Access Control", "Anyone can call this instruction." ]; discriminator: [179, 220, 112, 1, 214, 103, 3, 230]; accounts: [ { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; } ]; args: []; }, { name: "removeAsyncDeploymentTarget"; docs: [ "Removes an async deployment target.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [38, 131, 78, 127, 222, 252, 222, 246]; accounts: [ { name: "signer"; writable: true; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "asyncDeploymentConfig"; writable: true; }, { name: "asyncDeploymentState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 97, 115, 121, 110, 99, 95, 100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "asyncDeploymentConfig"; } ]; }; } ]; args: []; }, { name: "removeDeploymentTarget"; docs: [ "Removes a deployment target for the given strategy type.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [82, 103, 198, 215, 110, 147, 220, 41]; accounts: [ { name: "signer"; writable: true; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "deploymentConfig"; writable: true; }, { name: "deploymentState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "deploymentConfig"; } ]; }; } ]; args: []; }, { name: "removeInstantWithdrawalLender"; docs: [ "Removes an instant withdrawal lender from the pool.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `lender` - The address of the instant withdrawal lender.", "", "# Access Control", "Only the pool owner can call this instruction." ]; discriminator: [138, 101, 118, 74, 113, 190, 76, 214]; accounts: [ { name: "signer"; writable: true; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "instantWithdrawalLenderConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 105, 110, 115, 116, 97, 110, 116, 95, 119, 105, 116, 104, 100, 114, 97, 119, 97, 108, 95, 108, 101, 110, 100, 101, 114 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "arg"; path: "lender"; } ]; }; } ]; args: [ { name: "lender"; type: "pubkey"; } ]; }, { name: "removeManualStrategyManager"; docs: [ "Removes a manual strategy manager from the pool.", "", "# Trigger Condition", "Only when the protocol and pool are both on.", "", "# Access Control", "Only the pool owner can call this instruction." ]; discriminator: [132, 184, 107, 166, 164, 53, 188, 0]; accounts: [ { name: "poolOwner"; writable: true; signer: true; relations: ["poolConfig"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "manualStrategyManager"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 109, 97, 110, 117, 97, 108, 95, 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "manual_strategy_manager.wallet"; account: "manualStrategyManager"; } ]; }; } ]; args: []; }, { name: "removeMode"; docs: [ "Removes a mode from the pool. Please note that this instruction applies solely to the", "reversal of unintentional mode additions. Consequently, the following conditions must", "be met for the removal to go through:", "1. No mode token has been minted.", "2. The mode state must be empty.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `mode_id` - The ID of the mode to remove.", "", "# Access Control", "Only the pool owner can call this instruction." ]; discriminator: [36, 197, 69, 56, 254, 146, 192, 62]; accounts: [ { name: "poolOwner"; writable: true; signer: true; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "modeConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "arg"; path: "modeId"; } ]; }; }, { name: "modeMint"; writable: true; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 109, 105, 110, 116]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "modeConfig"; } ]; }; }, { name: "poolModeToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "tokenProgram"; }, { kind: "account"; path: "modeMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "tokenProgram"; } ]; args: [ { name: "modeId"; type: "pubkey"; } ]; }, { name: "removePoolOperator"; docs: [ "Adds an operator from the pool.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `operator` - The address of the pool operator.", "", "# Access Control", "Only the pool owner can call this instruction." ]; discriminator: [70, 188, 152, 173, 117, 213, 144, 195]; accounts: [ { name: "signer"; writable: true; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "poolOperatorConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 111, 112, 101, 114, 97, 116, 111, 114 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "arg"; path: "operator"; } ]; }; } ]; args: [ { name: "operator"; type: "pubkey"; } ]; }, { name: "removeStrategyManagerWallet"; docs: [ "Removes a wallet for the strategy manager from the pool.", "", "# Trigger Condition", "Only when the protocol and pool are both on.", "", "# Access Control", "Only the pool owner can call this instruction." ]; discriminator: [66, 249, 21, 34, 38, 197, 167, 96]; accounts: [ { name: "poolOwner"; writable: true; signer: true; relations: ["poolConfig"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "strategyManagerWallet"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114, 95, 119, 97, 108, 108, 101, 116 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "strategy_manager_wallet.wallet"; account: "strategyManagerWallet"; } ]; }; } ]; args: []; }, { name: "resizePoolConfig"; docs: [ "Resizes the pool config account.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [153, 11, 252, 79, 252, 49, 161, 246]; accounts: [ { name: "signer"; writable: true; signer: true; }, { name: "humaConfig"; }, { name: "poolConfig"; writable: true; }, { name: "systemProgram"; address: "11111111111111111111111111111111"; } ]; args: []; }, { name: "setHumaConfig"; docs: [ "Points the pool at a different `HumaConfig` account. Used only in the rare event", "that the Huma protocol is redeployed with a new `HumaConfig`.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Access Control", "Only the current Huma owner can call this instruction. Pool owner cannot, since", "swapping the `HumaConfig` changes which Huma owner governs the pool." ]; discriminator: [183, 30, 191, 113, 7, 254, 204, 0]; accounts: [ { name: "signer"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "newHumaConfig"; }, { name: "poolConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; } ]; args: []; }, { name: "setInstantWithdrawalFeeConfigs"; docs: [ "Sets the instant withdrawal fee configurations.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `fee_configs` - The fee configurations. Each config specifies a liquid asset ratio", "threshold and fee in basis points. There can be at most `MAX_INSTANT_WITHDRAWAL_FEE_CONFIGS`", "configs.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [86, 166, 57, 79, 173, 3, 153, 63]; accounts: [ { name: "signer"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; } ]; args: [ { name: "feeConfigs"; type: { vec: { defined: { name: "instantWithdrawalFeeConfigInput"; }; }; }; } ]; }, { name: "setInstantWithdrawalLiquiditySource"; docs: [ "Sets the deployment target from which liquidity will be pulled when the pool's available", "balance is insufficient to satisfy an instant withdrawal.", "", "# Trigger Condition", "When the protocol is on.", "", "# Access Control", "Only strategy manager wallets can call this instruction." ]; discriminator: [104, 139, 161, 239, 40, 211, 26, 252]; accounts: [ { name: "wallet"; signer: true; relations: ["strategyManagerWallet"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "strategyManagerWallet"; pda: { seeds: [ { kind: "const"; value: [ 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114, 95, 119, 97, 108, 108, 101, 116 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "strategy_manager_wallet.wallet"; account: "strategyManagerWallet"; } ]; }; }, { name: "deploymentConfig"; } ]; args: []; }, { name: "setInstantWithdrawalReserveLimit"; docs: [ "Sets the instant withdrawal reserve limit.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `new_reserve_limit` - The new instant withdrawal reserve limit.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [119, 215, 114, 208, 241, 241, 178, 138]; accounts: [ { name: "signer"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; } ]; args: [ { name: "newReserveLimit"; type: "u64"; } ]; }, { name: "setLiquidAssetsDeployed"; docs: [ "Sets the amount of liquid assets, used for instant withdrawal fee tier selection.", "", "# Trigger Condition", "When the protocol is on and the pool is not closed.", "", "# Arguments", "* `liquid_assets_deployed` - The liquid assets deployed amount in underlying token units.", "", "# Access Control", "Only strategy manager wallets can call this instruction." ]; discriminator: [187, 170, 45, 216, 14, 41, 151, 64]; accounts: [ { name: "wallet"; signer: true; relations: ["strategyManagerWallet"]; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "strategyManagerWallet"; pda: { seeds: [ { kind: "const"; value: [ 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114, 95, 119, 97, 108, 108, 101, 116 ]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "strategy_manager_wallet.wallet"; account: "strategyManagerWallet"; } ]; }; } ]; args: [ { name: "liquidAssetsDeployed"; type: "u64"; } ]; }, { name: "setLossAuthority"; docs: [ "Sets the loss authority address.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `new_loss_authority` - The address of the new loss authority.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [73, 183, 94, 224, 117, 161, 23, 52]; accounts: [ { name: "signer"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; } ]; args: [ { name: "newLossAuthority"; type: "pubkey"; } ]; }, { name: "setLpConfig"; docs: [ "Sets Liquidity Provider configurations.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `configs` - The new configurations.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [243, 188, 179, 176, 217, 83, 174, 65]; accounts: [ { name: "signer"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; } ]; args: [ { name: "configs"; type: { defined: { name: "lpConfig"; }; }; } ]; }, { name: "setManualDeploymentLimits"; docs: [ "Sets the limits for manual deployment of liquidity.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `daily_limit` - The maximum cumulative amount that can be deployed manually in a rolling 24-hour window.", "* `per_wallet_limit` - The maximum net amount (deployed minus paid back) that can be outstanding for a single wallet.", "", "# Access Control", "Only the pool owner or the Huma owner can call this instruction." ]; discriminator: [252, 59, 255, 197, 220, 82, 142, 20]; accounts: [ { name: "signer"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; } ]; args: [ { name: "dailyLimit"; type: "u64"; }, { name: "perWalletLimit"; type: "u64"; } ]; }, { name: "setPoolOwnerTreasury"; docs: [ "Sets the pool owner treasury.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `new_treasury` - The address of the new pool owner treasury.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [95, 26, 200, 33, 36, 107, 65, 219]; accounts: [ { name: "signer"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; } ]; args: [ { name: "newTreasury"; type: "pubkey"; } ]; }, { name: "switchMode"; docs: [ "Switches a lender's investment from one mode to another.", "", "# Trigger Condition", "Only when both the protocol and pool are on.", "", "# Arguments", "* `shares` - The number of shares the lender wants to switch.", "* `investment_id` - The ID of the investment.", "", "# Dev Notes", "`investment_id` is not used by the program. It's a pass-through argument used by other", "systems in the Huma protocol to detect deposit commitment violations.", "", "# Access Control", "Only lenders can call this instruction." ]; discriminator: [69, 115, 235, 74, 208, 155, 108, 62]; accounts: [ { name: "lender"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "sourceModeConfig"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "source_mode_config.id"; account: "modeConfig"; } ]; }; }, { name: "sourceModeMint"; writable: true; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 109, 105, 110, 116]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "sourceModeConfig"; } ]; }; }, { name: "sourceModeToken"; writable: true; }, { name: "destinationModeConfig"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "destination_mode_config.id"; account: "modeConfig"; } ]; }; }, { name: "destinationModeMint"; writable: true; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 109, 105, 110, 116]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "destinationModeConfig"; } ]; }; }, { name: "destinationModeToken"; writable: true; }, { name: "sourceModeTokenProgram"; }, { name: "destinationModeTokenProgram"; } ]; args: [ { name: "shares"; type: "u64"; }, { name: "investmentId"; type: "string"; } ]; }, { name: "updateModeApy"; docs: [ "Updates mode APY. Both the target and periodic APYs will be updated.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `new_target_apy_bps` - The target annual percentage yield (APY) for the underlying assets", "deposited, expressed in basis points.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [2, 35, 3, 169, 206, 20, 85, 86]; accounts: [ { name: "signer"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "modeConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "mode_config.id"; account: "modeConfig"; } ]; }; } ]; args: [ { name: "newTargetApyBps"; type: "u16"; } ]; }, { name: "updateModeName"; docs: [ "Updates mode name.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `new_name` - The new name of the mode.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [161, 162, 16, 147, 165, 200, 140, 12]; accounts: [ { name: "signer"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "modeConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "mode_config.id"; account: "modeConfig"; } ]; }; } ]; args: [ { name: "newName"; type: "string"; } ]; }, { name: "updateModeTokenMetadata"; docs: [ "Updates mode token metadata.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `args` - The parameters in the token metadata.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [146, 105, 133, 105, 200, 19, 3, 221]; accounts: [ { name: "signer"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "modeConfig"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "mode_config.id"; account: "modeConfig"; } ]; }; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "tokenMetadata"; writable: true; }, { name: "mplTokenMetadataProgram"; docs: ["The MPL Token Metadata program."]; address: "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"; } ]; args: [ { name: "args"; type: { defined: { name: "manageModeTokenMetadataArgs"; }; }; } ]; }, { name: "updatePoolName"; docs: [ "Updates pool name.", "", "# Trigger Condition", "When the pool is not closed.", "", "# Arguments", "* `new_name` - The new name of the pool.", "", "# Access Control", "Only the pool owner and the Huma owner can call this instruction." ]; discriminator: [134, 125, 13, 23, 145, 45, 49, 196]; accounts: [ { name: "signer"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; } ]; args: [ { name: "newName"; type: "string"; } ]; }, { name: "withdrawAfterPoolClosure"; docs: [ "Withdraws all the lender's assets after the pool has been permanently closed.", "", "# Trigger Condition", "Only when the protocol is on and the pool is closed.", "", "# Access Control", "Only lenders can call this instruction." ]; discriminator: [82, 21, 237, 73, 48, 153, 86, 168]; accounts: [ { name: "lender"; signer: true; }, { name: "humaConfig"; relations: ["poolConfig"]; }, { name: "poolConfig"; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "pool_config.pool_id"; account: "poolConfig"; } ]; }; }, { name: "poolState"; writable: true; pda: { seeds: [ { kind: "const"; value: [112, 111, 111, 108, 95, 115, 116, 97, 116, 101]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "modeConfig"; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "mode_config.id"; account: "modeConfig"; } ]; }; }, { name: "modeMint"; writable: true; pda: { seeds: [ { kind: "const"; value: [109, 111, 100, 101, 95, 109, 105, 110, 116]; }, { kind: "account"; path: "poolConfig"; }, { kind: "account"; path: "modeConfig"; } ]; }; }, { name: "lenderState"; writable: true; pda: { seeds: [ { kind: "const"; value: [ 108, 101, 110, 100, 101, 114, 95, 115, 116, 97, 116, 101 ]; }, { kind: "account"; path: "modeConfig"; }, { kind: "account"; path: "lender"; } ]; }; }, { name: "underlyingMint"; relations: ["poolConfig"]; }, { name: "poolAuthority"; pda: { seeds: [ { kind: "const"; value: [ 112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; }, { kind: "account"; path: "poolConfig"; } ]; }; }, { name: "poolUnderlyingToken"; writable: true; pda: { seeds: [ { kind: "account"; path: "poolAuthority"; }, { kind: "account"; path: "underlyingTokenProgram"; }, { kind: "account"; path: "underlyingMint"; } ]; program: { kind: "const"; value: [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ]; }; }; }, { name: "lenderUnderlyingToken"; writable: true; }, { name: "lenderModeToken"; writable: true; }, { name: "underlyingTokenProgram"; }, { name: "modeTokenProgram"; } ]; args: []; } ]; accounts: [ { name: "asyncDeploymentConfig"; discriminator: [79, 203, 41, 22, 215, 191, 148, 37]; }, { name: "asyncDeploymentState"; discriminator: [208, 11, 72, 206, 27, 76, 193, 231]; }, { name: "deploymentConfig"; discriminator: [13, 112, 57, 81, 43, 26, 156, 18]; }, { name: "deploymentState"; discriminator: [212, 136, 79, 121, 16, 38, 112, 116]; }, { name: "instantWithdrawalLender"; discriminator: [12, 99, 0, 7, 73, 193, 37, 217]; }, { name: "lenderState"; discriminator: [240, 118, 235, 226, 18, 3, 58, 25]; }, { name: "manualStrategyManager"; discriminator: [64, 224, 248, 213, 255, 189, 28, 193]; }, { name: "manualStrategyManagerProposal"; discriminator: [1, 133, 162, 3, 159, 227, 96, 239]; }, { name: "modeConfig"; discriminator: [249, 180, 144, 225, 126, 159, 202, 209]; }, { name: "poolConfig"; discriminator: [26, 108, 14, 123, 116, 230, 129, 43]; }, { name: "poolOperator"; discriminator: [86, 93, 81, 162, 133, 189, 80, 191]; }, { name: "poolState"; discriminator: [247, 237, 227, 245, 215, 195, 222, 70]; }, { name: "redemptionRequest"; discriminator: [117, 157, 214, 214, 64, 160, 31, 58]; }, { name: "strategyManagerWallet"; discriminator: [7, 113, 185, 42, 183, 171, 232, 77]; } ]; events: [ { name: "asyncDeploymentTargetAddedEvent"; discriminator: [59, 142, 197, 242, 75, 20, 45, 51]; }, { name: "asyncDeploymentTargetRemovedEvent"; discriminator: [194, 27, 9, 134, 2, 75, 135, 239]; }, { name: "deploymentTargetAddedEvent"; discriminator: [143, 102, 222, 71, 122, 6, 252, 209]; }, { name: "deploymentTargetRemovedEvent"; discriminator: [21, 180, 221, 164, 151, 158, 213, 33]; }, { name: "fullyCanceledRedemptionRequestSkippedEvent"; discriminator: [182, 222, 115, 2, 28, 250, 2, 128]; }, { name: "humaConfigChangedEvent"; discriminator: [160, 214, 104, 167, 105, 118, 72, 49]; }, { name: "instantWithdrawalFeeConfigsChangedEvent"; discriminator: [220, 60, 248, 228, 244, 222, 175, 55]; }, { name: "instantWithdrawalLenderAddedEvent"; discriminator: [247, 184, 251, 18, 253, 27, 127, 244]; }, { name: "instantWithdrawalLenderRemovedEvent"; discriminator: [228, 255, 164, 26, 160, 125, 77, 227]; }, { name: "instantWithdrawalLiquiditySourceClearedEvent"; discriminator: [244, 93, 188, 227, 190, 128, 85, 101]; }, { name: "instantWithdrawalLiquiditySourceSetEvent"; discriminator: [188, 167, 59, 236, 129, 19, 186, 11]; }, { name: "instantWithdrawalReserveLimitChangedEvent"; discriminator: [163, 77, 62, 14, 42, 11, 32, 215]; }, { name: "lpConfigChangedEvent"; discriminator: [241, 93, 140, 107, 238, 126, 168, 245]; }, { name: "lenderAccountsClosedEvent"; discriminator: [114, 190, 186, 18, 188, 195, 238, 186]; }, { name: "lenderAccountsCreatedEventV2"; discriminator: [39, 223, 41, 109, 60, 101, 244, 228]; }, { name: "lenderFundDisbursedEvent"; discriminator: [185, 20, 203, 170, 122, 78, 231, 106]; }, { name: "lenderFundWithdrawnEvent"; discriminator: [189, 37, 124, 152, 255, 154, 13, 202]; }, { name: "lenderFundsInstantlyWithdrawnEvent"; discriminator: [70, 238, 186, 163, 134, 200, 240, 180]; }, { name: "liquidAssetsDeployedSetEvent"; discriminator: [218, 95, 125, 29, 243, 14, 109, 78]; }, { name: "liquidityDeployedAsyncEvent"; discriminator: [180, 205, 84, 115, 109, 7, 212, 232]; }, { name: "liquidityDeployedEvent"; discriminator: [46, 23, 218, 176, 233, 96, 239, 70]; }, { name: "liquidityDeployedManuallyEvent"; discriminator: [42, 190, 47, 33, 92, 171, 96, 19]; }, { name: "liquidityDepositedEvent"; discriminator: [90, 3, 240, 128, 109, 154, 131, 185]; }, { name: "liquidityPaidBackEvent"; discriminator: [50, 105, 163, 223, 164, 6, 91, 32]; }, { name: "liquidityPaidBackManuallyEvent"; discriminator: [120, 107, 26, 135, 151, 15, 56, 198]; }, { name: "liquidityPaybackCompletedAsyncEvent"; discriminator: [50, 150, 252, 234, 89, 51, 153, 196]; }, { name: "liquidityPaybackInitiatedAsyncEvent"; discriminator: [240, 26, 247, 116, 21, 215, 151, 108]; }, { name: "lossAuthorityChangedEvent"; discriminator: [11, 130, 65, 235, 139, 77, 184, 174]; }, { name: "lossDeclaredEvent"; discriminator: [159, 235, 30, 240, 118, 234, 120, 83]; }, { name: "lossRecoveredEvent"; discriminator: [202, 156, 189, 173, 187, 83, 132, 72]; }, { name: "manualDeploymentLimitChangedEvent"; discriminator: [113, 135, 172, 26, 117, 114, 39, 55]; }, { name: "manualStrategyManagerApprovedEvent"; discriminator: [193, 20, 223, 219, 21, 118, 147, 138]; }, { name: "manualStrategyManagerProposalCancelledEvent"; discriminator: [249, 227, 137, 178, 221, 236, 77, 178]; }, { name: "manualStrategyManagerProposedEvent"; discriminator: [198, 76, 196, 12, 129, 198, 81, 127]; }, { name: "manualStrategyManagerRemovedEvent"; discriminator: [152, 253, 2, 54, 230, 192, 199, 249]; }, { name: "modeApyChangedEvent"; discriminator: [32, 227, 98, 156, 108, 3, 184, 44]; }, { name: "modeAddedEvent"; discriminator: [74, 37, 33, 192, 210, 247, 243, 8]; }, { name: "modeAssetsRefreshedEvent"; discriminator: [210, 11, 22, 20, 35, 19, 80, 74]; }, { name: "modeNameChangedEvent"; discriminator: [143, 246, 221, 130, 98, 175, 204, 53]; }, { name: "modeRemovedEvent"; discriminator: [32, 53, 184, 81, 110, 129, 249, 144]; }, { name: "modeSwitchedEvent"; discriminator: [180, 176, 130, 85, 150, 49, 56, 187]; }, { name: "modeTokenMetadataUpdatedEvent"; discriminator: [138, 111, 218, 240, 143, 17, 130, 238]; }, { name: "poolClosedEvent"; discriminator: [76, 55, 28, 161, 130, 142, 226, 133]; }, { name: "poolConfigResizedEvent"; discriminator: [178, 73, 242, 165, 47, 170, 191, 185]; }, { name: "poolCreatedEvent"; discriminator: [25, 94, 75, 47, 112, 99, 53, 63]; }, { name: "poolDisabledEvent"; discriminator: [253, 229, 56, 71, 40, 225, 125, 122]; }, { name: "poolEnabledEvent"; discriminator: [169, 245, 50, 35, 124, 58, 231, 48]; }, { name: "poolEnteredPreClosureEvent"; discriminator: [158, 111, 26, 100, 200, 42, 252, 70]; }, { name: "poolNameChangedEvent"; discriminator: [197, 42, 231, 168, 23, 125, 82, 96]; }, { name: "poolOperatorAddedEvent"; discriminator: [45, 70, 168, 122, 180, 30, 11, 196]; }, { name: "poolOperatorRemovedEvent"; discriminator: [171, 56, 197, 75, 3, 90, 107, 205]; }, { name: "poolOwnerChangedEvent"; discriminator: [34, 125, 255, 170, 143, 47, 140, 169]; }, { name: "poolOwnerTreasuryChangedEvent"; discriminator: [140, 110, 16, 105, 86, 252, 169, 49]; }, { name: "privilegedInstantWithdrawalEvent"; discriminator: [22, 138, 222, 135, 112, 247, 135, 142]; }, { name: "redeemedFundsPaidOutEvent"; discriminator: [3, 68, 39, 81, 188, 59, 247, 177]; }, { name: "redeemedFundsReservedEvent"; discriminator: [141, 45, 128, 85, 166, 158, 191, 48]; }, { name: "redemptionRequestAddedEventV2"; discriminator: [115, 90, 91, 247, 160, 36, 53, 238]; }, { name: "redemptionRequestCanceledEvent"; discriminator: [200, 205, 28, 174, 176, 233, 95, 13]; }, { name: "redemptionRequestProcessedEvent"; discriminator: [165, 153, 161, 205, 132, 243, 207, 156]; }, { name: "strategyManagerWalletAddedEvent"; discriminator: [159, 1, 96, 54, 37, 222, 191, 22]; }, { name: "strategyManagerWalletRemovedEvent"; discriminator: [81, 71, 145, 25, 9, 72, 114, 212]; } ]; errors: [ { code: 6001; name: "zeroAmountProvided"; }, { code: 6002; name: "zeroSharesMinted"; }, { code: 6003; name: "invalidNumberOfRemainingAccounts"; }, { code: 6004; name: "invalidStrategyProgram"; }, { code: 6005; name: "targetAccountMismatch"; }, { code: 6006; name: "invalidBasisPointHigherThan10000"; }, { code: 6007; name: "requiredAccountsNotProvided"; }, { code: 6101; name: "poolOwnerRequired"; }, { code: 6102; name: "poolOwnerOrHumaOwnerRequired"; }, { code: 6103; name: "poolOwnerTreasuryRequired"; }, { code: 6104; name: "poolOwnerOrSentinelRequired"; }, { code: 6105; name: "poolOperatorRequired"; }, { code: 6106; name: "redemptionRequestProcessorRequired"; }, { code: 6107; name: "instantWithdrawalLenderRequired"; }, { code: 6108; name: "lossAuthorityRequired"; }, { code: 6109; name: "humaOwnerRequired"; }, { code: 6201; name: "invalidHumaConfig"; }, { code: 6202; name: "invalidLiquidityAsset"; }, { code: 6203; name: "invalidUnderlyingMint"; }, { code: 6204; name: "protocolIsPaused"; }, { code: 6301; name: "poolIsNotOn"; }, { code: 6302; name: "poolIsNotOnOrInPreClosure"; }, { code: 6303; name: "poolIsNotInPreClosure"; }, { code: 6304; name: "poolIsNotClosed"; }, { code: 6305; name: "poolIsClosed"; }, { code: 6306; name: "poolNameTooLong"; }, { code: 6307; name: "modeNameTooLong"; }, { code: 6308; name: "tooManyModes"; }, { code: 6309; name: "tooFewModes"; }, { code: 6310; name: "duplicateModes"; }, { code: 6311; name: "minDepositAmountTooLow"; }, { code: 6312; name: "minRedemptionSharesTooLow"; }, { code: 6313; name: "lenderMismatch"; }, { code: 6314; name: "redemptionRequestOutOfOrder"; }, { code: 6315; name: "insufficientBalanceForRedemptionProcessing"; }, { code: 6316; name: "totalRedemptionLimitExceeded"; }, { code: 6317; name: "insufficientSharesForRequest"; }, { code: 6318; name: "differentModesRequired"; }, { code: 6319; name: "unprocessedRedemptionRequests"; }, { code: 6320; name: "insufficientBalanceForWithdrawal"; }, { code: 6321; name: "insufficientAssetsForPoolActivation"; }, { code: 6322; name: "payerMismatch"; }, { code: 6323; name: "invalidPoolConfigData"; }, { code: 6324; name: "totalRedemptionLimitBelowInstantWithdrawalLimit"; }, { code: 6325; name: "tooFewInstantWithdrawalFeeConfigs"; }, { code: 6326; name: "tooManyInstantWithdrawalFeeConfigs"; }, { code: 6327; name: "invalidInstantWithdrawalFeeConfigOutOfOrder"; }, { code: 6328; name: "lastFeeConfigRatioMustBe100Pct"; }, { code: 6329; name: "instantWithdrawalFeeTooHigh"; }, { code: 6330; name: "instantWithdrawalDisabled"; }, { code: 6331; name: "noInstantWithdrawalFeeConfigForRatio"; }, { code: 6332; name: "liquidAssetsDeployedTooHigh"; }, { code: 6333; name: "redemptionRequestModeMismatch"; }, { code: 6334; name: "instantWithdrawalLiquiditySourceMismatch"; }, { code: 6335; name: "invalidPoolConfig"; }, { code: 6401; name: "invalidModeConfig"; }, { code: 6402; name: "depositAmountTooLow"; }, { code: 6403; name: "liquidityCapExceeded"; }, { code: 6404; name: "insufficientModeSupply"; }, { code: 6405; name: "redemptionSharesTooLow"; }, { code: 6406; name: "modeAssetsStale"; }, { code: 6407; name: "modeTokenNotReadyToClose"; }, { code: 6408; name: "lenderStateNotReadyToClose"; }, { code: 6409; name: "modeMintNotReadyToClose"; }, { code: 6410; name: "modeStateNotReadyToClose"; }, { code: 6411; name: "tokenMetadataMintMismatch"; }, { code: 6412; name: "zeroAssetsSwitched"; }, { code: 6501; name: "strategyManagerWalletMismatch"; }, { code: 6502; name: "insufficientBalanceForDeployment"; }, { code: 6503; name: "declaredLossTooHigh"; }, { code: 6504; name: "noLossToRecover"; }, { code: 6505; name: "tokenAccountOwnerMismatch"; }, { code: 6506; name: "manualStrategyNotAllowedAsLiquiditySource"; }, { code: 6507; name: "deploymentTargetIsActiveLiquiditySource"; }, { code: 6508; name: "strategyWithdrawalAmountMismatch"; }, { code: 6509; name: "manualDeploymentDailyLimitExceeded"; }, { code: 6510; name: "manualDeploymentPerWalletLimitExceeded"; }, { code: 6511; name: "manualStrategyNotAllowed"; }, { code: 6512; name: "manualStrategyManagerProposalExpired"; } ]; types: [ { name: "asyncDeploymentConfig"; type: { kind: "struct"; fields: [ { name: "bump"; type: "u8"; }, { name: "strategyType"; type: { defined: { name: "asyncDeploymentStrategyType"; }; }; }, { name: "targetKey"; type: "pubkey"; }, { name: "reserved"; type: { array: ["u8", 160]; }; } ]; }; }, { name: "asyncDeploymentState"; type: { kind: "struct"; fields: [ { name: "bump"; type: "u8"; }, { name: "cumulativeAmountDeployed"; type: "u128"; }, { name: "cumulativeAmountPaidBack"; type: "u128"; }, { name: "reserved"; type: { array: ["u8", 160]; }; } ]; }; }, { name: "asyncDeploymentStrategyType"; type: { kind: "enum"; variants: [ { name: "humaInstitutional"; } ]; }; }, { name: "asyncDeploymentTargetAddedEvent"; docs: [ "An async deployment target has been added.", "", "# Fields", "* `pool_id` - The pool ID.", "* `strategy_type` - The async strategy type that was added.", "* `target_key` - The target account key for the strategy." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "strategyType"; type: { defined: { name: "asyncDeploymentStrategyType"; }; }; }, { name: "targetKey"; type: "pubkey"; } ]; }; }, { name: "asyncDeploymentTargetRemovedEvent"; docs: [ "An async deployment target has been removed.", "", "# Fields", "* `pool_id` - The pool ID.", "* `strategy_type` - The async strategy type that was removed.", "* `target_key` - The target account key for the strategy." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "strategyType"; type: { defined: { name: "asyncDeploymentStrategyType"; }; }; }, { name: "targetKey"; type: "pubkey"; } ]; }; }, { name: "deploymentConfig"; type: { kind: "struct"; fields: [ { name: "bump"; type: "u8"; }, { name: "strategyType"; type: { defined: { name: "deploymentStrategyType"; }; }; }, { name: "targetKey"; type: "pubkey"; }, { name: "reserved"; type: { array: ["u8", 160]; }; } ]; }; }, { name: "deploymentState"; type: { kind: "struct"; fields: [ { name: "bump"; type: "u8"; }, { name: "cumulativeAmountDeployed"; type: "u128"; }, { name: "cumulativeAmountPaidBack"; type: "u128"; }, { name: "reserved"; type: { array: ["u8", 160]; }; } ]; }; }, { name: "deploymentStrategyType"; type: { kind: "enum"; variants: [ { name: "manual"; }, { name: "jupLend"; }, { name: "kaminoLend"; } ]; }; }, { name: "deploymentTargetAddedEvent"; docs: [ "A deployment target has been added.", "", "# Fields", "* `pool_id` - The pool ID.", "* `strategy_type` - The strategy type that was added.", "* `target_key` - The target account key for the strategy." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "strategyType"; type: { defined: { name: "deploymentStrategyType"; }; }; }, { name: "targetKey"; type: "pubkey"; } ]; }; }, { name: "deploymentTargetRemovedEvent"; docs: [ "A deployment target has been removed.", "", "# Fields", "* `pool_id` - The pool ID.", "* `strategy_type` - The strategy type that was removed.", "* `target_key` - The target account key for the strategy." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "strategyType"; type: { defined: { name: "deploymentStrategyType"; }; }; }, { name: "targetKey"; type: "pubkey"; } ]; }; }, { name: "fullyCanceledRedemptionRequestSkippedEvent"; docs: [ "A redemption request that has been fully canceled previously has been skipped.", "", "# Fields", "* `request_id` - The ID of the redemption request.", "* `lender` - The lender who submitted the request." ]; type: { kind: "struct"; fields: [ { name: "requestId"; type: "u128"; }, { name: "lender"; type: "pubkey"; } ]; }; }, { name: "humaConfigChangedEvent"; docs: [ "The Huma config associated with the pool has been changed.", "", "# Fields", "* `pool_id` - The pool ID.", "* `old_huma_config` - The address of the old Huma config.", "* `new_huma_config` - The address of the new Huma config." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "oldHumaConfig"; type: "pubkey"; }, { name: "newHumaConfig"; type: "pubkey"; } ]; }; }, { name: "instantWithdrawalConfig"; docs: [ "Instant withdrawal configurations.", "", "# Fields", "* `instant_withdrawal_reserve_limit` - The maximum amount of assets that can be withdrawn instantly.", "* `instant_withdrawal_fee_configs` - The fee configurations for instant withdrawal.", "* `liquidity_source` - The `DeploymentConfig` account key identifying the deployment target", "from which liquidity will be pulled if the pool's available balance is insufficient to", "satisfy an instant withdrawal." ]; type: { kind: "struct"; fields: [ { name: "instantWithdrawalReserveLimit"; type: "u64"; }, { name: "instantWithdrawalFeeConfigs"; type: { vec: { defined: { name: "instantWithdrawalFeeConfig"; }; }; }; }, { name: "liquiditySource"; type: { option: "pubkey"; }; }, { name: "reserved"; type: { array: ["u8", 127]; }; } ]; }; }, { name: "instantWithdrawalFeeConfig"; docs: [ "Instant withdrawal fee configuration (on-chain storage).", "", "# Fields", "* `liquid_asset_ratio_lt_bps` - The liquid asset ratio below which the fee is applied.", "* `fee_bps` - The fee in basis points." ]; type: { kind: "struct"; fields: [ { name: "liquidAssetRatioLtBps"; type: "u16"; }, { name: "feeBps"; type: "u16"; }, { name: "reserved"; type: { array: ["u8", 160]; }; } ]; }; }, { name: "instantWithdrawalFeeConfigInput"; docs: [ "Instant withdrawal fee configuration (instruction input, no reserved padding)." ]; type: { kind: "struct"; fields: [ { name: "liquidAssetRatioLtBps"; type: "u16"; }, { name: "feeBps"; type: "u16"; } ]; }; }, { name: "instantWithdrawalFeeConfigsChangedEvent"; docs: [ "The instant withdrawal fee configs have been updated.", "", "# Fields", "* `pool_id` - The pool ID.", "* `fee_configs` - The new fee configurations." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "feeConfigs"; type: { vec: { defined: { name: "instantWithdrawalFeeConfigInput"; }; }; }; } ]; }; }, { name: "instantWithdrawalLender"; type: { kind: "struct"; fields: [ { name: "bump"; type: "u8"; } ]; }; }, { name: "instantWithdrawalLenderAddedEvent"; docs: [ "A new instant withdrawal lender has been added.", "", "# Fields", "* `pool_id` - The pool ID.", "* `lender` - The address of the new instant withdrawal lender being added." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "lender"; type: "pubkey"; } ]; }; }, { name: "instantWithdrawalLenderRemovedEvent"; docs: [ "An instant withdrawal lender has been removed.", "", "# Fields", "* `pool_id` - The pool ID.", "* `lender` - The address of the instant withdrawal lender being removed." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "lender"; type: "pubkey"; } ]; }; }, { name: "instantWithdrawalLiquiditySourceClearedEvent"; docs: [ "The strategy manager has cleared the liquidity source for instant withdrawals.", "", "# Fields", "* `pool_id` - The pool ID.", "* `wallet` - The strategy manager wallet address.", "* `old_liquidity_source` - The previous `DeploymentConfig` key." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; }, { name: "oldLiquiditySource"; type: "pubkey"; } ]; }; }, { name: "instantWithdrawalLiquiditySourceSetEvent"; docs: [ "The strategy manager has set the liquidity source for instant withdrawals.", "", "# Fields", "* `pool_id` - The pool ID.", "* `wallet` - The strategy manager wallet address.", "* `old_liquidity_source` - The previous `DeploymentConfig` key.", "* `new_liquidity_source` - The new `DeploymentConfig` key." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; }, { name: "oldLiquiditySource"; type: { option: "pubkey"; }; }, { name: "newLiquiditySource"; type: "pubkey"; } ]; }; }, { name: "instantWithdrawalReserveLimitChangedEvent"; docs: [ "The instant withdrawal reserve has been updated.", "", "# Fields", "* `pool_id` - The pool ID.", "* `old_reserve_limit` - The old instant withdrawal reserve limit.", "* `new_reserve_limit` - The new instant withdrawal reserve limit." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "oldReserveLimit"; type: "u64"; }, { name: "newReserveLimit"; type: "u64"; } ]; }; }, { name: "lpConfig"; docs: [ "Lender related configurations.", "", "# Fields", "* `liquidity_cap` - The max liquidity allowed for the pool.", "* `min_deposit_amount` - The minimum amount a lender needs to supply each time they deposit.", "* `min_redemption_shares` - The minimum number of shares a lender has to request for redemption,", "unless their total number of shares is lower than this value.", "* `max_total_redemption_shares_per_window` - The maximum number of shares that can be requested", "for redemption across all lenders per time window. No more redemption requests can be", "submitted after this limit has been reached in a given window. If this value is set to 0, then", "redemption request submission is paused." ]; type: { kind: "struct"; fields: [ { name: "liquidityCap"; type: "u128"; }, { name: "minDepositAmount"; type: "u64"; }, { name: "minRedemptionShares"; type: "u64"; }, { name: "maxTotalRedemptionSharesPerWindow"; type: "u128"; }, { name: "maxInstantWithdrawalSharesPerWindow"; type: "u128"; }, { name: "padding"; type: { array: ["u8", 144]; }; } ]; }; }, { name: "lpConfigChangedEvent"; docs: [ "The LP config has been updated.", "", "# Fields", "* `pool_id` - The pool ID.", "* `lp_config` - The new LP config." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "lpConfig"; type: { defined: { name: "lpConfig"; }; }; } ]; }; }, { name: "lenderAccountsClosedEvent"; docs: [ "Lender accounts have been permanently closed.", "", "# Fields", "* `mode_config` - The mode mint key.", "* `payer` - The account that receives the rent-exempt fee refund.", "* `lender` - The lender who closed their accounts." ]; type: { kind: "struct"; fields: [ { name: "modeConfig"; type: "pubkey"; }, { name: "payer"; type: "pubkey"; }, { name: "lender"; type: "pubkey"; } ]; }; }, { name: "lenderAccountsCreatedEventV2"; docs: [ "Lender accounts have been created.", "", "# Fields", "* `mode_config` - The mode config key.", "* `payer` - The payer who created the lender accounts and paid for the account rent-exempt fees.", "* `lender` - The lender who created their accounts." ]; type: { kind: "struct"; fields: [ { name: "modeConfig"; type: "pubkey"; }, { name: "payer"; type: "pubkey"; }, { name: "lender"; type: "pubkey"; } ]; }; }, { name: "lenderFundDisbursedEvent"; docs: [ "A lender's funds from processed redemption requests have been disbursed.", "", "# Fields", "* `mode_config` - The mode config key.", "* `lender` - The lender whose funds have been disbursed.", "* `amount_disbursed` - The amount of the disbursement." ]; type: { kind: "struct"; fields: [ { name: "modeConfig"; type: "pubkey"; }, { name: "lender"; type: "pubkey"; }, { name: "amountDisbursed"; type: "u64"; } ]; }; }, { name: "lenderFundWithdrawnEvent"; docs: [ "A lender has withdrawn all their assets after pool closure.", "", "# Fields", "* `mode_config` - The mode config of the mode from which the lender has withdrawn.", "* `lender` - The lender who has withdrawn.", "* `shares` - The number of shares burned.", "* `assets` - The amount that was withdrawn." ]; type: { kind: "struct"; fields: [ { name: "modeConfig"; type: "pubkey"; }, { name: "lender"; type: "pubkey"; }, { name: "shares"; type: "u64"; }, { name: "assets"; type: "u64"; } ]; }; }, { name: "lenderFundsInstantlyWithdrawnEvent"; docs: [ "A lender has withdrawn their assets instantly.", "", "# Fields", "* `mode_config` - The mode config of the mode from which the withdrawal was made.", "* `lender` - The lender who withdrew their assets.", "* `shares` - The number of shares burned.", "* `assets` - The total amount of assets redeemed (before fee).", "* `fee` - The amount of fee in underlying assets sent to pool owner treasury.", "* `strategy_liquidity_withdrawn` - The amount of liquidity withdrawn from the strategy." ]; type: { kind: "struct"; fields: [ { name: "modeConfig"; type: "pubkey"; }, { name: "lender"; type: "pubkey"; }, { name: "shares"; type: "u64"; }, { name: "assets"; type: "u64"; }, { name: "fee"; type: "u64"; }, { name: "strategyLiquidityWithdrawn"; type: "u64"; } ]; }; }, { name: "lenderRedemptionRecord"; docs: [ "The information related to a lender's redemption.", "", "# Fields", "* `num_pending_redemption_requests` - The number of pending redemption requests. Note that this", "value is only decremented when the redemption request account is closed in `process_redemption_request`,", "not in `cancel_redemption_request`.", "* `total_amount_processed` - The total amount processed for redemption.", "* `total_amount_withdrawn` - The total amount withdrawn by the lender. The withdrawable amount", "= `total_amount_processed` - `total_amount_withdrawn`. Since we'll first try to transfer the", "processed funds directly to the lender, the withdrawable amount is usually 0. It's only", "non-zero if the transfer fails and the funds are kept in the disbursement reserve for the", "lender to claim later.", "* `shares_pending_redemption` - The number of shares pending redemption." ]; type: { kind: "struct"; fields: [ { name: "numPendingRedemptionRequests"; type: "u128"; }, { name: "totalAmountProcessed"; type: "u128"; }, { name: "totalAmountWithdrawn"; type: "u128"; }, { name: "sharesPendingRedemption"; type: "u128"; }, { name: "padding"; type: { array: ["u8", 144]; }; } ]; }; }, { name: "lenderState"; type: { kind: "struct"; fields: [ { name: "bump"; type: "u8"; }, { name: "lender"; type: "pubkey"; }, { name: "redemptionRecord"; type: { defined: { name: "lenderRedemptionRecord"; }; }; }, { name: "padding"; type: { array: ["u8", 160]; }; } ]; }; }, { name: "liquidAssetsDeployedSetEvent"; docs: [ "The strategist has set the amount of liquid assets deployed.", "", "# Fields", "* `pool_id` - The pool ID.", "* `wallet` - The strategy manager wallet address.", "* `liquid_assets_deployed` - The new liquid assets deployed amount in underlying token units." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; }, { name: "liquidAssetsDeployed"; type: "u64"; } ]; }; }, { name: "liquidityDeployedAsyncEvent"; docs: [ "The strategy manager has deployed liquidity via an async strategy.", "", "# Fields", "* `pool_id` - The pool ID.", "* `wallet` - The strategy manager wallet that initiated the deposit.", "* `strategy_type` - The async strategy type used for deployment.", "* `target_key` - The key of the deployment target.", "* `amount` - The amount of underlying tokens deposited." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; }, { name: "strategyType"; type: { defined: { name: "asyncDeploymentStrategyType"; }; }; }, { name: "targetKey"; type: "pubkey"; }, { name: "amount"; type: "u64"; } ]; }; }, { name: "liquidityDeployedEvent"; docs: [ "The strategy manager has deployed liquidity from the pool.", "", "# Fields", "* `pool_id` - The pool ID.", "* `wallet` - The strategy manager wallet that initiated the liquidity deployment.", "* `strategy_type` - The strategy type used for liquidity deployment.", "* `target_key` - The key of the deployment target.", "* `amount` - The amount deployed." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; }, { name: "strategyType"; type: { defined: { name: "deploymentStrategyType"; }; }; }, { name: "targetKey"; type: "pubkey"; }, { name: "amount"; type: "u64"; } ]; }; }, { name: "liquidityDeployedManuallyEvent"; docs: [ "The manual strategy manager has deployed liquidity from the pool.", "", "# Fields", "* `pool_id` - The pool ID.", "* `wallet` - The manual strategy manager wallet that initiated the deployment.", "* `target_key` - The key of the deployment target.", "* `amount` - The amount deployed." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; }, { name: "targetKey"; type: "pubkey"; }, { name: "amount"; type: "u64"; } ]; }; }, { name: "liquidityDepositedEvent"; docs: [ "A deposit has been made to the mode.", "", "# Fields", "* `mode_config` - The mode config key.", "* `depositor` - The account that made the deposit.", "* `assets` - The amount of underlying assets deposited.", "* `shares` - The number of shares minted for this deposit.", "* `commitment` - The commitment type of the deposit.", "* `commitment_auto_renewal` - Whether the commitment renews automatically after expiration." ]; type: { kind: "struct"; fields: [ { name: "modeConfig"; type: "pubkey"; }, { name: "depositor"; type: "pubkey"; }, { name: "assets"; type: "u64"; }, { name: "shares"; type: "u64"; }, { name: "commitment"; type: "string"; }, { name: "commitmentAutoRenewal"; type: "bool"; } ]; }; }, { name: "liquidityPaidBackEvent"; docs: [ "The strategy manager has paid back liquidity to the pool.", "", "# Fields", "* `pool_id` - The pool ID.", "* `wallet` - The strategy manager wallet address.", "* `amount` - The amount paid back.", "* `strategy_type` - The strategy type used for liquidity deployment.", "* `target_key` - The key of the deployment target.", "* `losses_recovered` - The amount of losses recovered in each mode." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; }, { name: "amount"; type: "u64"; }, { name: "strategyType"; type: { defined: { name: "deploymentStrategyType"; }; }; }, { name: "targetKey"; type: "pubkey"; } ]; }; }, { name: "liquidityPaidBackManuallyEvent"; docs: [ "The manual strategy manager has paid back liquidity to the pool.", "", "# Fields", "* `pool_id` - The pool ID.", "* `wallet` - The manual strategy manager wallet address.", "* `amount` - The amount paid back.", "* `target_key` - The key of the deployment target." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; }, { name: "amount"; type: "u64"; }, { name: "targetKey"; type: "pubkey"; } ]; }; }, { name: "liquidityPaybackCompletedAsyncEvent"; docs: [ "The strategy manager has completed a previously initiated payback via an async strategy.", "", "# Fields", "* `pool_id` - The pool ID.", "* `wallet` - The strategy manager wallet that completed the payback.", "* `strategy_type` - The async strategy type used for the payback.", "* `target_key` - The key of the deployment target.", "* `amount` - The amount of underlying tokens disbursed back to the pool." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; }, { name: "strategyType"; type: { defined: { name: "asyncDeploymentStrategyType"; }; }; }, { name: "targetKey"; type: "pubkey"; }, { name: "amount"; type: "u64"; } ]; }; }, { name: "liquidityPaybackInitiatedAsyncEvent"; docs: [ "The strategy manager has initiated a payback via an async strategy.", "", "# Fields", "* `pool_id` - The pool ID.", "* `wallet` - The strategy manager wallet that initiated the payback.", "* `strategy_type` - The async strategy type used for the payback.", "* `target_key` - The key of the deployment target.", "* `shares` - The number of shares submitted for redemption." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; }, { name: "strategyType"; type: { defined: { name: "asyncDeploymentStrategyType"; }; }; }, { name: "targetKey"; type: "pubkey"; }, { name: "shares"; type: "u64"; } ]; }; }, { name: "lossAuthorityChangedEvent"; docs: [ "The loss authority has been changed.", "", "# Fields", "* `pool_id` - The pool ID.", "* `old_loss_authority` - The address of the old loss authority.", "* `new_loss_authority` - The address of the new loss authority." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "oldLossAuthority"; type: "pubkey"; }, { name: "newLossAuthority"; type: "pubkey"; } ]; }; }, { name: "lossDeclaredEvent"; docs: [ "The loss authority has declared loss on the investment.", "", "# Fields", "* `pool_id` - The pool ID.", "* `loss_authority` - The loss authority address.", "* `loss_distributed` - The loss distributed to each mode." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "lossAuthority"; type: "pubkey"; }, { name: "lossDistributed"; type: { vec: "u64"; }; } ]; }; }, { name: "lossRecoveredEvent"; docs: [ "The loss authority has recovered loss by transferring assets to the pool.", "", "# Fields", "* `pool_id` - The pool ID.", "* `loss_authority` - The loss authority address.", "* `amount` - The amount transferred to the pool for loss recovery.", "* `losses_recovered` - The amount of losses recovered in each mode." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "lossAuthority"; type: "pubkey"; }, { name: "amount"; type: "u64"; }, { name: "lossesRecovered"; type: { vec: "u64"; }; } ]; }; }, { name: "manageModeTokenMetadataArgs"; docs: [ "Parameters used for creating and updating mode token metadata. All string lengths", "are checked by the MPL token metadata program, hence omitted here.", "", "# Fields", "* `name` - The name of the mode token.", "* `symbol` - The symbol of the mode token.", "* `uri` - The URI of additional mode token metadata stored off-chain." ]; type: { kind: "struct"; fields: [ { name: "name"; type: "string"; }, { name: "symbol"; type: "string"; }, { name: "uri"; type: "string"; } ]; }; }, { name: "manualDeploymentLimitChangedEvent"; docs: [ "The manual deploy limits have been changed.", "", "# Fields", "* `pool_id` - The pool ID.", "* `daily_limit` - The rolling 24-hour deployment limit.", "* `per_wallet_limit` - The maximum net amount deployed per wallet." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "dailyLimit"; type: "u64"; }, { name: "perWalletLimit"; type: "u64"; } ]; }; }, { name: "manualStrategyManager"; docs: [ "An approved manual strategy manager that can deploy and pay back liquidity via the", "Manual strategy. Each manual strategy manager can only deploy into its own wallet.", "", "# Fields", "* `bump` - The bump of the account.", "* `wallet` - The authorized wallet address." ]; type: { kind: "struct"; fields: [ { name: "bump"; type: "u8"; }, { name: "wallet"; type: "pubkey"; }, { name: "padding"; type: { array: ["u8", 160]; }; } ]; }; }, { name: "manualStrategyManagerApprovedEvent"; docs: [ "A manual strategy manager has been approved by the protocol owner.", "", "# Fields", "* `pool_id` - The pool ID.", "* `wallet` - The approved wallet address." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; } ]; }; }, { name: "manualStrategyManagerProposal"; docs: [ "A pending proposal to add a manual strategy manager. Created by the pool owner", "and must be approved by the Huma owner.", "", "# Fields", "* `bump` - The bump of the account.", "* `pool_config` - The `PoolConfig` key this proposal belongs to.", "* `wallet` - The proposed wallet address for the manual strategy manager.", "* `proposed_at` - The Unix timestamp at which the proposal was created." ]; type: { kind: "struct"; fields: [ { name: "bump"; type: "u8"; }, { name: "poolConfig"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; }, { name: "proposedAt"; type: "u64"; }, { name: "padding"; type: { array: ["u8", 160]; }; } ]; }; }, { name: "manualStrategyManagerProposalCancelledEvent"; docs: [ "A manual strategy manager proposal has been cancelled.", "", "# Fields", "* `pool_id` - The pool ID.", "* `wallet` - The wallet address of the cancelled proposal." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; } ]; }; }, { name: "manualStrategyManagerProposedEvent"; docs: [ "A manual strategy manager has been proposed.", "", "# Fields", "* `pool_id` - The pool ID.", "* `wallet` - The proposed wallet address." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; } ]; }; }, { name: "manualStrategyManagerRemovedEvent"; docs: [ "A manual strategy manager has been removed.", "", "# Fields", "* `pool_id` - The pool ID.", "* `wallet` - The wallet address that was removed." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; } ]; }; }, { name: "modeApyChangedEvent"; docs: [ "The mode APY has been updated.", "", "# Fields", "* `mode_config` - The mode config key.", "* `target_apy_bps` - The new target APY expressed in basis points.", "* `periodic_apy_bps` - The new periodic APY expressed in basis points." ]; type: { kind: "struct"; fields: [ { name: "modeConfig"; type: "pubkey"; }, { name: "targetApyBps"; type: "u16"; }, { name: "periodicApyBps"; type: "f64"; } ]; }; }, { name: "modeAddedEvent"; docs: [ "A mode has been added to the pool.", "", "# Fields", "* `pool_id` - The pool ID.", "* `mode_id` - The mode ID.", "* `mode_name` - The name of the mode.", "* `mode_config` - The mode config key.", "* `mode_mint` - The mode token mint key.", "* `mode_token` - The mode token account key.", "* `mode_token_name` - The name of the mode token.", "* `mode_token_symbol` - The symbol of the mode token.", "* `mode_token_uri` - The URI of additional mode token metadata stored off-chain." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "modeId"; type: "pubkey"; }, { name: "modeName"; type: "string"; }, { name: "modeConfig"; type: "pubkey"; }, { name: "modeMint"; type: "pubkey"; }, { name: "modeToken"; type: "pubkey"; }, { name: "modeTokenName"; type: "string"; }, { name: "modeTokenSymbol"; type: "string"; }, { name: "modeTokenUri"; type: "string"; } ]; }; }, { name: "modeAssetsRefreshedEvent"; docs: [ "The assets for a mode have been refreshed.", "", "# Fields", "* `mode_config` - The mode config key.", "* `old_assets` - The mode assets before update.", "* `new_assets` - The updated mode assets." ]; type: { kind: "struct"; fields: [ { name: "modeConfig"; type: "pubkey"; }, { name: "yieldBps"; type: "f64"; }, { name: "oldAssetsRefreshedAt"; type: "u64"; }, { name: "oldAssets"; type: "u64"; }, { name: "newAssets"; type: "u64"; } ]; }; }, { name: "modeConfig"; docs: [ "The configurations of a mode.", "", "# Fields", "* `bump` - The bump of the mode.", "* `mint_bump` - The bump of the mode mint.", "* `id` - The ID of the mode.", "* `name` - The name of the mode.", "* `target_apy_bps` - The target annual percentage yield (APY) for the underlying assets", "deposited, expressed in basis points.", "* `periodic_apy_bps` - The periodic rate, expressed as an APY in basis points. When compounded", "over the chosen periods in a year (e.g., every second), this rate yields the same", "overall annual return as target_apy_bps." ]; type: { kind: "struct"; fields: [ { name: "bump"; type: "u8"; }, { name: "mintBump"; type: "u8"; }, { name: "id"; type: "pubkey"; }, { name: "name"; type: "string"; }, { name: "targetApyBps"; type: "u16"; }, { name: "periodicApyBps"; type: "f64"; }, { name: "padding"; type: { array: ["u8", 160]; }; } ]; }; }, { name: "modeNameChangedEvent"; docs: [ "The mode name has been updated.", "", "# Fields", "* `mode_config` - The mode config key.", "* `name` - The new name of the mode." ]; type: { kind: "struct"; fields: [ { name: "modeConfig"; type: "pubkey"; }, { name: "name"; type: "string"; } ]; }; }, { name: "modeRemovedEvent"; docs: [ "A mode has been removed from the pool.", "", "# Fields", "* `pool_id` - The pool ID.", "* `mode_id` - The mode ID." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "modeId"; type: "pubkey"; } ]; }; }, { name: "modeState"; docs: [ "The states of a mode.", "", "# Fields", "* `assets` - The total amount of underlying assets in th mode. This includes both principals", "and yields (realized and unrealized).", "* `losses` - The total outstanding losses in the mode.", "* `cumulative_yields` - The cumulative amount of yields accrued in this mode.", "* `assets_refreshed_at` - The last timestamp at which `assets` was refreshed." ]; type: { kind: "struct"; fields: [ { name: "assets"; type: "u128"; }, { name: "losses"; type: "u128"; }, { name: "cumulativeYields"; type: "u128"; }, { name: "assetsRefreshedAt"; type: "u64"; }, { name: "padding"; type: { array: ["u8", 160]; }; } ]; }; }, { name: "modeSwitchedEvent"; docs: [ "A lender has switched their investment from one mode to another.", "", "# Fields", "* `source_mode_config` - The source mode config key.", "* `destination_mode_config` - The destination mode config key.", "* `lender` - The lender who switched mode.", "* `source_shares_burned` - The number of shares burned in the source mode.", "* `destination_shares_burned` - The number of shares minted in the destination mode.", "* `assets_switched` - The amount switched mode.", "* `investment_id` - The ID of the original investment." ]; type: { kind: "struct"; fields: [ { name: "sourceModeConfig"; type: "pubkey"; }, { name: "destinationModeConfig"; type: "pubkey"; }, { name: "lender"; type: "pubkey"; }, { name: "sourceSharesBurned"; type: "u64"; }, { name: "destinationSharesMinted"; type: "u64"; }, { name: "assetsSwitched"; type: "u64"; }, { name: "investmentId"; type: "string"; } ]; }; }, { name: "modeTokenMetadataUpdatedEvent"; docs: [ "The token metadata has been updated for a mode.", "", "# Fields", "* `mode_config` - The mode config key.", "* `name` - The name of the mode token.", "* `symbol` - The symbol of the mode token.", "* `uri` - The URI of additional mode token metadata stored off-chain." ]; type: { kind: "struct"; fields: [ { name: "modeConfig"; type: "pubkey"; }, { name: "name"; type: "string"; }, { name: "symbol"; type: "string"; }, { name: "uri"; type: "string"; } ]; }; }, { name: "poolClosedEvent"; docs: [ "The pool has been closed.", "", "# Fields", "* `pool_id` - The pool ID." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; } ]; }; }, { name: "poolConfig"; type: { kind: "struct"; fields: [ { name: "bump"; type: "u8"; }, { name: "humaConfig"; type: "pubkey"; }, { name: "poolOwner"; type: "pubkey"; }, { name: "poolOwnerTreasury"; type: "pubkey"; }, { name: "underlyingMint"; type: "pubkey"; }, { name: "poolAuthorityBump"; type: "u8"; }, { name: "poolId"; type: "pubkey"; }, { name: "poolName"; type: "string"; }, { name: "lpConfig"; type: { defined: { name: "lpConfig"; }; }; }, { name: "instantWithdrawalConfig"; type: { defined: { name: "instantWithdrawalConfig"; }; }; }, { name: "lossAuthority"; type: "pubkey"; }, { name: "manualDeploymentDailyLimit"; type: "u64"; }, { name: "manualDeploymentPerWalletLimit"; type: "u64"; }, { name: "padding"; type: { array: ["u8", 112]; }; } ]; }; }, { name: "poolConfigResizedEvent"; docs: [ "The pool config account has been resized.", "", "# Fields", "* `pool_id` - The pool ID.", "* `lamports_added` - Additional lamports transferred to keep the account rent-exempt." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "lamportsAdded"; type: "u64"; } ]; }; }, { name: "poolCreatedEvent"; docs: [ "A permissionless pool has been created.", "", "# Fields", "* `pool_id` - The pool ID.", "* `huma_config` - The ID of the Huma config that the pool is associated with.", "* `pool_owner` - The address of the pool owner.", "* `pool_owner_treasury` - The address of the pool owner treasury.", "* `underlying_mint` - The mint account of the underlying asset.", "* `pool_underlying_token` - The underlying asset token account of the pool.", "* `pool_authority` - The address of the pool authority account.", "* `pool_name` - The name of the pool." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "humaConfig"; type: "pubkey"; }, { name: "poolOwner"; type: "pubkey"; }, { name: "poolOwnerTreasury"; type: "pubkey"; }, { name: "underlyingMint"; type: "pubkey"; }, { name: "poolUnderlyingToken"; type: "pubkey"; }, { name: "poolAuthority"; type: "pubkey"; }, { name: "poolName"; type: "string"; }, { name: "lossAuthority"; type: "pubkey"; } ]; }; }, { name: "poolDisabledEvent"; docs: [ "The pool has been disabled.", "", "# Fields", "* `pool_id` - The pool ID." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; } ]; }; }, { name: "poolEnabledEvent"; docs: [ "The pool has been enabled.", "", "# Fields", "* `pool_id` - The pool ID." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; } ]; }; }, { name: "poolEnteredPreClosureEvent"; docs: [ "The pool has entered the pre-closure status to prepare for final closing.", "", "# Fields", "* `pool_id` - The pool ID." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; } ]; }; }, { name: "poolNameChangedEvent"; docs: [ "The pool name has been updated.", "", "# Fields", "* `pool_id` - The pool ID.", "* `pool_name` - The new name of the pool." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "poolName"; type: "string"; } ]; }; }, { name: "poolOperator"; type: { kind: "struct"; fields: [ { name: "bump"; type: "u8"; } ]; }; }, { name: "poolOperatorAddedEvent"; docs: [ "A new pool operator has been added.", "", "# Fields", "* `pool_id` - The pool ID.", "* `operator` - The address of the new operator being added." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "operator"; type: "pubkey"; } ]; }; }, { name: "poolOperatorRemovedEvent"; docs: [ "A pool operator has been removed.", "", "# Fields", "* `pool_id` - The pool ID.", "* `operator` - The address of the operator being removed." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "operator"; type: "pubkey"; } ]; }; }, { name: "poolOwnerChangedEvent"; docs: [ "The pool owner has changed.", "", "# Fields", "* `pool_id` - The pool ID.", "* `owner` - The address of the new owner." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "owner"; type: "pubkey"; } ]; }; }, { name: "poolOwnerTreasuryChangedEvent"; docs: [ "The pool owner treasury has been updated.", "", "# Fields", "* `pool_id` - The pool ID.", "* `old_treasury` - The address of the old pool owner treasury.", "* `new_treasury` - The address of the new pool owner treasury." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "oldTreasury"; type: "pubkey"; }, { name: "newTreasury"; type: "pubkey"; } ]; }; }, { name: "poolState"; docs: [ "The state of a pool.", "", "# Fields", "* `status` - The current lifecycle status of the pool (Off, On, PreClosure, Closed).", "* `disbursement_reserve` - The total amount of underlying assets reserved for pending", "disbursements to lenders who were not able to receive their funds when their redemption", "request was processed.", "* `mode_states` - Per-mode states, ordered to match `mode_config_keys`.", "* `mode_config_keys` - The public keys of the mode configs registered in this pool.", "* `redemption_queue` - Tracks queued redemption requests and gating state.", "* `pool_stats` - Cumulative deployment and pay-back statistics.", "* `liquid_assets_deployed` - The amount of assets deployed to other liquid DeFi protocols, used for", "instant withdrawal fee computation. Program instructions automatically increase this", "value on deployment and decrease this value when liquidity is withdrawn from the strategy;", "the strategy manager can also set it directly via `set_liquid_assets_deployed`." ]; type: { kind: "struct"; fields: [ { name: "bump"; type: "u8"; }, { name: "status"; type: { defined: { name: "poolStatus"; }; }; }, { name: "disbursementReserve"; type: "u128"; }, { name: "modeStates"; type: { vec: { defined: { name: "modeState"; }; }; }; }, { name: "modeConfigKeys"; type: { vec: "pubkey"; }; }, { name: "redemption"; type: { defined: { name: "redemption"; }; }; }, { name: "poolStats"; type: { defined: { name: "poolStats"; }; }; }, { name: "liquidAssetsDeployed"; type: "u64"; }, { name: "manualDailyAmountDeployed"; type: "u64"; }, { name: "manualDailyWindowStartsAt"; type: "u64"; }, { name: "padding"; type: { array: ["u8", 136]; }; } ]; }; }, { name: "poolStats"; type: { kind: "struct"; fields: [ { name: "cumulativeAmountDeployed"; type: "u128"; }, { name: "cumulativeAmountPaidBack"; type: "u128"; }, { name: "padding"; type: { array: ["u8", 160]; }; } ]; }; }, { name: "poolStatus"; docs: [ "The pool status", "", "# Variants", "* `Off` - The pool is temporarily turned off.", "* `On` - The pool is active.", "* `PreClosure` - The pool is undergoing final processing to prepare for closure.", "* `Closed` - The pool is closed after maturity." ]; type: { kind: "enum"; variants: [ { name: "off"; }, { name: "on"; }, { name: "preClosure"; }, { name: "closed"; } ]; }; }, { name: "privilegedInstantWithdrawalEvent"; docs: [ "An instant withdrawal lender has withdrawn their assets instantly.", "", "# Fields", "* `mode_config` - The mode config of the mode from which the withdrawal was made.", "* `lender` - The instant withdrawal lender who withdrew their own shares.", "* `shares` - The number of shares burned.", "* `assets` - The amount of assets withdrawn.", "* `strategy_liquidity_needed` - The amount of liquidity withdrawn from the strategy." ]; type: { kind: "struct"; fields: [ { name: "modeConfig"; type: "pubkey"; }, { name: "lender"; type: "pubkey"; }, { name: "shares"; type: "u64"; }, { name: "assets"; type: "u64"; }, { name: "strategyLiquidityWithdrawn"; type: "u64"; } ]; }; }, { name: "redeemedFundsPaidOutEvent"; docs: [ "Redeemed funds have been paid out to the lender.", "", "# Fields", "* `request_id` - The ID of the redemption request that was processed.", "* `lender` - The lender whose shares have been redeemed.", "* `amount` - The amount of the disbursement." ]; type: { kind: "struct"; fields: [ { name: "requestId"; type: "u128"; }, { name: "lender"; type: "pubkey"; }, { name: "amount"; type: "u64"; } ]; }; }, { name: "redeemedFundsReservedEvent"; docs: [ "Redeemed funds have been held in the protocol for manual claiming later.", "", "# Fields", "* `request_id` - The ID of the redemption request that was processed.", "* `lender` - The lender whose shares have been redeemed.", "* `amount` - The amount that was reserved." ]; type: { kind: "struct"; fields: [ { name: "requestId"; type: "u128"; }, { name: "lender"; type: "pubkey"; }, { name: "amount"; type: "u64"; } ]; }; }, { name: "redemption"; docs: [ "States for the global redemption queue.", "", "# Fields", "* `next_request_id` - The ID of the next redemption request to be processed.", "* `last_request_id` - The ID of the last unprocessed redemption request in the queue.", "* `redemption_gating` - Redemption gating information tracker." ]; type: { kind: "struct"; fields: [ { name: "nextRequestId"; type: "u128"; }, { name: "lastRequestId"; type: "u128"; }, { name: "globalRedemptionGating"; type: { defined: { name: "redemptionGating"; }; }; }, { name: "instantWithdrawalGating"; type: { defined: { name: "redemptionGating"; }; }; }, { name: "padding"; type: { array: ["u8", 136]; }; } ]; }; }, { name: "redemptionGating"; docs: [ "Redemption gating information tracker.", "", "# Fields", "* `total_shares_requested` - The total number of shares requested for redemption during", "the current window. No redemption request can be submitted once the total shares requested", "reaches the limit defined in `LPConfig`.", "* `window_starts_at` - The Unix timestamp (UTC) marking the start of the current 24-hour", "redemption window." ]; type: { kind: "struct"; fields: [ { name: "totalSharesRequested"; type: "u128"; }, { name: "windowStartsAt"; type: "u64"; }, { name: "padding"; type: { array: ["u8", 80]; }; } ]; }; }, { name: "redemptionRequest"; docs: [ "States for a lender's redemption request.", "", "# Fields", "* `bump` - The bump of the account.", "* `id` - The ID of the redemption request.", "* `lender` - The lender who submitted the request.", "* `mode_config` - The `ModeConfig` key of the mode that the request was added to.", "* `shares_requested` - The number of shares requested for redemption.", "* `requested_at` - The timestamp at which the request was submitted." ]; type: { kind: "struct"; fields: [ { name: "bump"; type: "u8"; }, { name: "id"; type: "u128"; }, { name: "lender"; type: "pubkey"; }, { name: "modeConfig"; type: "pubkey"; }, { name: "sharesRequested"; type: "u128"; }, { name: "requestedAt"; type: "u64"; }, { name: "payer"; type: "pubkey"; }, { name: "padding"; type: { array: ["u8", 128]; }; } ]; }; }, { name: "redemptionRequestAddedEventV2"; docs: [ "A redemption request has been added.", "", "# Fields", "* `mode_config` - The mode config key.", "* `payer` - The payer who paid for the rent-exempt fees of the new `RedemptionRequest` account.", "* `lender` - The lender who requested redemption.", "* `request_id` - The ID of the newly created request.", "* `shares` - The number of shares to be redeemed." ]; type: { kind: "struct"; fields: [ { name: "modeConfig"; type: "pubkey"; }, { name: "payer"; type: "pubkey"; }, { name: "lender"; type: "pubkey"; }, { name: "requestId"; type: "u128"; }, { name: "shares"; type: "u64"; } ]; }; }, { name: "redemptionRequestCanceledEvent"; docs: [ "A lender has reduced the number of shares requested for redemption.", "", "# Fields", "* `mode_config` - The mode config key.", "* `lender` - The lender who requested redemption.", "* `request_id` - The ID of the newly created request.", "* `shares` - The number of shares to be redeemed." ]; type: { kind: "struct"; fields: [ { name: "modeConfig"; type: "pubkey"; }, { name: "lender"; type: "pubkey"; }, { name: "requestId"; type: "u128"; }, { name: "shares"; type: "u64"; } ]; }; }, { name: "redemptionRequestProcessedEvent"; docs: [ "A redemption request has been processed.", "", "# Fields", "* `request_id` - The ID of the redemption request.", "* `lender` - The lender who submitted the request.", "* `shares_processed` - The number of shares processed.", "* `amount_processed` - The resulting amount processed." ]; type: { kind: "struct"; fields: [ { name: "requestId"; type: "u128"; }, { name: "lender"; type: "pubkey"; }, { name: "sharesProcessed"; type: "u64"; }, { name: "amountProcessed"; type: "u64"; } ]; }; }, { name: "strategyManagerWallet"; type: { kind: "struct"; fields: [ { name: "bump"; type: "u8"; }, { name: "wallet"; type: "pubkey"; }, { name: "padding"; type: { array: ["u8", 160]; }; } ]; }; }, { name: "strategyManagerWalletAddedEvent"; docs: [ "A wallet has been added for the strategy manager.", "", "# Fields", "* `pool_id` - The pool ID.", "* `wallet` - The wallet address." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; } ]; }; }, { name: "strategyManagerWalletRemovedEvent"; docs: [ "A wallet for the strategy manager has been removed.", "", "# Fields", "* `pool_id` - The pool ID.", "* `wallet` - The wallet address." ]; type: { kind: "struct"; fields: [ { name: "poolId"; type: "pubkey"; }, { name: "wallet"; type: "pubkey"; } ]; }; } ]; constants: [ { name: "asyncDeploymentConfigSeed"; type: "bytes"; value: "[97, 115, 121, 110, 99, 95, 100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 99, 111, 110, 102, 105, 103]"; }, { name: "asyncDeploymentStateSeed"; type: "bytes"; value: "[97, 115, 121, 110, 99, 95, 100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 115, 116, 97, 116, 101]"; }, { name: "deploymentConfigSeed"; type: "bytes"; value: "[100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 99, 111, 110, 102, 105, 103]"; }, { name: "deploymentStateSeed"; type: "bytes"; value: "[100, 101, 112, 108, 111, 121, 109, 101, 110, 116, 95, 115, 116, 97, 116, 101]"; }, { name: "humaConfigSeed"; type: "bytes"; value: "[104, 117, 109, 97, 95, 99, 111, 110, 102, 105, 103]"; }, { name: "instantWithdrawalLenderSeed"; type: "bytes"; value: "[105, 110, 115, 116, 97, 110, 116, 95, 119, 105, 116, 104, 100, 114, 97, 119, 97, 108, 95, 108, 101, 110, 100, 101, 114]"; }, { name: "lenderStateSeed"; type: "bytes"; value: "[108, 101, 110, 100, 101, 114, 95, 115, 116, 97, 116, 101]"; }, { name: "liquidityAssetSeed"; type: "bytes"; value: "[108, 105, 113, 117, 105, 100, 105, 116, 121, 95, 97, 115, 115, 101, 116]"; }, { name: "manualStrategyManagerProposalSeed"; type: "bytes"; value: "[109, 97, 110, 117, 97, 108, 95, 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114, 95, 112, 114, 111, 112, 111, 115, 97, 108]"; }, { name: "manualStrategyManagerSeed"; type: "bytes"; value: "[109, 97, 110, 117, 97, 108, 95, 115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114]"; }, { name: "modeConfigSeed"; type: "bytes"; value: "[109, 111, 100, 101, 95, 99, 111, 110, 102, 105, 103]"; }, { name: "modeMintSeed"; type: "bytes"; value: "[109, 111, 100, 101, 95, 109, 105, 110, 116]"; }, { name: "poolAuthoritySeed"; type: "bytes"; value: "[112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]"; }, { name: "poolConfigSeed"; type: "bytes"; value: "[112, 111, 111, 108, 95, 99, 111, 110, 102, 105, 103]"; }, { name: "poolOperatorSeed"; type: "bytes"; value: "[112, 111, 111, 108, 95, 111, 112, 101, 114, 97, 116, 111, 114]"; }, { name: "poolStateSeed"; type: "bytes"; value: "[112, 111, 111, 108, 95, 115, 116, 97, 116, 101]"; }, { name: "redemptionRequestSeed"; type: "bytes"; value: "[114, 101, 100, 101, 109, 112, 116, 105, 111, 110, 95, 114, 101, 113, 117, 101, 115, 116]"; }, { name: "strategyManagerWalletSeed"; type: "bytes"; value: "[115, 116, 114, 97, 116, 101, 103, 121, 95, 109, 97, 110, 97, 103, 101, 114, 95, 119, 97, 108, 108, 101, 116]"; } ]; }; //# sourceMappingURL=permissionless.d.ts.map