/** * 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/glam_protocol.json`. */ export type GlamProtocol = { "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz", "metadata": { "name": "glamProtocol", "version": "1.0.4", "spec": "0.1.0", "description": "Glam Protocol" }, "instructions": [ { "name": "cancelTimelock", "discriminator": [ 158, 180, 47, 81, 133, 231, 168, 238 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamSigner", "writable": true, "signer": true } ], "args": [] }, { "name": "closeState", "discriminator": [ 25, 1, 184, 101, 200, 245, 210, 246 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamVault", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 118, 97, 117, 108, 116 ] }, { "kind": "account", "path": "glamState" } ] } }, { "name": "glamSigner", "writable": true, "signer": true }, { "name": "systemProgram", "address": "11111111111111111111111111111111" } ], "args": [] }, { "name": "cpiProxy", "docs": [ "Only accessible by integration programs" ], "discriminator": [ 65, 134, 48, 2, 7, 232, 199, 46 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamVault", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 118, 97, 117, 108, 116 ] }, { "kind": "account", "path": "glamState" } ] } }, { "name": "glamSigner", "writable": true, "signer": true }, { "name": "cpiProgram" }, { "name": "integrationAuthority", "signer": true }, { "name": "systemProgram", "address": "11111111111111111111111111111111" } ], "args": [ { "name": "data", "type": "bytes" }, { "name": "extraParams", "type": { "vec": { "defined": { "name": "extraParams" } } } } ] }, { "name": "emergencyAccessUpdate", "docs": [ "Bypasses the timelock for emergency updates on access control rules. Allowed operations:", "- removing an integration program", "- removing a delegate", "- enabling/disabling glam state" ], "discriminator": [ 207, 247, 157, 14, 87, 132, 230, 0 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamSigner", "writable": true, "signer": true } ], "args": [ { "name": "args", "type": { "defined": { "name": "emergencyAccessUpdateArgs" } } } ] }, { "name": "enableDisableProtocols", "discriminator": [ 222, 198, 164, 163, 194, 161, 11, 171 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamSigner", "writable": true, "signer": true } ], "args": [ { "name": "integrationProgram", "type": "pubkey" }, { "name": "protocolsBitmask", "type": "u16" }, { "name": "setEnabled", "type": "bool" } ] }, { "name": "extendState", "discriminator": [ 34, 147, 151, 206, 134, 128, 82, 228 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamSigner", "writable": true, "signer": true }, { "name": "systemProgram", "address": "11111111111111111111111111111111" } ], "args": [ { "name": "bytes", "type": "u32" } ] }, { "name": "grantRevokeDelegatePermissions", "discriminator": [ 162, 21, 218, 157, 218, 86, 114, 171 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamSigner", "writable": true, "signer": true } ], "args": [ { "name": "delegate", "type": "pubkey" }, { "name": "integrationProgram", "type": "pubkey" }, { "name": "protocolBitflag", "type": "u16" }, { "name": "permissionsBitmask", "type": "u64" }, { "name": "setGranted", "type": "bool" } ] }, { "name": "initializeState", "discriminator": [ 190, 171, 224, 219, 217, 72, 199, 176 ], "accounts": [ { "name": "glamState", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 115, 116, 97, 116, 101 ] }, { "kind": "account", "path": "glamSigner" }, { "kind": "arg", "path": "state_model.created" } ] } }, { "name": "glamSigner", "writable": true, "signer": true }, { "name": "systemProgram", "address": "11111111111111111111111111111111" }, { "name": "baseAssetMint" } ], "args": [ { "name": "state", "type": { "defined": { "name": "stateModel" } } } ] }, { "name": "jupiterSwap", "discriminator": [ 116, 207, 0, 196, 252, 120, 243, 18 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamVault", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 118, 97, 117, 108, 116 ] }, { "kind": "account", "path": "glamState" } ] } }, { "name": "glamSigner", "writable": true, "signer": true }, { "name": "cpiProgram", "address": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4" }, { "name": "inputStakePool", "optional": true }, { "name": "outputStakePool", "optional": true } ], "args": [ { "name": "data", "type": "bytes" } ] }, { "name": "jupiterSwapV2", "discriminator": [ 28, 155, 14, 63, 87, 96, 62, 221 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamVault", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 118, 97, 117, 108, 116 ] }, { "kind": "account", "path": "glamState" } ] } }, { "name": "glamSigner", "writable": true, "signer": true }, { "name": "cpiProgram", "address": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4" }, { "name": "inputStakePool", "optional": true }, { "name": "outputStakePool", "optional": true }, { "name": "glamConfig", "optional": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 108, 111, 98, 97, 108, 45, 99, 111, 110, 102, 105, 103 ] } ], "program": { "kind": "const", "value": [ 10, 11, 0, 83, 72, 16, 46, 144, 46, 42, 79, 22, 157, 123, 21, 242, 192, 146, 1, 78, 88, 59, 102, 9, 190, 226, 92, 189, 187, 232, 83, 220 ] } } }, { "name": "solUsdOracle", "optional": true }, { "name": "inputTokenOracle", "optional": true }, { "name": "outputTokenOracle", "optional": true } ], "args": [ { "name": "skipQuotePriceCheck", "type": "bool" }, { "name": "data", "type": "bytes" } ] }, { "name": "linkUnlinkMintByMintAuthority", "docs": [ "For glam mint program's use only" ], "discriminator": [ 85, 67, 58, 245, 175, 14, 122, 6 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamMint" }, { "name": "glamMintAuthority", "signer": true } ], "args": [ { "name": "link", "type": "bool" } ] }, { "name": "resetPricedProtocolsByMintAuthority", "docs": [ "For glam mint program's use only" ], "discriminator": [ 86, 95, 153, 145, 179, 181, 107, 235 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamMint" }, { "name": "glamMintAuthority", "signer": true } ], "args": [] }, { "name": "setJupiterSwapPolicy", "discriminator": [ 189, 182, 227, 165, 127, 148, 246, 189 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamSigner", "writable": true, "signer": true } ], "args": [ { "name": "policy", "type": { "defined": { "name": "jupiterSwapPolicy" } } } ] }, { "name": "setProtocolPolicy", "discriminator": [ 37, 99, 61, 122, 227, 102, 182, 180 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamSigner", "writable": true, "signer": true } ], "args": [ { "name": "integrationProgram", "type": "pubkey" }, { "name": "protocolBitflag", "type": "u16" }, { "name": "data", "type": "bytes" } ] }, { "name": "setProtocolPolicyByIntegrationAuthority", "discriminator": [ 225, 50, 176, 197, 142, 211, 77, 101 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "integrationProgram" }, { "name": "integrationAuthority", "signer": true, "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 ] } ], "program": { "kind": "account", "path": "integrationProgram" } } } ], "args": [ { "name": "protocolBitflag", "type": "u16" }, { "name": "data", "type": "bytes" } ] }, { "name": "setSystemTransferPolicy", "discriminator": [ 102, 21, 157, 101, 19, 4, 100, 213 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamSigner", "writable": true, "signer": true } ], "args": [ { "name": "policy", "type": { "defined": { "name": "transferPolicy" } } } ] }, { "name": "systemTransfer", "docs": [ "Transfers SOL from the vault to another account.", "", "Token program ID is required as a remaining account when wrapping SOL (i.e., transfer to wSOL token account)." ], "discriminator": [ 167, 164, 195, 155, 219, 152, 191, 230 ], "accounts": [ { "name": "glamState" }, { "name": "glamVault", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 118, 97, 117, 108, 116 ] }, { "kind": "account", "path": "glamState" } ] } }, { "name": "glamSigner", "writable": true, "signer": true }, { "name": "cpiProgram", "address": "11111111111111111111111111111111" }, { "name": "to", "writable": true } ], "args": [ { "name": "lamports", "type": "u64" } ] }, { "name": "tokenTransferCheckedByMintAuthority", "docs": [ "For glam mint program's use only" ], "discriminator": [ 37, 131, 188, 85, 45, 183, 8, 81 ], "accounts": [ { "name": "glamState" }, { "name": "glamVault", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 118, 97, 117, 108, 116 ] }, { "kind": "account", "path": "glamState" } ] } }, { "name": "glamMint", "writable": true }, { "name": "glamMintAuthority", "writable": true, "signer": true }, { "name": "from", "writable": true }, { "name": "to", "writable": true }, { "name": "mint" }, { "name": "tokenProgram" } ], "args": [ { "name": "amount", "type": "u64" }, { "name": "decimals", "type": "u8" } ] }, { "name": "updateMintParams", "discriminator": [ 45, 42, 115, 25, 179, 27, 57, 191 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamSigner", "writable": true, "signer": true } ], "args": [ { "name": "params", "type": { "vec": { "defined": { "name": "engineField" } } } } ] }, { "name": "updateMintParamsByMintAuthority", "docs": [ "For glam mint program's use only, timelock is not enforced" ], "discriminator": [ 94, 160, 55, 53, 175, 225, 62, 118 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamMint" }, { "name": "glamMintAuthority", "signer": true } ], "args": [ { "name": "params", "type": { "vec": { "defined": { "name": "engineField" } } } } ] }, { "name": "updatePricedProtocol", "docs": [ "Only accessible by integration programs" ], "discriminator": [ 10, 106, 94, 171, 118, 217, 62, 98 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "integrationAuthority", "signer": true } ], "args": [ { "name": "pricedProtocol", "type": { "defined": { "name": "pricedProtocol" } } } ] }, { "name": "updateState", "discriminator": [ 135, 112, 215, 75, 247, 185, 53, 176 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamSigner", "writable": true, "signer": true } ], "args": [ { "name": "state", "type": { "defined": { "name": "stateModel" } } } ] }, { "name": "updateStateApplyTimelock", "discriminator": [ 66, 12, 138, 80, 133, 85, 46, 220 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamSigner", "writable": true, "signer": true } ], "args": [] } ], "accounts": [ { "name": "stateAccount", "discriminator": [ 142, 247, 54, 95, 85, 133, 249, 103 ] } ], "errors": [ { "code": 48000, "name": "unauthorizedSigner", "msg": "Signer is not authorized" }, { "code": 48001, "name": "unauthorizedIntegrationProgram", "msg": "Integration program is not authorized" }, { "code": 48002, "name": "integrationNotEnabled", "msg": "Integration is not enabled" }, { "code": 48003, "name": "protocolNotEnabled", "msg": "Protocol is not enabled" }, { "code": 48004, "name": "glamStateDisabled", "msg": "GLAM state is disabled" }, { "code": 48005, "name": "protocolPolicyViolation", "msg": "Protocol policy violation" }, { "code": 48006, "name": "emergencyUpdateDenied", "msg": "Emergency update denied" }, { "code": 48007, "name": "timelockStillActive", "msg": "Timelock still active" }, { "code": 48008, "name": "cannotApplyChanges", "msg": "Pending changes cannot be applied due to unfulfilled requests" }, { "code": 48009, "name": "assetNotBorrowable", "msg": "Asset is not allowed to borrow" }, { "code": 48010, "name": "unexpectedProgramOwner", "msg": "Account is owned by an unexpected program" }, { "code": 48011, "name": "invalidAuthority", "msg": "Invalid authority" }, { "code": 49000, "name": "invalidAccountType", "msg": "Invalid account type" }, { "code": 49001, "name": "invalidName", "msg": "Invalid name" }, { "code": 49002, "name": "invalidSymbol", "msg": "Symbol too long: max 32 chars" }, { "code": 49003, "name": "invalidUri", "msg": "Uri too long: max 128 chars" }, { "code": 49004, "name": "invalidAssetsLen", "msg": "Too many assets: max 100" }, { "code": 49005, "name": "invalidIxArgs", "msg": "Invalid instruction arguments" }, { "code": 49006, "name": "cannotCloseState", "msg": "Glam state cannot be closed: mint must be closed and state must be disabled" }, { "code": 49007, "name": "invalidMintParams", "msg": "Invalid mint params" }, { "code": 49008, "name": "invalidRemainingAccounts", "msg": "Invalid accounts: the transaction is malformed" }, { "code": 49009, "name": "invalidVaultTokenAccount", "msg": "Invalid vault ata" }, { "code": 49010, "name": "nonZeroSupply", "msg": "Glam mint supply not zero" }, { "code": 49011, "name": "missingAccount", "msg": "An account required by the instruction is missing" }, { "code": 49012, "name": "invalidTimestamp", "msg": "Invalid timestamp" }, { "code": 49013, "name": "engineFieldNotFound", "msg": "Engine field not found" }, { "code": 49014, "name": "invalidBaseAsset", "msg": "Invalid base asset" }, { "code": 49015, "name": "invalidProtocolBitflag", "msg": "Invalid protocol bitflag" }, { "code": 49016, "name": "staleDriftInterest", "msg": "Drift spot market cumulative interest is stale" }, { "code": 49017, "name": "assetBalanceNotZero", "msg": "Cannot delete asset: vault token account balance is not zero" }, { "code": 49018, "name": "cannotDeleteBaseAsset", "msg": "Cannot delete base asset from allowlist" }, { "code": 49019, "name": "integrationAclLimitExceeded", "msg": "Integration ACL limit exceeded" }, { "code": 49020, "name": "delegateAclLimitExceeded", "msg": "Delegate ACL limit exceeded" }, { "code": 49021, "name": "invalidFeeStructure", "msg": "Invalid fee structure" }, { "code": 50000, "name": "withdrawDenied", "msg": "Withdraw denied. Only vaults allow withdraws (funds and mints don't)" }, { "code": 50001, "name": "invalidAssetForSwap", "msg": "Asset cannot be swapped" }, { "code": 50002, "name": "unsupportedSwapIx", "msg": "Unsupported swap instruction" }, { "code": 50003, "name": "slippageLimitExceeded", "msg": "Max slippage exceeded" }, { "code": 50004, "name": "invalidPlatformFeeForSwap", "msg": "Invalid platform fee" }, { "code": 50005, "name": "invalidTokenAccount", "msg": "Invalid token account" }, { "code": 50006, "name": "invalidSwapAmount", "msg": "Invalid swap amount" }, { "code": 50007, "name": "multipleStakeAccountsDisallowed", "msg": "Multiple stake accounts disallowed" }, { "code": 50008, "name": "maxDeviationExceeded", "msg": "Max deviation exceeded" }, { "code": 51000, "name": "invalidAssetPrice", "msg": "Invalid asset price" }, { "code": 51001, "name": "invalidStableCoinPriceForSubscribe", "msg": "Subscription not allowed: invalid stable coin price" }, { "code": 51100, "name": "invalidPricingOracle", "msg": "Invalid oracle for asset price" }, { "code": 51101, "name": "pricingError", "msg": "Pricing error" }, { "code": 51102, "name": "priceTooOld", "msg": "Price is too old" }, { "code": 51103, "name": "externalPositionsNotPriced", "msg": "Not all external vault accounts are priced" }, { "code": 51104, "name": "vaultTokensNotPriced", "msg": "Not all vault tokens are priced" }, { "code": 51105, "name": "priceDivergenceTooLarge", "msg": "No priced assets found" }, { "code": 51106, "name": "positiveAumRequired", "msg": "AUM must be positive" }, { "code": 51107, "name": "mathError", "msg": "Math error" }, { "code": 51108, "name": "typeCastingError", "msg": "Type casting error" }, { "code": 51109, "name": "baseAssetNotSupported", "msg": "Base asset must have 6 decimals." }, { "code": 51110, "name": "invalidQuoteSpotMarket", "msg": "Unsupported spot market for perp quotes" }, { "code": 51111, "name": "unknownExternalVaultAsset", "msg": "Unknown external vault account" }, { "code": 51112, "name": "invalidPriceDenom", "msg": "Invalid price denom" }, { "code": 51113, "name": "unexpectedDiscriminator", "msg": "Invalid account: discriminator mismatch" }, { "code": 51114, "name": "invalidAccountData", "msg": "Invalid account data" }, { "code": 51115, "name": "oraclePriceSuspended", "msg": "Oracle price is suspended" }, { "code": 51116, "name": "assetNotInPricingSet", "msg": "Asset not in pricing set" }, { "code": 50100, "name": "transferRateLimitExceeded", "msg": "Transfer rate limit exceeded" }, { "code": 50101, "name": "transferRateLimitDenied", "msg": "Transfer denied: no rate limit defined for this asset" }, { "code": 52000, "name": "transfersDisabled", "msg": "Policy violation: transfers disabled" }, { "code": 52001, "name": "invalidPolicyAccount", "msg": "Policy account is mandatory" }, { "code": 52002, "name": "amountTooBig", "msg": "Policy violation: amount too big" }, { "code": 52003, "name": "lockUp", "msg": "Policy violation: lock-up has not expired" }, { "code": 52004, "name": "policyNotSet", "msg": "Protocol policy not set" }, { "code": 52005, "name": "unsupportedOracleSource", "msg": "Oracle source not supported in this context" } ], "types": [ { "name": "accountType", "type": { "kind": "enum", "variants": [ { "name": "vault" }, { "name": "tokenizedVault" }, { "name": "mint" }, { "name": "singleAssetVault" } ] } }, { "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": "actionType", "type": { "kind": "enum", "variants": [ { "name": "addExternalAccount" }, { "name": "deleteExternalAccount" }, { "name": "deleteExternalAccountIfZeroLamports" }, { "name": "deleteExternalAccountIfZeroBalance" }, { "name": "addAsset" }, { "name": "deleteAsset" } ] } }, { "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": "emergencyAccessUpdateArgs", "type": { "kind": "struct", "fields": [ { "name": "disabledIntegrations", "type": { "vec": "pubkey" } }, { "name": "disabledDelegates", "type": { "vec": "pubkey" } }, { "name": "stateEnabled", "type": { "option": "bool" } } ] } }, { "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": "extraParams", "type": { "kind": "struct", "fields": [ { "name": "actionType", "type": { "defined": { "name": "actionType" } } }, { "name": "pubkey", "type": "pubkey" }, { "name": "amount", "type": { "option": "u64" } } ] } }, { "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": "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": "jupiterSwapPolicy", "type": { "kind": "struct", "fields": [ { "name": "maxSlippageBps", "type": "u16" }, { "name": "swapAllowlist", "type": { "option": { "vec": "pubkey" } } }, { "name": "maxDeviationBps", "type": "i16" } ] } }, { "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": "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": "stateModel", "type": { "kind": "struct", "fields": [ { "name": "accountType", "type": { "option": { "defined": { "name": "accountType" } } } }, { "name": "name", "type": { "option": { "array": [ "u8", 32 ] } } }, { "name": "uri", "type": { "option": "string" } }, { "name": "enabled", "type": { "option": "bool" } }, { "name": "assets", "type": { "option": { "vec": "pubkey" } } }, { "name": "created", "type": { "option": { "defined": { "name": "createdModel" } } } }, { "name": "owner", "type": { "option": "pubkey" } }, { "name": "portfolioManagerName", "type": { "option": { "array": [ "u8", 32 ] } } }, { "name": "borrowable", "type": { "option": { "vec": "pubkey" } } }, { "name": "timelockDuration", "type": { "option": "u32" } }, { "name": "integrationAcls", "type": { "option": { "vec": { "defined": { "name": "integrationAcl" } } } } }, { "name": "delegateAcls", "type": { "option": { "vec": { "defined": { "name": "delegateAcl" } } } } } ] } }, { "name": "timeUnit", "type": { "kind": "enum", "variants": [ { "name": "second" }, { "name": "slot" } ] } }, { "name": "transferPolicy", "type": { "kind": "struct", "fields": [ { "name": "allowlist", "type": { "vec": "pubkey" } } ] } }, { "name": "valuationModel", "type": { "kind": "enum", "variants": [ { "name": "continuous" }, { "name": "periodic" } ] } } ], "constants": [ { "name": "protoJupiterSwap", "type": "u16", "value": "4" }, { "name": "protoJupiterSwapPermSkipQuotePriceCheck", "type": "u64", "value": "32" }, { "name": "protoJupiterSwapPermSkipQuotePriceCheckLimited", "type": "u64", "value": "16" }, { "name": "protoJupiterSwapPermSwapAllowlisted", "type": "u64", "value": "4" }, { "name": "protoJupiterSwapPermSwapFromAny", "type": "u64", "value": "8" }, { "name": "protoJupiterSwapPermSwapLst", "type": "u64", "value": "2" }, { "name": "protoJupiterSwapPermSwapToAny", "type": "u64", "value": "1" }, { "name": "protoStake", "type": "u16", "value": "2" }, { "name": "protoStakePermStake", "type": "u64", "value": "1" }, { "name": "protoStakePermUnstake", "type": "u64", "value": "2" }, { "name": "protoSystem", "type": "u16", "value": "1" }, { "name": "protoSystemPermEmergencyUpdate", "type": "u64", "value": "4" }, { "name": "protoSystemPermTransfer", "type": "u64", "value": "2" }, { "name": "protoSystemPermWsol", "type": "u64", "value": "1" } ] };