/** * 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_jupiter.json`. */ export type ExtJupiter = { "address": "G1NTJX2noRfJeKS7NDgjsqUXcJ7R9yARED1LQvg7iwSK"; "metadata": { "name": "extJupiter"; "version": "0.1.0"; "spec": "0.1.0"; "description": "Jupiter Lend integration for GLAM Protocol"; }; "instructions": [ { "name": "borrowInitPosition"; "docs": [ "Initialize a Jupiter Borrow position NFT owned by the GLAM vault.", "", "- Permission: `BorrowPermissions::InitPosition`.", "- Policy: `vault_state` must be in `BorrowPolicy::vaults_allowlist`." ]; "discriminator": [ 92, 209, 176, 14, 75, 243, 107, 230 ]; "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": "jupr81YtYssSyPt8jbnGuiWon5f6x9TcDEFxYe3Bdzi"; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; }, { "name": "vaultAdmin"; }, { "name": "vaultState"; "writable": true; }, { "name": "position"; "writable": true; }, { "name": "positionMint"; "writable": true; }, { "name": "positionTokenAccount"; "writable": true; }, { "name": "metadataAccount"; "writable": true; }, { "name": "tokenProgram"; }, { "name": "associatedTokenProgram"; "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"; }, { "name": "sysvarInstruction"; "address": "Sysvar1nstructions1111111111111111111111111"; }, { "name": "metadataProgram"; "address": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"; }, { "name": "rent"; "address": "SysvarRent111111111111111111111111111111111"; } ]; "args": [ { "name": "vaultId"; "type": "u16"; }, { "name": "nextPositionId"; "type": "u32"; } ]; }, { "name": "borrowOperate"; "docs": [ "Operate a Jupiter Borrow position.", "", "Required permissions are derived from signed deltas:", "positive collateral = deposit, negative collateral = withdraw,", "positive debt = borrow, negative debt = repay." ]; "discriminator": [ 46, 121, 58, 48, 13, 5, 117, 188 ]; "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": "jupr81YtYssSyPt8jbnGuiWon5f6x9TcDEFxYe3Bdzi"; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; }, { "name": "signerSupplyTokenAccount"; "writable": true; }, { "name": "signerBorrowTokenAccount"; "writable": true; }, { "name": "recipient"; "optional": true; }, { "name": "recipientBorrowTokenAccount"; "writable": true; "optional": true; }, { "name": "recipientSupplyTokenAccount"; "writable": true; "optional": true; }, { "name": "vaultConfig"; }, { "name": "vaultState"; "writable": true; }, { "name": "supplyToken"; }, { "name": "borrowToken"; }, { "name": "oracle"; }, { "name": "position"; "writable": true; }, { "name": "positionTokenAccount"; }, { "name": "currentPositionTick"; "writable": true; }, { "name": "finalPositionTick"; "writable": true; }, { "name": "currentPositionTickId"; }, { "name": "finalPositionTickId"; "writable": true; }, { "name": "newBranch"; "writable": true; }, { "name": "supplyTokenReservesLiquidity"; "writable": true; }, { "name": "borrowTokenReservesLiquidity"; "writable": true; }, { "name": "vaultSupplyPositionOnLiquidity"; "writable": true; }, { "name": "vaultBorrowPositionOnLiquidity"; "writable": true; }, { "name": "supplyRateModel"; }, { "name": "borrowRateModel"; }, { "name": "vaultSupplyTokenAccount"; "writable": true; }, { "name": "vaultBorrowTokenAccount"; "writable": true; }, { "name": "supplyTokenClaimAccount"; "writable": true; "optional": true; }, { "name": "borrowTokenClaimAccount"; "writable": true; "optional": true; }, { "name": "liquidity"; }, { "name": "liquidityProgram"; "address": "jupeiUmn818Jg1ekPURTpr4mFo29p46vygyykFJ3wZC"; }, { "name": "oracleProgram"; "address": "jupnw4B6Eqs7ft6rxpzYLJZYSnrpRgPcr589n5Kv4oc"; }, { "name": "supplyTokenProgram"; }, { "name": "borrowTokenProgram"; }, { "name": "associatedTokenProgram"; "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"; } ]; "args": [ { "name": "newCol"; "type": "i128"; }, { "name": "newDebt"; "type": "i128"; }, { "name": "transferType"; "type": { "option": { "defined": { "name": "transferType"; }; }; }; }, { "name": "remainingAccountsIndices"; "type": "bytes"; } ]; }, { "name": "earnDeposit"; "docs": [ "Deposit underlying tokens into Jupiter Earn and mint jlTokens to the GLAM vault.", "", "- Permission: `EarnPermissions::Deposit`.", "- Policy: underlying `mint` must be in `EarnPolicy::mints_allowlist`." ]; "discriminator": [ 81, 98, 113, 207, 82, 192, 187, 234 ]; "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": "jup3YeL8QhtSx1e253b2FDvsMNC87fDrgQZivbrndc9"; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; }, { "name": "depositorTokenAccount"; "writable": true; }, { "name": "recipientTokenAccount"; "writable": true; }, { "name": "mint"; }, { "name": "lendingAdmin"; }, { "name": "lending"; "writable": true; }, { "name": "fTokenMint"; "writable": true; }, { "name": "supplyTokenReservesLiquidity"; "writable": true; }, { "name": "lendingSupplyPositionOnLiquidity"; "writable": true; }, { "name": "rateModel"; }, { "name": "vault"; "writable": true; }, { "name": "liquidity"; "writable": true; }, { "name": "liquidityProgram"; "writable": true; "address": "jupeiUmn818Jg1ekPURTpr4mFo29p46vygyykFJ3wZC"; }, { "name": "rewardsRateModel"; }, { "name": "tokenProgram"; }, { "name": "associatedTokenProgram"; "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"; } ]; "args": [ { "name": "assets"; "type": "u64"; }, { "name": "minAmountOut"; "type": "u64"; } ]; }, { "name": "earnWithdraw"; "docs": [ "Burn Jupiter Earn jlTokens and withdraw underlying tokens to the GLAM vault.", "", "- Permission: `EarnPermissions::Withdraw`.", "- Policy: underlying `mint` must be in `EarnPolicy::mints_allowlist`." ]; "discriminator": [ 68, 169, 40, 28, 165, 60, 157, 98 ]; "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": "jup3YeL8QhtSx1e253b2FDvsMNC87fDrgQZivbrndc9"; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; }, { "name": "ownerTokenAccount"; "writable": true; }, { "name": "recipientTokenAccount"; "writable": true; }, { "name": "lendingAdmin"; }, { "name": "lending"; "writable": true; }, { "name": "mint"; }, { "name": "fTokenMint"; "writable": true; }, { "name": "supplyTokenReservesLiquidity"; "writable": true; }, { "name": "lendingSupplyPositionOnLiquidity"; "writable": true; }, { "name": "rateModel"; }, { "name": "vault"; "writable": true; }, { "name": "claimAccount"; "writable": true; }, { "name": "liquidity"; "writable": true; }, { "name": "liquidityProgram"; "writable": true; "address": "jupeiUmn818Jg1ekPURTpr4mFo29p46vygyykFJ3wZC"; }, { "name": "rewardsRateModel"; }, { "name": "tokenProgram"; }, { "name": "associatedTokenProgram"; "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"; } ]; "args": [ { "name": "amount"; "type": "u64"; }, { "name": "maxSharesBurn"; "type": "u64"; } ]; }, { "name": "setBorrowPolicy"; "docs": [ "Set the Jupiter Borrow policy on the GLAM state." ]; "discriminator": [ 199, 94, 106, 205, 150, 227, 206, 68 ]; "accounts": [ { "name": "glamState"; "writable": true; }, { "name": "glamSigner"; "writable": true; "signer": true; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; } ]; "args": [ { "name": "policy"; "type": { "defined": { "name": "borrowPolicy"; }; }; } ]; }, { "name": "setEarnPolicy"; "docs": [ "Set the Jupiter Earn policy on the GLAM state." ]; "discriminator": [ 48, 17, 31, 62, 132, 232, 114, 96 ]; "accounts": [ { "name": "glamState"; "writable": true; }, { "name": "glamSigner"; "writable": true; "signer": true; }, { "name": "glamProtocolProgram"; "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"; } ]; "args": [ { "name": "policy"; "type": { "defined": { "name": "earnPolicy"; }; }; } ]; } ]; "accounts": [ { "name": "stateAccount"; "discriminator": [ 142, 247, 54, 95, 85, 133, 249, 103 ]; } ]; "errors": [ { "code": 6000; "name": "unexpectedSigner"; "msg": "Unexpected signer privilege passed to Jupiter CPI"; }, { "code": 6001; "name": "invalidVaultTokenAccount"; "msg": "Vault token account must be the GLAM vault ATA for the expected mint"; }, { "code": 6002; "name": "invalidPositionTokenAccount"; "msg": "Position token account must be controlled by the GLAM vault"; }, { "code": 6003; "name": "invalidMetadataAccount"; "msg": "Metadata account must be the Metaplex metadata PDA for the position mint"; }, { "code": 6004; "name": "duplicateMutableAccount"; "msg": "Mutable source and destination accounts must differ"; }, { "code": 6005; "name": "invalidRemainingAccountIndices"; "msg": "Jupiter operate remaining account indices must contain exactly three counts"; }, { "code": 6006; "name": "remainingAccountsCountMismatch"; "msg": "Jupiter operate remaining account counts do not match remaining accounts"; }, { "code": 6007; "name": "noopOperate"; "msg": "Jupiter operate instruction must request at least one position change"; } ]; "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": "borrowPolicy"; "type": { "kind": "struct"; "fields": [ { "name": "vaultsAllowlist"; "type": { "vec": "pubkey"; }; }, { "name": "collateralMintsAllowlist"; "type": { "vec": "pubkey"; }; }, { "name": "borrowMintsAllowlist"; "type": { "vec": "pubkey"; }; } ]; }; }, { "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": "earnPolicy"; "type": { "kind": "struct"; "fields": [ { "name": "mintsAllowlist"; "type": { "vec": "pubkey"; }; } ]; }; }, { "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": "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": "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": "transferType"; "type": { "kind": "enum"; "variants": [ { "name": "skip"; }, { "name": "direct"; }, { "name": "claim"; } ]; }; }, { "name": "valuationModel"; "type": { "kind": "enum"; "variants": [ { "name": "continuous"; }, { "name": "periodic"; } ]; }; } ]; "constants": [ { "name": "protoJupiterBorrow"; "type": "u16"; "value": "2"; }, { "name": "protoJupiterBorrowPermBorrow"; "type": "u64"; "value": "8"; }, { "name": "protoJupiterBorrowPermDepositCollateral"; "type": "u64"; "value": "2"; }, { "name": "protoJupiterBorrowPermInitPosition"; "type": "u64"; "value": "1"; }, { "name": "protoJupiterBorrowPermRepay"; "type": "u64"; "value": "16"; }, { "name": "protoJupiterBorrowPermWithdrawCollateral"; "type": "u64"; "value": "4"; }, { "name": "protoJupiterEarn"; "type": "u16"; "value": "1"; }, { "name": "protoJupiterEarnPermDeposit"; "type": "u64"; "value": "1"; }, { "name": "protoJupiterEarnPermWithdraw"; "type": "u64"; "value": "2"; } ]; };