/** * 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/ext_orca.json`. */ export type ExtOrca = { "address": "G1NToC9pRj2NUdeAQK33xs72ep2prtDdPkcGZgRHGxmS"; "metadata": { "name": "extOrca"; "version": "0.1.0"; "spec": "0.1.0"; "description": "Orca Whirlpools integration for GLAM Protocol"; }; "instructions": [ { "name": "closePositionWithTokenExtensions"; "docs": [ "Close an empty Token-2022 Orca Whirlpools position owned by the GLAM vault.", "", "- Permission: `ClosePosition`." ]; "discriminator": [ 1, 182, 135, 59, 155, 25, 99, 223 ]; "accounts": [ { "name": "glamState"; "writable": true; }, { "name": "glamVault"; "writable": true; "pda": { "seeds": [ { "kind": "const"; "value": [ 118, 97, 117, 108, 116 ]; }, { "kind": "account"; "path": "glamState"; } ]; "program": { "kind": "account"; "path": "glamProtocolProgram"; }; }; }, { "name": "glamSigner"; "writable": true; "signer": true; }, { "name": "integrationAuthority"; "pda": { "seeds": [ { "kind": "const"; "value": [ 105, 110, 116, 101, 103, 114, 97, 116, 105, 111, 110, 45, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; } ]; }; }, { "name": "cpiProgram"; "address": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc"; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; }, { "name": "whirlpool"; }, { "name": "position"; "writable": true; }, { "name": "positionMint"; "writable": true; }, { "name": "positionTokenAccount"; "writable": true; }, { "name": "token2022Program"; "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"; } ]; "args": []; }, { "name": "collectFeesV2"; "docs": [ "Collect accrued pool fees using Token-2022-aware accounts.", "", "- Permission: `CollectFees`." ]; "discriminator": [ 207, 117, 95, 191, 229, 180, 226, 15 ]; "accounts": [ { "name": "glamState"; "writable": true; }, { "name": "glamVault"; "writable": true; "pda": { "seeds": [ { "kind": "const"; "value": [ 118, 97, 117, 108, 116 ]; }, { "kind": "account"; "path": "glamState"; } ]; "program": { "kind": "account"; "path": "glamProtocolProgram"; }; }; }, { "name": "glamSigner"; "writable": true; "signer": true; }, { "name": "integrationAuthority"; "pda": { "seeds": [ { "kind": "const"; "value": [ 105, 110, 116, 101, 103, 114, 97, 116, 105, 111, 110, 45, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; } ]; }; }, { "name": "cpiProgram"; "address": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc"; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; }, { "name": "whirlpool"; }, { "name": "position"; "writable": true; }, { "name": "positionTokenAccount"; }, { "name": "tokenMintA"; }, { "name": "tokenMintB"; }, { "name": "tokenOwnerAccountA"; "writable": true; }, { "name": "tokenVaultA"; "writable": true; }, { "name": "tokenOwnerAccountB"; "writable": true; }, { "name": "tokenVaultB"; "writable": true; }, { "name": "tokenProgramA"; }, { "name": "tokenProgramB"; }, { "name": "memoProgram"; } ]; "args": [ { "name": "remainingAccountsInfo"; "type": { "option": { "defined": { "name": "remainingAccountsInfo"; }; }; }; } ]; }, { "name": "collectRewardV2"; "docs": [ "Collect one reward emission using Token-2022-aware accounts.", "", "- Permission: `CollectReward`." ]; "discriminator": [ 177, 107, 37, 180, 160, 19, 49, 209 ]; "accounts": [ { "name": "glamState"; "writable": true; }, { "name": "glamVault"; "writable": true; "pda": { "seeds": [ { "kind": "const"; "value": [ 118, 97, 117, 108, 116 ]; }, { "kind": "account"; "path": "glamState"; } ]; "program": { "kind": "account"; "path": "glamProtocolProgram"; }; }; }, { "name": "glamSigner"; "writable": true; "signer": true; }, { "name": "integrationAuthority"; "pda": { "seeds": [ { "kind": "const"; "value": [ 105, 110, 116, 101, 103, 114, 97, 116, 105, 111, 110, 45, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; } ]; }; }, { "name": "cpiProgram"; "address": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc"; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; }, { "name": "whirlpool"; }, { "name": "position"; "writable": true; }, { "name": "positionTokenAccount"; }, { "name": "rewardOwnerAccount"; "writable": true; }, { "name": "rewardMint"; }, { "name": "rewardVault"; "writable": true; }, { "name": "rewardTokenProgram"; }, { "name": "memoProgram"; } ]; "args": [ { "name": "rewardIndex"; "type": "u8"; }, { "name": "remainingAccountsInfo"; "type": { "option": { "defined": { "name": "remainingAccountsInfo"; }; }; }; } ]; }, { "name": "decreaseLiquidityV2"; "docs": [ "Decrease liquidity in an Orca Whirlpools position using Token-2022-aware accounts.", "", "- Permission: `DecreaseLiquidity`." ]; "discriminator": [ 58, 127, 188, 62, 79, 82, 196, 96 ]; "accounts": [ { "name": "glamState"; "writable": true; }, { "name": "glamVault"; "writable": true; "pda": { "seeds": [ { "kind": "const"; "value": [ 118, 97, 117, 108, 116 ]; }, { "kind": "account"; "path": "glamState"; } ]; "program": { "kind": "account"; "path": "glamProtocolProgram"; }; }; }, { "name": "glamSigner"; "writable": true; "signer": true; }, { "name": "integrationAuthority"; "pda": { "seeds": [ { "kind": "const"; "value": [ 105, 110, 116, 101, 103, 114, 97, 116, 105, 111, 110, 45, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; } ]; }; }, { "name": "cpiProgram"; "address": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc"; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; }, { "name": "whirlpool"; "writable": true; }, { "name": "tokenProgramA"; }, { "name": "tokenProgramB"; }, { "name": "memoProgram"; }, { "name": "position"; "writable": true; }, { "name": "positionTokenAccount"; }, { "name": "tokenMintA"; }, { "name": "tokenMintB"; }, { "name": "tokenOwnerAccountA"; "writable": true; }, { "name": "tokenOwnerAccountB"; "writable": true; }, { "name": "tokenVaultA"; "writable": true; }, { "name": "tokenVaultB"; "writable": true; }, { "name": "tickArrayLower"; "writable": true; }, { "name": "tickArrayUpper"; "writable": true; } ]; "args": [ { "name": "liquidityAmount"; "type": "u128"; }, { "name": "tokenMinA"; "type": "u64"; }, { "name": "tokenMinB"; "type": "u64"; }, { "name": "remainingAccountsInfo"; "type": { "option": { "defined": { "name": "remainingAccountsInfo"; }; }; }; } ]; }, { "name": "increaseLiquidityByTokenAmountsV2"; "docs": [ "Increase liquidity by token amount bounds using Token-2022-aware accounts." ]; "discriminator": [ 239, 251, 9, 124, 210, 198, 53, 43 ]; "accounts": [ { "name": "glamState"; "writable": true; }, { "name": "glamVault"; "writable": true; "pda": { "seeds": [ { "kind": "const"; "value": [ 118, 97, 117, 108, 116 ]; }, { "kind": "account"; "path": "glamState"; } ]; "program": { "kind": "account"; "path": "glamProtocolProgram"; }; }; }, { "name": "glamSigner"; "writable": true; "signer": true; }, { "name": "integrationAuthority"; "pda": { "seeds": [ { "kind": "const"; "value": [ 105, 110, 116, 101, 103, 114, 97, 116, 105, 111, 110, 45, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; } ]; }; }, { "name": "cpiProgram"; "address": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc"; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; }, { "name": "whirlpool"; "writable": true; }, { "name": "tokenProgramA"; }, { "name": "tokenProgramB"; }, { "name": "memoProgram"; }, { "name": "position"; "writable": true; }, { "name": "positionTokenAccount"; }, { "name": "tokenMintA"; }, { "name": "tokenMintB"; }, { "name": "tokenOwnerAccountA"; "writable": true; }, { "name": "tokenOwnerAccountB"; "writable": true; }, { "name": "tokenVaultA"; "writable": true; }, { "name": "tokenVaultB"; "writable": true; }, { "name": "tickArrayLower"; "writable": true; }, { "name": "tickArrayUpper"; "writable": true; } ]; "args": [ { "name": "method"; "type": { "defined": { "name": "increaseLiquidityMethod"; }; }; }, { "name": "remainingAccountsInfo"; "type": { "option": { "defined": { "name": "remainingAccountsInfo"; }; }; }; } ]; }, { "name": "increaseLiquidityV2"; "docs": [ "Increase liquidity in an Orca Whirlpools position using Token-2022-aware accounts.", "", "- Permission: `IncreaseLiquidity`.", "- Policy: Whirlpool and both pool token mints must be allowlisted." ]; "discriminator": [ 133, 29, 89, 223, 69, 238, 176, 10 ]; "accounts": [ { "name": "glamState"; "writable": true; }, { "name": "glamVault"; "writable": true; "pda": { "seeds": [ { "kind": "const"; "value": [ 118, 97, 117, 108, 116 ]; }, { "kind": "account"; "path": "glamState"; } ]; "program": { "kind": "account"; "path": "glamProtocolProgram"; }; }; }, { "name": "glamSigner"; "writable": true; "signer": true; }, { "name": "integrationAuthority"; "pda": { "seeds": [ { "kind": "const"; "value": [ 105, 110, 116, 101, 103, 114, 97, 116, 105, 111, 110, 45, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; } ]; }; }, { "name": "cpiProgram"; "address": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc"; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; }, { "name": "whirlpool"; "writable": true; }, { "name": "tokenProgramA"; }, { "name": "tokenProgramB"; }, { "name": "memoProgram"; }, { "name": "position"; "writable": true; }, { "name": "positionTokenAccount"; }, { "name": "tokenMintA"; }, { "name": "tokenMintB"; }, { "name": "tokenOwnerAccountA"; "writable": true; }, { "name": "tokenOwnerAccountB"; "writable": true; }, { "name": "tokenVaultA"; "writable": true; }, { "name": "tokenVaultB"; "writable": true; }, { "name": "tickArrayLower"; "writable": true; }, { "name": "tickArrayUpper"; "writable": true; } ]; "args": [ { "name": "liquidityAmount"; "type": "u128"; }, { "name": "tokenMaxA"; "type": "u64"; }, { "name": "tokenMaxB"; "type": "u64"; }, { "name": "remainingAccountsInfo"; "type": { "option": { "defined": { "name": "remainingAccountsInfo"; }; }; }; } ]; }, { "name": "initializeTickArray"; "docs": [ "Initialize an Orca fixed tick array for an allowlisted Whirlpool.", "", "- Permission: `InitializeTickArray`.", "- Policy: Whirlpool and both pool token mints must be allowlisted." ]; "discriminator": [ 11, 188, 193, 214, 141, 91, 149, 184 ]; "accounts": [ { "name": "glamState"; "writable": true; }, { "name": "glamVault"; "writable": true; "pda": { "seeds": [ { "kind": "const"; "value": [ 118, 97, 117, 108, 116 ]; }, { "kind": "account"; "path": "glamState"; } ]; "program": { "kind": "account"; "path": "glamProtocolProgram"; }; }; }, { "name": "glamSigner"; "writable": true; "signer": true; }, { "name": "integrationAuthority"; "pda": { "seeds": [ { "kind": "const"; "value": [ 105, 110, 116, 101, 103, 114, 97, 116, 105, 111, 110, 45, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; } ]; }; }, { "name": "cpiProgram"; "address": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc"; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; }, { "name": "whirlpool"; }, { "name": "tickArray"; "writable": true; } ]; "args": [ { "name": "startTickIndex"; "type": "i32"; } ]; }, { "name": "openPositionWithTokenExtensions"; "docs": [ "Open a Token-2022 Orca Whirlpools position owned by the GLAM vault.", "", "- Permission: `OpenPosition`.", "- Policy: Whirlpool and both pool token mints must be allowlisted." ]; "discriminator": [ 212, 47, 95, 92, 114, 102, 131, 250 ]; "accounts": [ { "name": "glamState"; "writable": true; }, { "name": "glamVault"; "writable": true; "pda": { "seeds": [ { "kind": "const"; "value": [ 118, 97, 117, 108, 116 ]; }, { "kind": "account"; "path": "glamState"; } ]; "program": { "kind": "account"; "path": "glamProtocolProgram"; }; }; }, { "name": "glamSigner"; "writable": true; "signer": true; }, { "name": "integrationAuthority"; "pda": { "seeds": [ { "kind": "const"; "value": [ 105, 110, 116, 101, 103, 114, 97, 116, 105, 111, 110, 45, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; } ]; }; }, { "name": "cpiProgram"; "address": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc"; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; }, { "name": "position"; "writable": true; }, { "name": "positionMint"; "writable": true; "signer": true; }, { "name": "positionTokenAccount"; "writable": true; }, { "name": "whirlpool"; }, { "name": "token2022Program"; "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"; }, { "name": "associatedTokenProgram"; "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"; }, { "name": "metadataUpdateAuth"; } ]; "args": [ { "name": "tickLowerIndex"; "type": "i32"; }, { "name": "tickUpperIndex"; "type": "i32"; }, { "name": "withTokenMetadataExtension"; "type": "bool"; } ]; }, { "name": "repositionLiquidityV2"; "docs": [ "Reposition liquidity into a new Orca Whirlpools tick range." ]; "discriminator": [ 191, 169, 224, 11, 131, 19, 158, 253 ]; "accounts": [ { "name": "glamState"; "writable": true; }, { "name": "glamVault"; "writable": true; "pda": { "seeds": [ { "kind": "const"; "value": [ 118, 97, 117, 108, 116 ]; }, { "kind": "account"; "path": "glamState"; } ]; "program": { "kind": "account"; "path": "glamProtocolProgram"; }; }; }, { "name": "glamSigner"; "writable": true; "signer": true; }, { "name": "integrationAuthority"; "pda": { "seeds": [ { "kind": "const"; "value": [ 105, 110, 116, 101, 103, 114, 97, 116, 105, 111, 110, 45, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; } ]; }; }, { "name": "cpiProgram"; "address": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc"; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; }, { "name": "whirlpool"; "writable": true; }, { "name": "tokenProgramA"; }, { "name": "tokenProgramB"; }, { "name": "memoProgram"; }, { "name": "position"; "writable": true; }, { "name": "positionTokenAccount"; }, { "name": "tokenMintA"; }, { "name": "tokenMintB"; }, { "name": "tokenOwnerAccountA"; "writable": true; }, { "name": "tokenOwnerAccountB"; "writable": true; }, { "name": "tokenVaultA"; "writable": true; }, { "name": "tokenVaultB"; "writable": true; }, { "name": "existingTickArrayLower"; "writable": true; }, { "name": "existingTickArrayUpper"; "writable": true; }, { "name": "newTickArrayLower"; "writable": true; }, { "name": "newTickArrayUpper"; "writable": true; } ]; "args": [ { "name": "newTickLowerIndex"; "type": "i32"; }, { "name": "newTickUpperIndex"; "type": "i32"; }, { "name": "method"; "type": { "defined": { "name": "repositionLiquidityMethod"; }; }; }, { "name": "remainingAccountsInfo"; "type": { "option": { "defined": { "name": "remainingAccountsInfo"; }; }; }; } ]; }, { "name": "setWhirlpoolsPolicy"; "docs": [ "Set the Orca Whirlpools policy for a GLAM vault." ]; "discriminator": [ 87, 233, 250, 82, 120, 40, 212, 223 ]; "accounts": [ { "name": "glamState"; "writable": true; }, { "name": "glamSigner"; "writable": true; "signer": true; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; } ]; "args": [ { "name": "policy"; "type": { "defined": { "name": "whirlpoolsPolicy"; }; }; } ]; }, { "name": "updateFeesAndRewards"; "docs": [ "Update accrued fees and rewards for an Orca Whirlpools position.", "", "- Permission: `UpdateFeesAndRewards`." ]; "discriminator": [ 154, 230, 250, 13, 236, 209, 75, 223 ]; "accounts": [ { "name": "glamState"; "writable": true; }, { "name": "glamVault"; "writable": true; "pda": { "seeds": [ { "kind": "const"; "value": [ 118, 97, 117, 108, 116 ]; }, { "kind": "account"; "path": "glamState"; } ]; "program": { "kind": "account"; "path": "glamProtocolProgram"; }; }; }, { "name": "glamSigner"; "writable": true; "signer": true; }, { "name": "integrationAuthority"; "pda": { "seeds": [ { "kind": "const"; "value": [ 105, 110, 116, 101, 103, 114, 97, 116, 105, 111, 110, 45, 97, 117, 116, 104, 111, 114, 105, 116, 121 ]; } ]; }; }, { "name": "cpiProgram"; "address": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc"; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; }, { "name": "whirlpool"; "writable": true; }, { "name": "position"; "writable": true; }, { "name": "tickArrayLower"; }, { "name": "tickArrayUpper"; } ]; "args": []; } ]; "accounts": [ { "name": "stateAccount"; "discriminator": [ 142, 247, 54, 95, 85, 133, 249, 103 ]; } ]; "errors": [ { "code": 6000; "name": "invalidWhirlpoolAccount"; "msg": "Invalid Orca Whirlpool account"; }, { "code": 6001; "name": "invalidPositionAccount"; "msg": "Invalid Orca position account"; }, { "code": 6002; "name": "tokenMintMismatch"; "msg": "Orca token account mint does not match the Whirlpool"; }, { "code": 6003; "name": "invalidIxArgs"; "msg": "Invalid instruction arguments"; }, { "code": 6004; "name": "protocolPolicyViolation"; "msg": "Protocol policy violation"; }, { "code": 6005; "name": "pricingError"; "msg": "Pricing error"; }, { "code": 6006; "name": "missingAccount"; "msg": "An account required by the instruction is missing"; }, { "code": 6007; "name": "unsupportedOracleSource"; "msg": "Oracle source not supported in this context"; }, { "code": 6008; "name": "invalidAccountType"; "msg": "Invalid account type"; }, { "code": 6009; "name": "unexpectedProgramOwner"; "msg": "Account is owned by an unexpected program"; }, { "code": 6010; "name": "invalidPriceDenom"; "msg": "Invalid price denom"; }, { "code": 6011; "name": "maxDeviationExceeded"; "msg": "Max deviation exceeded"; }, { "code": 6012; "name": "invalidTokenAccount"; "msg": "Invalid token account"; }, { "code": 6013; "name": "invalidVaultTokenAccount"; "msg": "Invalid vault ata"; } ]; "types": [ { "name": "accountType"; "type": { "kind": "enum"; "variants": [ { "name": "vault"; }, { "name": "tokenizedVault"; }, { "name": "mint"; }, { "name": "singleAssetVault"; } ]; }; }, { "name": "accountsType"; "type": { "kind": "enum"; "variants": [ { "name": "transferHookA"; }, { "name": "transferHookB"; }, { "name": "transferHookReward"; }, { "name": "transferHookInput"; }, { "name": "transferHookIntermediate"; }, { "name": "transferHookOutput"; }, { "name": "supplementalTickArrays"; }, { "name": "supplementalTickArraysOne"; }, { "name": "supplementalTickArraysTwo"; }, { "name": "transferHookDepositA"; }, { "name": "transferHookDepositB"; }, { "name": "transferHookWithdrawalA"; }, { "name": "transferHookWithdrawalB"; } ]; }; }, { "name": "accruedFees"; "type": { "kind": "struct"; "fields": [ { "name": "vaultSubscriptionFee"; "type": "u128"; }, { "name": "vaultRedemptionFee"; "type": "u128"; }, { "name": "managerSubscriptionFee"; "type": "u128"; }, { "name": "managerRedemptionFee"; "type": "u128"; }, { "name": "managementFee"; "type": "u128"; }, { "name": "performanceFee"; "type": "u128"; }, { "name": "protocolBaseFee"; "type": "u128"; }, { "name": "protocolFlowFee"; "type": "u128"; } ]; }; }, { "name": "createdModel"; "type": { "kind": "struct"; "fields": [ { "name": "key"; "type": { "array": [ "u8", 8 ]; }; }, { "name": "createdBy"; "type": "pubkey"; }, { "name": "createdAt"; "type": "i64"; } ]; }; }, { "name": "delegateAcl"; "type": { "kind": "struct"; "fields": [ { "name": "pubkey"; "type": "pubkey"; }, { "name": "integrationPermissions"; "type": { "vec": { "defined": { "name": "integrationPermissions"; }; }; }; }, { "name": "expiresAt"; "type": "i64"; } ]; }; }, { "name": "engineField"; "type": { "kind": "struct"; "fields": [ { "name": "name"; "type": { "defined": { "name": "engineFieldName"; }; }; }, { "name": "value"; "type": { "defined": { "name": "engineFieldValue"; }; }; } ]; }; }, { "name": "engineFieldName"; "type": { "kind": "enum"; "variants": [ { "name": "owner"; }, { "name": "portfolioManagerName"; }, { "name": "name"; }, { "name": "uri"; }, { "name": "assets"; }, { "name": "delegateAcls"; }, { "name": "integrationAcls"; }, { "name": "timelockDuration"; }, { "name": "borrowable"; }, { "name": "defaultAccountStateFrozen"; }, { "name": "permanentDelegate"; }, { "name": "notifyAndSettle"; }, { "name": "feeStructure"; }, { "name": "feeParams"; }, { "name": "claimableFees"; }, { "name": "claimedFees"; }, { "name": "oracleConfigs"; } ]; }; }, { "name": "engineFieldValue"; "type": { "kind": "enum"; "variants": [ { "name": "boolean"; "fields": [ { "name": "val"; "type": "bool"; } ]; }, { "name": "u8"; "fields": [ { "name": "val"; "type": "u8"; } ]; }, { "name": "u32"; "fields": [ { "name": "val"; "type": "u32"; } ]; }, { "name": "u64"; "fields": [ { "name": "val"; "type": "u64"; } ]; }, { "name": "string"; "fields": [ { "name": "val"; "type": "string"; } ]; }, { "name": "pubkey"; "fields": [ { "name": "val"; "type": "pubkey"; } ]; }, { "name": "vecPubkey"; "fields": [ { "name": "val"; "type": { "vec": "pubkey"; }; } ]; }, { "name": "vecU8"; "fields": [ { "name": "val"; "type": "bytes"; } ]; }, { "name": "vecU32"; "fields": [ { "name": "val"; "type": { "vec": "u32"; }; } ]; }, { "name": "vecDelegateAcl"; "fields": [ { "name": "val"; "type": { "vec": { "defined": { "name": "delegateAcl"; }; }; }; } ]; }, { "name": "vecIntegrationAcl"; "fields": [ { "name": "val"; "type": { "vec": { "defined": { "name": "integrationAcl"; }; }; }; } ]; }, { "name": "feeStructure"; "fields": [ { "name": "val"; "type": { "defined": { "name": "feeStructure"; }; }; } ]; }, { "name": "feeParams"; "fields": [ { "name": "val"; "type": { "defined": { "name": "feeParams"; }; }; } ]; }, { "name": "accruedFees"; "fields": [ { "name": "val"; "type": { "defined": { "name": "accruedFees"; }; }; } ]; }, { "name": "notifyAndSettle"; "fields": [ { "name": "val"; "type": { "defined": { "name": "notifyAndSettle"; }; }; } ]; }, { "name": "oracleConfigs"; "fields": [ { "name": "val"; "type": { "defined": { "name": "oracleConfigs"; }; }; } ]; } ]; }; }, { "name": "entryExitFees"; "type": { "kind": "struct"; "fields": [ { "name": "subscriptionFeeBps"; "type": "u16"; }, { "name": "redemptionFeeBps"; "type": "u16"; } ]; }; }, { "name": "feeParams"; "type": { "kind": "struct"; "fields": [ { "name": "yearInSeconds"; "type": "u32"; }, { "name": "paHighWaterMark"; "type": "i128"; }, { "name": "paLastNav"; "type": "i128"; }, { "name": "lastAum"; "type": "i128"; }, { "name": "lastPerformanceFeeCrystallized"; "type": "i64"; }, { "name": "lastManagementFeeCrystallized"; "type": "i64"; }, { "name": "lastProtocolFeeCrystallized"; "type": "i64"; } ]; }; }, { "name": "feeStructure"; "type": { "kind": "struct"; "fields": [ { "name": "vault"; "type": { "defined": { "name": "entryExitFees"; }; }; }, { "name": "manager"; "type": { "defined": { "name": "entryExitFees"; }; }; }, { "name": "management"; "type": { "defined": { "name": "managementFee"; }; }; }, { "name": "performance"; "type": { "defined": { "name": "performanceFee"; }; }; }, { "name": "protocol"; "type": { "defined": { "name": "protocolFees"; }; }; } ]; }; }, { "name": "hurdleType"; "type": { "kind": "enum"; "variants": [ { "name": "hard"; }, { "name": "soft"; } ]; }; }, { "name": "increaseLiquidityMethod"; "type": { "kind": "enum"; "variants": [ { "name": "byTokenAmounts"; "fields": [ { "name": "tokenMaxA"; "type": "u64"; }, { "name": "tokenMaxB"; "type": "u64"; }, { "name": "minSqrtPrice"; "type": "u128"; }, { "name": "maxSqrtPrice"; "type": "u128"; } ]; } ]; }; }, { "name": "integrationAcl"; "docs": [ "An integration program can have multiple protocols supported.", "Enabled protocols are stored in a bitmask, and each protocol can have its own policy." ]; "type": { "kind": "struct"; "fields": [ { "name": "integrationProgram"; "type": "pubkey"; }, { "name": "protocolsBitmask"; "type": "u16"; }, { "name": "protocolPolicies"; "type": { "vec": { "defined": { "name": "protocolPolicy"; }; }; }; } ]; }; }, { "name": "integrationPermissions"; "docs": [ "Stores delegate permissions for an integration program." ]; "type": { "kind": "struct"; "fields": [ { "name": "integrationProgram"; "type": "pubkey"; }, { "name": "protocolPermissions"; "type": { "vec": { "defined": { "name": "protocolPermissions"; }; }; }; } ]; }; }, { "name": "managementFee"; "type": { "kind": "struct"; "fields": [ { "name": "feeBps"; "type": "u16"; } ]; }; }, { "name": "noticePeriodType"; "type": { "kind": "enum"; "variants": [ { "name": "hard"; }, { "name": "soft"; } ]; }; }, { "name": "notifyAndSettle"; "type": { "kind": "struct"; "fields": [ { "name": "model"; "type": { "defined": { "name": "valuationModel"; }; }; }, { "name": "permissionlessFulfillment"; "type": "bool"; }, { "name": "subscribeNoticePeriodType"; "type": { "defined": { "name": "noticePeriodType"; }; }; }, { "name": "subscribeNoticePeriod"; "type": "u64"; }, { "name": "subscribeSettlementPeriod"; "type": "u64"; }, { "name": "subscribeCancellationWindow"; "type": "u64"; }, { "name": "redeemNoticePeriodType"; "type": { "defined": { "name": "noticePeriodType"; }; }; }, { "name": "redeemNoticePeriod"; "type": "u64"; }, { "name": "redeemSettlementPeriod"; "type": "u64"; }, { "name": "redeemCancellationWindow"; "type": "u64"; }, { "name": "timeUnit"; "type": { "defined": { "name": "timeUnit"; }; }; }, { "name": "padding"; "type": { "array": [ "u8", 3 ]; }; } ]; }; }, { "name": "oracleConfigs"; "docs": [ "Vault-specific oracle configs. If available, these configs are preferred over the global config." ]; "type": { "kind": "struct"; "fields": [ { "name": "maxAgesSeconds"; "type": { "vec": { "array": [ "u16", 2 ]; }; }; }, { "name": "padding"; "type": { "array": [ "u8", 12 ]; }; } ]; }; }, { "name": "performanceFee"; "type": { "kind": "struct"; "fields": [ { "name": "feeBps"; "type": "u16"; }, { "name": "hurdleRateBps"; "type": "u16"; }, { "name": "hurdleType"; "type": { "defined": { "name": "hurdleType"; }; }; } ]; }; }, { "name": "pricedProtocol"; "type": { "kind": "struct"; "fields": [ { "name": "rent"; "type": "u64"; }, { "name": "amount"; "type": "i128"; }, { "name": "decimals"; "type": "u8"; }, { "name": "lastUpdatedSlot"; "type": "u64"; }, { "name": "integrationProgram"; "type": "pubkey"; }, { "name": "protocolBitflag"; "type": "u16"; }, { "name": "positions"; "type": { "vec": "pubkey"; }; } ]; }; }, { "name": "protocolFees"; "type": { "kind": "struct"; "fields": [ { "name": "baseFeeBps"; "type": "u16"; }, { "name": "flowFeeBps"; "type": "u16"; } ]; }; }, { "name": "protocolPermissions"; "docs": [ "Represents a delegate's permissions for a specific protocol" ]; "type": { "kind": "struct"; "fields": [ { "name": "protocolBitflag"; "type": "u16"; }, { "name": "permissionsBitmask"; "type": "u64"; } ]; }; }, { "name": "protocolPolicy"; "docs": [ "Stores policy data for an integrated protocol.", "Integration programs serialize/deserialize this data." ]; "type": { "kind": "struct"; "fields": [ { "name": "protocolBitflag"; "type": "u16"; }, { "name": "data"; "type": "bytes"; } ]; }; }, { "name": "remainingAccountsInfo"; "type": { "kind": "struct"; "fields": [ { "name": "slices"; "type": { "vec": { "defined": { "name": "remainingAccountsSlice"; }; }; }; } ]; }; }, { "name": "remainingAccountsSlice"; "type": { "kind": "struct"; "fields": [ { "name": "accountsType"; "type": { "defined": { "name": "accountsType"; }; }; }, { "name": "length"; "type": "u8"; } ]; }; }, { "name": "repositionLiquidityMethod"; "type": { "kind": "enum"; "variants": [ { "name": "byLiquidity"; "fields": [ { "name": "newLiquidityAmount"; "type": "u128"; }, { "name": "existingRangeTokenMinA"; "type": "u64"; }, { "name": "existingRangeTokenMinB"; "type": "u64"; }, { "name": "newRangeTokenMaxA"; "type": "u64"; }, { "name": "newRangeTokenMaxB"; "type": "u64"; } ]; } ]; }; }, { "name": "stateAccount"; "type": { "kind": "struct"; "fields": [ { "name": "accountType"; "type": { "defined": { "name": "accountType"; }; }; }, { "name": "enabled"; "type": "bool"; }, { "name": "vault"; "type": "pubkey"; }, { "name": "owner"; "type": "pubkey"; }, { "name": "portfolioManagerName"; "type": { "array": [ "u8", 32 ]; }; }, { "name": "created"; "type": { "defined": { "name": "createdModel"; }; }; }, { "name": "baseAssetMint"; "type": "pubkey"; }, { "name": "baseAssetDecimals"; "type": "u8"; }, { "name": "baseAssetTokenProgram"; "type": "u8"; }, { "name": "name"; "type": { "array": [ "u8", 32 ]; }; }, { "name": "timelockDuration"; "type": "u32"; }, { "name": "timelockExpiresAt"; "type": "u64"; }, { "name": "mint"; "type": "pubkey"; }, { "name": "assets"; "type": { "vec": "pubkey"; }; }, { "name": "integrationAcls"; "type": { "vec": { "defined": { "name": "integrationAcl"; }; }; }; }, { "name": "delegateAcls"; "type": { "vec": { "defined": { "name": "delegateAcl"; }; }; }; }, { "name": "externalPositions"; "type": { "vec": "pubkey"; }; }, { "name": "pricedProtocols"; "type": { "vec": { "defined": { "name": "pricedProtocol"; }; }; }; }, { "name": "params"; "type": { "vec": { "vec": { "defined": { "name": "engineField"; }; }; }; }; } ]; }; }, { "name": "timeUnit"; "type": { "kind": "enum"; "variants": [ { "name": "second"; }, { "name": "slot"; } ]; }; }, { "name": "valuationModel"; "type": { "kind": "enum"; "variants": [ { "name": "continuous"; }, { "name": "periodic"; } ]; }; }, { "name": "whirlpoolsPolicy"; "type": { "kind": "struct"; "fields": [ { "name": "whirlpoolsAllowlist"; "type": { "vec": "pubkey"; }; }, { "name": "tokenMintsAllowlist"; "type": { "vec": "pubkey"; }; }, { "name": "maxDeviationBps"; "docs": [ "Signed pool/oracle price threshold in bps, matching Jupiter swap v2 semantics.", "Positive permits pool price below oracle, zero requires at least oracle, negative requires a premium." ]; "type": "i16"; } ]; }; } ]; "constants": [ { "name": "protoOrcaWhirlpools"; "type": "u16"; "value": "1"; }, { "name": "protoOrcaWhirlpoolsPermClosePosition"; "type": "u64"; "value": "64"; }, { "name": "protoOrcaWhirlpoolsPermCollectFees"; "type": "u64"; "value": "16"; }, { "name": "protoOrcaWhirlpoolsPermCollectReward"; "type": "u64"; "value": "32"; }, { "name": "protoOrcaWhirlpoolsPermDecreaseLiquidity"; "type": "u64"; "value": "4"; }, { "name": "protoOrcaWhirlpoolsPermIncreaseLiquidity"; "type": "u64"; "value": "2"; }, { "name": "protoOrcaWhirlpoolsPermIncreaseLiquidityByTokenAmounts"; "type": "u64"; "value": "128"; }, { "name": "protoOrcaWhirlpoolsPermInitializeTickArray"; "type": "u64"; "value": "512"; }, { "name": "protoOrcaWhirlpoolsPermOpenPosition"; "type": "u64"; "value": "1"; }, { "name": "protoOrcaWhirlpoolsPermRepositionLiquidity"; "type": "u64"; "value": "256"; }, { "name": "protoOrcaWhirlpoolsPermUpdateFeesAndRewards"; "type": "u64"; "value": "8"; } ]; };