@glamsystems/glam-cli 1.1.0-alpha.0 → 1.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/main.js +341 -292
- package/package.json +2 -2
package/main.js
CHANGED
|
@@ -14,12 +14,12 @@ tslib_1.__exportStar(__webpack_require__(29), exports);
|
|
|
14
14
|
tslib_1.__exportStar(__webpack_require__(61), exports);
|
|
15
15
|
tslib_1.__exportStar(__webpack_require__(62), exports);
|
|
16
16
|
tslib_1.__exportStar(__webpack_require__(68), exports);
|
|
17
|
-
tslib_1.__exportStar(__webpack_require__(
|
|
18
|
-
tslib_1.__exportStar(__webpack_require__(93), exports);
|
|
19
|
-
tslib_1.__exportStar(__webpack_require__(84), exports);
|
|
17
|
+
tslib_1.__exportStar(__webpack_require__(90), exports);
|
|
20
18
|
tslib_1.__exportStar(__webpack_require__(94), exports);
|
|
19
|
+
tslib_1.__exportStar(__webpack_require__(84), exports);
|
|
21
20
|
tslib_1.__exportStar(__webpack_require__(95), exports);
|
|
22
21
|
tslib_1.__exportStar(__webpack_require__(96), exports);
|
|
22
|
+
tslib_1.__exportStar(__webpack_require__(87), exports);
|
|
23
23
|
tslib_1.__exportStar(__webpack_require__(81), exports);
|
|
24
24
|
tslib_1.__exportStar(__webpack_require__(34), exports);
|
|
25
25
|
tslib_1.__exportStar(__webpack_require__(83), exports);
|
|
@@ -335,7 +335,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"address":"G1NTLoPS5orMCxgFjzNDE5H6c3
|
|
|
335
335
|
/***/ ((module) => {
|
|
336
336
|
|
|
337
337
|
"use strict";
|
|
338
|
-
module.exports = /*#__PURE__*/JSON.parse('{"address":"G1NTNTpbUDVvXHQE6eGgYTBxWpwgLMBBPw4NrZYr5yM5","metadata":{"name":"ext_neutral","version":"0.1.0","spec":"0.1.0","description":"Neutral bundle integration for GLAM Protocol"},"instructions":[{"name":"close_user_bundle_account","docs":["Close an empty Neutral user bundle account and remove it from GLAM external positions.","","- Permission: `CloseUserBundleAccount`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[201,195,126,228,9,173,79,215],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"user_bundle_account","writable":true},{"name":"bundle_account"}],"args":[]},{"name":"initialize_bundle_depositor","docs":["Initialize a non-permissioned Neutral user bundle account for the GLAM vault.","","- Permission: `InitializeBundleDepositor`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[126,6,242,36,22,209,35,2],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"bundle_account","writable":true},{"name":"user_bundle_account","writable":true}],"args":[]},{"name":"initialize_permissioned_bundle_depositor","docs":["Initialize a permissioned Neutral user bundle account for the GLAM vault.","","- Permission: `InitializePermissionedBundleDepositor`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[157,162,213,42,205,201,37,255],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"bundle_account","writable":true},{"name":"user_bundle_account","writable":true}],"args":[]},{"name":"request_deposit","docs":["Request a Neutral bundle deposit from the GLAM vault\'s token account.","","- Permission: `RequestDeposit`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[243,202,197,215,135,97,213,109],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"user_token_account","writable":true},{"name":"pending_deposit_token_account","writable":true},{"name":"treasury_account","writable":true},{"name":"user_bundle_account","writable":true},{"name":"asset_address","writable":true},{"name":"oracle_data","writable":true},{"name":"bundle_temp_data","writable":true},{"name":"bundle_account","writable":true},{"name":"pending_bundle_asset_authority","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"}],"args":[{"name":"amount","type":"u64"}]},{"name":"request_withdrawal","docs":["Request a Neutral bundle withdrawal for the GLAM vault.","","- Permission: `RequestWithdrawal`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[251,85,121,205,56,201,12,177],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"user_bundle_account","writable":true},{"name":"bundle_account","writable":true},{"name":"oracle_data","writable":true},{"name":"bundle_temp_data","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"rent","address":"SysvarRent111111111111111111111111111111111"}],"args":[{"name":"shares_amount","type":"u128"},{"name":"min_estimated_value","type":"u64"}]},{"name":"set_neutral_policy","docs":["Set the Neutral bundle allowlist policy."],"discriminator":[82,190,30,24,221,135,158,215],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_protocol_program","address":"GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"}],"args":[{"name":"policy","type":{"defined":{"name":"NeutralPolicy"}}}]}],"accounts":[{"name":"StateAccount","discriminator":[142,247,54,95,85,133,249,103]}],"errors":[{"code":6000,"name":"InvalidNeutralAccount","msg":"Invalid Neutral account"},{"code":6001,"name":"InvalidNeutralDiscriminator","msg":"Invalid Neutral account discriminator"},{"code":6002,"name":"InvalidNeutralPda","msg":"Invalid Neutral PDA"},{"code":6003,"name":"InvalidTokenAccount","msg":"Invalid token account"},{"code":6004,"name":"InvalidAmount","msg":"Invalid amount"},{"code":6005,"name":"BundleAllowlistTooLarge","msg":"Neutral bundle allowlist exceeds the maximum length"},{"code":6006,"name":"DefaultBundleNotAllowed","msg":"Neutral bundle allowlist contains the default pubkey"},{"code":6007,"name":"DuplicateBundle","msg":"Neutral bundle allowlist contains a duplicate bundle"},{"code":6008,"name":"InvalidPermissionMode","msg":"Neutral bundle permission mode does not match the instruction"},{"code":6009,"name":"UnexpectedSigner","msg":"Unexpected signer passed to Neutral CPI"},{"code":6010,"name":"DuplicateAccount","msg":"Duplicate account passed to Neutral CPI"},{"code":6011,"name":"ArithmeticOverflow","msg":"Arithmetic overflow during Neutral validation"},{"code":6012,"name":"InvalidUserBundleAccount","msg":"Invalid user bundle account"},{"code":6013,"name":"UserBundleAccountNotEmpty","msg":"User bundle account is not empty"},{"code":6014,"name":"UserBundleAccountAlreadyInitialized","msg":"User bundle account is already initialized"},{"code":6015,"name":"UserBundleAccountNotClosed","msg":"User bundle account was not closed"},{"code":6016,"name":"UnsupportedTokenProgram","msg":"Neutral asset mint must be owned by the legacy SPL Token program"},{"code":6017,"name":"EstimatedWithdrawalValueTooLow","msg":"Estimated withdrawal value is below the caller minimum"}],"types":[{"name":"AccountType","type":{"kind":"enum","variants":[{"name":"Vault"},{"name":"TokenizedVault"},{"name":"Mint"},{"name":"SingleAssetVault"}]}},{"name":"AccruedFees","type":{"kind":"struct","fields":[{"name":"vault_subscription_fee","type":"u128"},{"name":"vault_redemption_fee","type":"u128"},{"name":"manager_subscription_fee","type":"u128"},{"name":"manager_redemption_fee","type":"u128"},{"name":"management_fee","type":"u128"},{"name":"performance_fee","type":"u128"},{"name":"protocol_base_fee","type":"u128"},{"name":"protocol_flow_fee","type":"u128"}]}},{"name":"CreatedModel","type":{"kind":"struct","fields":[{"name":"key","type":{"array":["u8",8]}},{"name":"created_by","type":"pubkey"},{"name":"created_at","type":"i64"}]}},{"name":"DelegateAcl","type":{"kind":"struct","fields":[{"name":"pubkey","type":"pubkey"},{"name":"integration_permissions","type":{"vec":{"defined":{"name":"IntegrationPermissions"}}}},{"name":"expires_at","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":"subscription_fee_bps","type":"u16"},{"name":"redemption_fee_bps","type":"u16"}]}},{"name":"FeeParams","type":{"kind":"struct","fields":[{"name":"year_in_seconds","type":"u32"},{"name":"pa_high_water_mark","type":"i128"},{"name":"pa_last_nav","type":"i128"},{"name":"last_aum","type":"i128"},{"name":"last_performance_fee_crystallized","type":"i64"},{"name":"last_management_fee_crystallized","type":"i64"},{"name":"last_protocol_fee_crystallized","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":"integration_program","type":"pubkey"},{"name":"protocols_bitmask","type":"u16"},{"name":"protocol_policies","type":{"vec":{"defined":{"name":"ProtocolPolicy"}}}}]}},{"name":"IntegrationPermissions","docs":["Stores delegate permissions for an integration program."],"type":{"kind":"struct","fields":[{"name":"integration_program","type":"pubkey"},{"name":"protocol_permissions","type":{"vec":{"defined":{"name":"ProtocolPermissions"}}}}]}},{"name":"ManagementFee","type":{"kind":"struct","fields":[{"name":"fee_bps","type":"u16"}]}},{"name":"NeutralPolicy","type":{"kind":"struct","fields":[{"name":"bundles_allowlist","type":{"vec":"pubkey"}}]}},{"name":"NoticePeriodType","type":{"kind":"enum","variants":[{"name":"Hard"},{"name":"Soft"}]}},{"name":"NotifyAndSettle","type":{"kind":"struct","fields":[{"name":"model","type":{"defined":{"name":"ValuationModel"}}},{"name":"permissionless_fulfillment","type":"bool"},{"name":"subscribe_notice_period_type","type":{"defined":{"name":"NoticePeriodType"}}},{"name":"subscribe_notice_period","type":"u64"},{"name":"subscribe_settlement_period","type":"u64"},{"name":"subscribe_cancellation_window","type":"u64"},{"name":"redeem_notice_period_type","type":{"defined":{"name":"NoticePeriodType"}}},{"name":"redeem_notice_period","type":"u64"},{"name":"redeem_settlement_period","type":"u64"},{"name":"redeem_cancellation_window","type":"u64"},{"name":"time_unit","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":"max_ages_seconds","type":{"vec":{"array":["u16",2]}}},{"name":"padding","type":{"array":["u8",12]}}]}},{"name":"PerformanceFee","type":{"kind":"struct","fields":[{"name":"fee_bps","type":"u16"},{"name":"hurdle_rate_bps","type":"u16"},{"name":"hurdle_type","type":{"defined":{"name":"HurdleType"}}}]}},{"name":"PricedProtocol","type":{"kind":"struct","fields":[{"name":"rent","type":"u64"},{"name":"amount","type":"i128"},{"name":"decimals","type":"u8"},{"name":"last_updated_slot","type":"u64"},{"name":"integration_program","type":"pubkey"},{"name":"protocol_bitflag","type":"u16"},{"name":"positions","type":{"vec":"pubkey"}}]}},{"name":"ProtocolFees","type":{"kind":"struct","fields":[{"name":"base_fee_bps","type":"u16"},{"name":"flow_fee_bps","type":"u16"}]}},{"name":"ProtocolPermissions","docs":["Represents a delegate\'s permissions for a specific protocol"],"type":{"kind":"struct","fields":[{"name":"protocol_bitflag","type":"u16"},{"name":"permissions_bitmask","type":"u64"}]}},{"name":"ProtocolPolicy","docs":["Stores policy data for an integrated protocol.","Integration programs serialize/deserialize this data."],"type":{"kind":"struct","fields":[{"name":"protocol_bitflag","type":"u16"},{"name":"data","type":"bytes"}]}},{"name":"StateAccount","type":{"kind":"struct","fields":[{"name":"account_type","type":{"defined":{"name":"AccountType"}}},{"name":"enabled","type":"bool"},{"name":"vault","type":"pubkey"},{"name":"owner","type":"pubkey"},{"name":"portfolio_manager_name","type":{"array":["u8",32]}},{"name":"created","type":{"defined":{"name":"CreatedModel"}}},{"name":"base_asset_mint","type":"pubkey"},{"name":"base_asset_decimals","type":"u8"},{"name":"base_asset_token_program","type":"u8"},{"name":"name","type":{"array":["u8",32]}},{"name":"timelock_duration","type":"u32"},{"name":"timelock_expires_at","type":"u64"},{"name":"mint","type":"pubkey"},{"name":"assets","type":{"vec":"pubkey"}},{"name":"integration_acls","type":{"vec":{"defined":{"name":"IntegrationAcl"}}}},{"name":"delegate_acls","type":{"vec":{"defined":{"name":"DelegateAcl"}}}},{"name":"external_positions","type":{"vec":"pubkey"}},{"name":"priced_protocols","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"}]}}],"constants":[{"name":"PROTO_NEUTRAL","type":"u16","value":"1"},{"name":"PROTO_NEUTRAL_PERM_CLOSE_USER_BUNDLE_ACCOUNT","type":"u64","value":"16"},{"name":"PROTO_NEUTRAL_PERM_INITIALIZE_BUNDLE_DEPOSITOR","type":"u64","value":"1"},{"name":"PROTO_NEUTRAL_PERM_INITIALIZE_PERMISSIONED_BUNDLE_DEPOSITOR","type":"u64","value":"2"},{"name":"PROTO_NEUTRAL_PERM_REQUEST_DEPOSIT","type":"u64","value":"4"},{"name":"PROTO_NEUTRAL_PERM_REQUEST_WITHDRAWAL","type":"u64","value":"8"}]}');
|
|
338
|
+
module.exports = /*#__PURE__*/JSON.parse('{"address":"G1NTNTpbUDVvXHQE6eGgYTBxWpwgLMBBPw4NrZYr5yM5","metadata":{"name":"ext_neutral","version":"0.1.0","spec":"0.1.0","description":"Neutral bundle integration for GLAM Protocol"},"instructions":[{"name":"close_user_bundle_account","docs":["Close an empty Neutral user bundle account and remove it from GLAM external positions.","","- Permission: `CloseUserBundleAccount`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[201,195,126,228,9,173,79,215],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"user_bundle_account","writable":true},{"name":"bundle_account"}],"args":[]},{"name":"initialize_bundle_depositor","docs":["Initialize a non-permissioned Neutral user bundle account for the GLAM vault.","","- Permission: `InitializeBundleDepositor`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[126,6,242,36,22,209,35,2],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"bundle_account","writable":true},{"name":"user_bundle_account","writable":true}],"args":[]},{"name":"request_deposit","docs":["Request a Neutral bundle deposit from the GLAM vault\'s token account.","","- Permission: `RequestDeposit`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[243,202,197,215,135,97,213,109],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"user_token_account","writable":true},{"name":"pending_deposit_token_account","writable":true},{"name":"treasury_account","writable":true},{"name":"user_bundle_account","writable":true},{"name":"asset_address","writable":true},{"name":"oracle_data","writable":true},{"name":"bundle_temp_data","writable":true},{"name":"bundle_account","writable":true},{"name":"pending_bundle_asset_authority","writable":true},{"name":"token_program"}],"args":[{"name":"amount","type":"u64"}]},{"name":"request_withdrawal","docs":["Request a Neutral bundle withdrawal for the GLAM vault.","","- Permission: `RequestWithdrawal`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[251,85,121,205,56,201,12,177],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"user_bundle_account","writable":true},{"name":"bundle_account","writable":true},{"name":"oracle_data","writable":true},{"name":"bundle_temp_data","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"rent","address":"SysvarRent111111111111111111111111111111111"}],"args":[{"name":"shares_amount","type":"u128"},{"name":"min_estimated_value","type":"u64"}]},{"name":"set_neutral_policy","docs":["Set the Neutral bundle allowlist policy."],"discriminator":[82,190,30,24,221,135,158,215],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_protocol_program","address":"GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz"}],"args":[{"name":"policy","type":{"defined":{"name":"NeutralPolicy"}}}]}],"accounts":[{"name":"StateAccount","discriminator":[142,247,54,95,85,133,249,103]}],"errors":[{"code":6000,"name":"InvalidNeutralAccount","msg":"Invalid Neutral account"},{"code":6001,"name":"InvalidNeutralDiscriminator","msg":"Invalid Neutral account discriminator"},{"code":6002,"name":"InvalidNeutralPda","msg":"Invalid Neutral PDA"},{"code":6003,"name":"InvalidTokenAccount","msg":"Invalid token account"},{"code":6004,"name":"InvalidAmount","msg":"Invalid amount"},{"code":6005,"name":"BundleAllowlistTooLarge","msg":"Neutral bundle allowlist exceeds the maximum length"},{"code":6006,"name":"DefaultBundleNotAllowed","msg":"Neutral bundle allowlist contains the default pubkey"},{"code":6007,"name":"DuplicateBundle","msg":"Neutral bundle allowlist contains a duplicate bundle"},{"code":6008,"name":"InvalidPermissionMode","msg":"Neutral bundle permission mode does not match the instruction"},{"code":6009,"name":"UnexpectedSigner","msg":"Unexpected signer passed to Neutral CPI"},{"code":6010,"name":"DuplicateAccount","msg":"Duplicate account passed to Neutral CPI"},{"code":6011,"name":"ArithmeticOverflow","msg":"Arithmetic overflow during Neutral validation"},{"code":6012,"name":"InvalidUserBundleAccount","msg":"Invalid user bundle account"},{"code":6013,"name":"UserBundleAccountNotEmpty","msg":"User bundle account is not empty"},{"code":6014,"name":"UserBundleAccountAlreadyInitialized","msg":"User bundle account is already initialized"},{"code":6015,"name":"UserBundleAccountNotClosed","msg":"User bundle account was not closed"},{"code":6016,"name":"UnsupportedTokenProgram","msg":"Neutral asset mint must be owned by the legacy SPL Token program"},{"code":6017,"name":"EstimatedWithdrawalValueTooLow","msg":"Estimated withdrawal value is below the caller minimum"}],"types":[{"name":"AccountType","type":{"kind":"enum","variants":[{"name":"Vault"},{"name":"TokenizedVault"},{"name":"Mint"},{"name":"SingleAssetVault"}]}},{"name":"AccruedFees","type":{"kind":"struct","fields":[{"name":"vault_subscription_fee","type":"u128"},{"name":"vault_redemption_fee","type":"u128"},{"name":"manager_subscription_fee","type":"u128"},{"name":"manager_redemption_fee","type":"u128"},{"name":"management_fee","type":"u128"},{"name":"performance_fee","type":"u128"},{"name":"protocol_base_fee","type":"u128"},{"name":"protocol_flow_fee","type":"u128"}]}},{"name":"CreatedModel","type":{"kind":"struct","fields":[{"name":"key","type":{"array":["u8",8]}},{"name":"created_by","type":"pubkey"},{"name":"created_at","type":"i64"}]}},{"name":"DelegateAcl","type":{"kind":"struct","fields":[{"name":"pubkey","type":"pubkey"},{"name":"integration_permissions","type":{"vec":{"defined":{"name":"IntegrationPermissions"}}}},{"name":"expires_at","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":"subscription_fee_bps","type":"u16"},{"name":"redemption_fee_bps","type":"u16"}]}},{"name":"FeeParams","type":{"kind":"struct","fields":[{"name":"year_in_seconds","type":"u32"},{"name":"pa_high_water_mark","type":"i128"},{"name":"pa_last_nav","type":"i128"},{"name":"last_aum","type":"i128"},{"name":"last_performance_fee_crystallized","type":"i64"},{"name":"last_management_fee_crystallized","type":"i64"},{"name":"last_protocol_fee_crystallized","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":"integration_program","type":"pubkey"},{"name":"protocols_bitmask","type":"u16"},{"name":"protocol_policies","type":{"vec":{"defined":{"name":"ProtocolPolicy"}}}}]}},{"name":"IntegrationPermissions","docs":["Stores delegate permissions for an integration program."],"type":{"kind":"struct","fields":[{"name":"integration_program","type":"pubkey"},{"name":"protocol_permissions","type":{"vec":{"defined":{"name":"ProtocolPermissions"}}}}]}},{"name":"ManagementFee","type":{"kind":"struct","fields":[{"name":"fee_bps","type":"u16"}]}},{"name":"NeutralPolicy","type":{"kind":"struct","fields":[{"name":"bundles_allowlist","type":{"vec":"pubkey"}}]}},{"name":"NoticePeriodType","type":{"kind":"enum","variants":[{"name":"Hard"},{"name":"Soft"}]}},{"name":"NotifyAndSettle","type":{"kind":"struct","fields":[{"name":"model","type":{"defined":{"name":"ValuationModel"}}},{"name":"permissionless_fulfillment","type":"bool"},{"name":"subscribe_notice_period_type","type":{"defined":{"name":"NoticePeriodType"}}},{"name":"subscribe_notice_period","type":"u64"},{"name":"subscribe_settlement_period","type":"u64"},{"name":"subscribe_cancellation_window","type":"u64"},{"name":"redeem_notice_period_type","type":{"defined":{"name":"NoticePeriodType"}}},{"name":"redeem_notice_period","type":"u64"},{"name":"redeem_settlement_period","type":"u64"},{"name":"redeem_cancellation_window","type":"u64"},{"name":"time_unit","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":"max_ages_seconds","type":{"vec":{"array":["u16",2]}}},{"name":"padding","type":{"array":["u8",12]}}]}},{"name":"PerformanceFee","type":{"kind":"struct","fields":[{"name":"fee_bps","type":"u16"},{"name":"hurdle_rate_bps","type":"u16"},{"name":"hurdle_type","type":{"defined":{"name":"HurdleType"}}}]}},{"name":"PricedProtocol","type":{"kind":"struct","fields":[{"name":"rent","type":"u64"},{"name":"amount","type":"i128"},{"name":"decimals","type":"u8"},{"name":"last_updated_slot","type":"u64"},{"name":"integration_program","type":"pubkey"},{"name":"protocol_bitflag","type":"u16"},{"name":"positions","type":{"vec":"pubkey"}}]}},{"name":"ProtocolFees","type":{"kind":"struct","fields":[{"name":"base_fee_bps","type":"u16"},{"name":"flow_fee_bps","type":"u16"}]}},{"name":"ProtocolPermissions","docs":["Represents a delegate\'s permissions for a specific protocol"],"type":{"kind":"struct","fields":[{"name":"protocol_bitflag","type":"u16"},{"name":"permissions_bitmask","type":"u64"}]}},{"name":"ProtocolPolicy","docs":["Stores policy data for an integrated protocol.","Integration programs serialize/deserialize this data."],"type":{"kind":"struct","fields":[{"name":"protocol_bitflag","type":"u16"},{"name":"data","type":"bytes"}]}},{"name":"StateAccount","type":{"kind":"struct","fields":[{"name":"account_type","type":{"defined":{"name":"AccountType"}}},{"name":"enabled","type":"bool"},{"name":"vault","type":"pubkey"},{"name":"owner","type":"pubkey"},{"name":"portfolio_manager_name","type":{"array":["u8",32]}},{"name":"created","type":{"defined":{"name":"CreatedModel"}}},{"name":"base_asset_mint","type":"pubkey"},{"name":"base_asset_decimals","type":"u8"},{"name":"base_asset_token_program","type":"u8"},{"name":"name","type":{"array":["u8",32]}},{"name":"timelock_duration","type":"u32"},{"name":"timelock_expires_at","type":"u64"},{"name":"mint","type":"pubkey"},{"name":"assets","type":{"vec":"pubkey"}},{"name":"integration_acls","type":{"vec":{"defined":{"name":"IntegrationAcl"}}}},{"name":"delegate_acls","type":{"vec":{"defined":{"name":"DelegateAcl"}}}},{"name":"external_positions","type":{"vec":"pubkey"}},{"name":"priced_protocols","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"}]}}],"constants":[{"name":"PROTO_NEUTRAL","type":"u16","value":"1"},{"name":"PROTO_NEUTRAL_PERM_CLOSE_USER_BUNDLE_ACCOUNT","type":"u64","value":"8"},{"name":"PROTO_NEUTRAL_PERM_INITIALIZE_BUNDLE_DEPOSITOR","type":"u64","value":"1"},{"name":"PROTO_NEUTRAL_PERM_REQUEST_DEPOSIT","type":"u64","value":"2"},{"name":"PROTO_NEUTRAL_PERM_REQUEST_WITHDRAWAL","type":"u64","value":"4"}]}');
|
|
339
339
|
|
|
340
340
|
/***/ }),
|
|
341
341
|
/* 19 */
|
|
@@ -349,7 +349,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"address":"gstgptmbgJVi5f8ZmSRVZjZkDQ
|
|
|
349
349
|
/***/ ((module) => {
|
|
350
350
|
|
|
351
351
|
"use strict";
|
|
352
|
-
module.exports = /*#__PURE__*/JSON.parse('{"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5","metadata":{"name":"glam_mint","version":"1.0.3","spec":"0.1.0","description":"GLAM mint program"},"instructions":[{"name":"acl_gate_add_wallet","discriminator":[177,209,222,44,139,216,75,85],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"list_config","writable":true},{"name":"wallet"},{"name":"wallet_entry","writable":true,"pda":{"seeds":[{"kind":"const","value":[119,97,108,108,101,116,95,101,110,116,114,121]},{"kind":"account","path":"list_config"},{"kind":"account","path":"wallet"}],"program":{"kind":"const","value":[225,75,51,208,94,242,103,39,36,154,175,185,45,215,178,172,212,90,38,236,241,111,194,147,148,148,49,31,143,249,136,203]}}},{"name":"token_acl_gate_program","address":"GATEzzqxhJnsWF6vHRsgtixxSB8PaQdcqGEVTEHWiULz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[]},{"name":"acl_gate_create_list","discriminator":[58,42,187,89,245,216,223,82],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"list_config","writable":true,"pda":{"seeds":[{"kind":"const","value":[108,105,115,116,95,99,111,110,102,105,103]},{"kind":"account","path":"glam_mint"},{"kind":"arg","path":"seed"}],"program":{"kind":"const","value":[225,75,51,208,94,242,103,39,36,154,175,185,45,215,178,172,212,90,38,236,241,111,194,147,148,148,49,31,143,249,136,203]}}},{"name":"token_acl_gate_program","address":"GATEzzqxhJnsWF6vHRsgtixxSB8PaQdcqGEVTEHWiULz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"seed","type":{"array":["u8",32]}},{"name":"mode","type":"u8"}]},{"name":"acl_gate_delete_list","discriminator":[113,175,235,163,178,217,46,134],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"list_config","writable":true},{"name":"token_acl_gate_program","address":"GATEzzqxhJnsWF6vHRsgtixxSB8PaQdcqGEVTEHWiULz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[]},{"name":"acl_gate_remove_wallet","discriminator":[74,153,117,215,253,225,59,63],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"list_config","writable":true},{"name":"wallet_entry","writable":true},{"name":"token_acl_gate_program","address":"GATEzzqxhJnsWF6vHRsgtixxSB8PaQdcqGEVTEHWiULz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[]},{"name":"acl_gate_setup_extra_metas","discriminator":[47,15,98,58,82,141,213,121],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"mint_config","pda":{"seeds":[{"kind":"const","value":[77,73,78,84,95,67,79,78,70,73,71]},{"kind":"account","path":"glam_mint"}],"program":{"kind":"const","value":[6,179,127,154,112,244,6,234,54,211,41,245,148,165,22,5,150,15,242,225,55,23,91,46,218,0,102,202,50,58,107,206]}}},{"name":"extra_metas","writable":true,"pda":{"seeds":[{"kind":"const","value":[116,104,97,119,95,101,120,116,114,97,95,97,99,99,111,117,110,116,95,109,101,116,97,115]},{"kind":"account","path":"glam_mint"}],"program":{"kind":"const","value":[225,75,51,208,94,242,103,39,36,154,175,185,45,215,178,172,212,90,38,236,241,111,194,147,148,148,49,31,143,249,136,203]}}},{"name":"token_acl_gate_program","address":"GATEzzqxhJnsWF6vHRsgtixxSB8PaQdcqGEVTEHWiULz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[]},{"name":"burn_tokens","discriminator":[76,15,51,254,229,215,121,66],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"from_token_account","writable":true},{"name":"from"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"}],"args":[{"name":"amount","type":"u64"}]},{"name":"cancel","discriminator":[232,219,223,41,219,236,220,190],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_mint","writable":true},{"name":"glam_escrow","pda":{"seeds":[{"kind":"const","value":[101,115,99,114,111,119]},{"kind":"account","path":"glam_mint"}]}},{"name":"request_queue","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}},{"name":"signer","writable":true,"signer":true},{"name":"user"},{"name":"recover_token_mint"},{"name":"user_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"user"},{"kind":"account","path":"recover_token_program"},{"kind":"account","path":"recover_token_mint"}],"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":"escrow_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"recover_token_program"},{"kind":"account","path":"recover_token_mint"}],"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":"system_program","address":"11111111111111111111111111111111"},{"name":"recover_token_program"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],"args":[]},{"name":"claim","discriminator":[62,198,214,193,213,159,108,210],"accounts":[{"name":"glam_state"},{"name":"glam_mint","writable":true},{"name":"glam_escrow","pda":{"seeds":[{"kind":"const","value":[101,115,99,114,111,119]},{"kind":"account","path":"glam_mint"}]}},{"name":"request_queue","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}},{"name":"signer","writable":true,"signer":true},{"name":"claim_user"},{"name":"claim_token_mint"},{"name":"claim_user_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"claim_user"},{"kind":"account","path":"claim_token_program"},{"kind":"account","path":"claim_token_mint"}],"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":"escrow_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"claim_token_program"},{"kind":"account","path":"claim_token_mint"}],"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":"claim_user_policy","writable":true,"optional":true},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"claim_token_program"},{"name":"glam_policies_program","address":"po1iCYakK3gHCLbuju4wGzFowTMpAJxkqK1iwUqMonY"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],"args":[]},{"name":"claim_fees","discriminator":[82,251,233,156,12,52,184,202],"accounts":[{"name":"glam_state"},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"glam_mint","writable":true},{"name":"glam_escrow","pda":{"seeds":[{"kind":"const","value":[101,115,99,114,111,119]},{"kind":"account","path":"glam_mint"}]}},{"name":"escrow_mint_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"signer","writable":true,"signer":true},{"name":"deposit_asset"},{"name":"vault_deposit_ata","docs":["To pay out fees"],"writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_vault"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"deposit_asset"}],"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":"protocol_fee_authority","docs":["To receive protocol fee"]},{"name":"protocol_fee_authority_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"protocol_fee_authority"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"deposit_asset"}],"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":"manager_fee_authority","docs":["To receive manager fee"]},{"name":"manager_fee_authority_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"manager_fee_authority"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"deposit_asset"}],"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":"glam_config","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":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"deposit_token_program"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"}],"args":[]},{"name":"close_mint","discriminator":[149,251,157,212,65,181,235,129],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"request_queue","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}},{"name":"extra_metas_account","writable":true},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"policies_program","address":"po1iCYakK3gHCLbuju4wGzFowTMpAJxkqK1iwUqMonY"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[]},{"name":"crystallize_fees","discriminator":[78,0,111,26,7,12,41,249],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_escrow","pda":{"seeds":[{"kind":"const","value":[101,115,99,114,111,119]},{"kind":"account","path":"glam_mint"}]}},{"name":"glam_mint","writable":true},{"name":"escrow_mint_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"signer","writable":true,"signer":true},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"}],"args":[]},{"name":"emergency_update_mint","discriminator":[141,210,26,160,120,140,28,239],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint"},{"name":"request_queue","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}}],"args":[{"name":"args","type":{"defined":{"name":"EmergencyUpdateMintArgs"}}}]},{"name":"enable_token_acl","discriminator":[223,179,117,163,201,185,222,34],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"mint_config","writable":true,"pda":{"seeds":[{"kind":"const","value":[77,73,78,84,95,67,79,78,70,73,71]},{"kind":"account","path":"glam_mint"}],"program":{"kind":"const","value":[6,179,127,154,112,244,6,234,54,211,41,245,148,165,22,5,150,15,242,225,55,23,91,46,218,0,102,202,50,58,107,206]}}},{"name":"token_acl_program","address":"TACLkU6CiCdkQN2MjoyDkVg2yAH9zkxiHDsiztQ52TP"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"gating_program","type":{"option":"pubkey"}}]},{"name":"force_transfer_tokens","discriminator":[185,34,78,211,192,13,160,37],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"from_token_account","writable":true},{"name":"to_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"to"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"from"},{"name":"to"},{"name":"to_policy_account","writable":true,"optional":true},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"policies_program","address":"po1iCYakK3gHCLbuju4wGzFowTMpAJxkqK1iwUqMonY"}],"args":[{"name":"amount","type":"u64"}]},{"name":"fulfill","discriminator":[143,2,52,206,174,164,247,72],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"glam_mint","writable":true},{"name":"glam_escrow","pda":{"seeds":[{"kind":"const","value":[101,115,99,114,111,119]},{"kind":"account","path":"glam_mint"}]}},{"name":"request_queue","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}},{"name":"signer","writable":true,"signer":true},{"name":"escrow_mint_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"asset"},{"name":"vault_asset_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_vault"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"asset"}],"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":"escrow_asset_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"asset"}],"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":"system_program","address":"11111111111111111111111111111111"},{"name":"deposit_token_program"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"limit","type":{"option":"u32"}}]},{"name":"initialize_mint","docs":["Initialize a new GLAM mint with extensions and metadata.","","- `mint_model` - Configuration model containing mint parameters and metadata","- `created_key` - 8-byte key used in the GLAM state PDA derivation","- `account_type` - Fund (for tokenized vault mint) or Mint","- `decimals` - Decimals of new mint"],"discriminator":[209,42,195,4,129,85,209,44],"accounts":[{"name":"glam_state","writable":true},{"name":"signer","writable":true,"signer":true},{"name":"new_mint","writable":true},{"name":"request_queue","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"new_mint"}]}},{"name":"extra_metas_account","writable":true},{"name":"base_asset_mint"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"policies_program","address":"po1iCYakK3gHCLbuju4wGzFowTMpAJxkqK1iwUqMonY"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"mint_model","type":{"defined":{"name":"MintModel"}}},{"name":"created_key","type":{"array":["u8",8]}},{"name":"account_type","type":{"defined":{"name":"AccountType"}}},{"name":"decimals","type":{"option":"u8"}}]},{"name":"mint_tokens","discriminator":[59,132,24,246,122,39,8,243],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"mint_to","writable":true,"pda":{"seeds":[{"kind":"account","path":"recipient"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"recipient","writable":true},{"name":"policy_account","writable":true,"optional":true},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"policies_program","address":"po1iCYakK3gHCLbuju4wGzFowTMpAJxkqK1iwUqMonY"}],"args":[{"name":"amount","type":"u64"}]},{"name":"price_bridge_managed_transfers","docs":["Price bridge managed transfers.","","Extra accounts:","- bridge registry account"],"discriminator":[15,249,66,19,107,71,41,51],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[]},{"name":"price_drift_users","docs":["Extra accounts for pricing N drift users under the same user stats:","- user_stats x 1","- drift_user x N","- markets and oracles used by all drift users (no specific order)","","Clients must pre-refresh any stale Drift spot market cumulative interest by","prepending Drift `update_spot_market_cumulative_interest` instructions for the","referenced spot markets. Calls will fail with `StaleDriftInterest` if a required","spot market\'s cumulative interest is too old."],"discriminator":[12,5,143,51,101,81,200,150],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[{"name":"num_users","type":"u8"}]},{"name":"price_drift_vault_depositors","docs":["Extra accounts for pricing N vault depositors:","- (vault_depositor, drift_vault, drift_user) x N","- spot_market used by drift users of vaults (no specific order)","- perp markets used by drift users of vaults (no specific order)","- oracles of spot markets and perp markets (no specific order)","","Clients must pre-refresh any stale Drift spot market cumulative interest by","prepending Drift `update_spot_market_cumulative_interest` instructions for the","referenced spot markets. Calls will fail with `StaleDriftInterest` if a required","spot market\'s cumulative interest is too old."],"discriminator":[234,16,238,70,189,23,98,160],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[{"name":"num_vault_depositors","type":"u8"},{"name":"num_spot_markets","type":"u8"},{"name":"num_perp_markets","type":"u8"}]},{"name":"price_external_positions","docs":["Price external positions for a vault","","Extra accounts required:","- Observation state account"],"discriminator":[94,199,82,243,235,193,4,144],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[]},{"name":"price_kamino_obligations","docs":["Prices Kamino obligations. Reserves and obligations must be refreshed in the same slot before calling this ix.","","Extra accounts for pricing N kamino obligations:","- obligations x N"],"discriminator":[166,110,234,179,240,179,69,246],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[]},{"name":"price_kamino_vault_shares","docs":["Prices Kamino vault shares.","- `num_vaults` Number of kamino vaults to price.","","Extra accounts for pricing N kamino vault shares:","- (kvault_share_ata, kvault_share_mint, kvault_state, kvault_deposit_token_oracle) x N","- reserve x M","- M = number of reserves used by all kvaults\' allocations","- reserve pubkeys must follow the same order of reserves used by each allocation"],"discriminator":[112,92,238,224,145,105,38,249],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[{"name":"num_vaults","type":"u8"}]},{"name":"price_loopscale_loans","docs":["Price LoopScale loans for a vault","","Extra accounts for pricing N loans:","- N loan accounts"],"discriminator":[106,180,138,193,90,3,24,42],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[]},{"name":"price_single_asset_vault","docs":["Prices a single asset vault."],"discriminator":[93,213,219,25,38,74,9,167],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"base_asset_ata"},{"name":"integration_authority","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[]},{"name":"price_stake_accounts","discriminator":[119,137,9,15,196,73,30,27],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[]},{"name":"price_vault_tokens","docs":["Prices vault SOL balance and tokens it holds.","","Args:","- `denom`: Denomination of the price.","- `agg_indexes`: Indexes of the aggregation oracles for the tokens (must follow the same order of mints in extra accounts). If aggregation oracle is not used for token #`i`, `agg_indexes[i]` should be set to -1.","","Extra accounts for pricing N tokens:","- (ata, mint, oracle) x N","- optional oracle mapping (only add it if any token uses an agg oracle)"],"discriminator":[54,42,16,199,20,183,50,137],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[{"name":"agg_indexes","type":{"vec":{"array":["i16",4]}}}]},{"name":"queued_redeem","discriminator":[82,242,202,93,170,196,215,113],"accounts":[{"name":"glam_state"},{"name":"glam_mint","writable":true},{"name":"glam_escrow","pda":{"seeds":[{"kind":"const","value":[101,115,99,114,111,119]},{"kind":"account","path":"glam_mint"}]}},{"name":"request_queue","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}},{"name":"signer","writable":true,"signer":true},{"name":"signer_mint_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"signer"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"escrow_mint_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"system_program","address":"11111111111111111111111111111111"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],"args":[{"name":"amount_in","type":"u64"}]},{"name":"queued_subscribe","discriminator":[107,180,212,63,146,0,159,255],"accounts":[{"name":"glam_state"},{"name":"glam_mint","writable":true},{"name":"glam_escrow","pda":{"seeds":[{"kind":"const","value":[101,115,99,114,111,119]},{"kind":"account","path":"glam_mint"}]}},{"name":"request_queue","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}},{"name":"signer","writable":true,"signer":true},{"name":"deposit_asset"},{"name":"escrow_deposit_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"deposit_asset"}],"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":"signer_deposit_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"signer"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"deposit_asset"}],"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":"system_program","address":"11111111111111111111111111111111"},{"name":"deposit_token_program"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],"args":[{"name":"amount_in","type":"u64"}]},{"name":"set_mint_policy","discriminator":[12,208,252,52,166,250,137,169],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"policy","type":{"defined":{"name":"MintPolicy"}}}]},{"name":"set_protocol_fees","discriminator":[49,143,189,18,56,206,158,226],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_mint"},{"name":"signer","writable":true,"signer":true},{"name":"glam_config","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":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"base_fee_bps","type":"u16"},{"name":"flow_fee_bps","type":"u16"}]},{"name":"set_token_accounts_states","discriminator":[50,133,45,86,117,66,115,195],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"}],"args":[{"name":"frozen","type":"bool"}]},{"name":"subscribe","discriminator":[254,28,191,138,156,179,183,53],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"glam_mint","writable":true},{"name":"glam_escrow","pda":{"seeds":[{"kind":"const","value":[101,115,99,114,111,119]},{"kind":"account","path":"glam_mint"}]}},{"name":"request_queue","pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}},{"name":"signer","writable":true,"signer":true},{"name":"signer_mint_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"signer"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"escrow_mint_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"deposit_asset"},{"name":"vault_deposit_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_vault"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"deposit_asset"}],"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":"signer_deposit_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"signer"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"deposit_asset"}],"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":"signer_policy","writable":true,"optional":true},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"deposit_token_program"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"policies_program","address":"po1iCYakK3gHCLbuju4wGzFowTMpAJxkqK1iwUqMonY"},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"amount_in","type":"u64"}]},{"name":"token_acl_freeze","discriminator":[208,39,70,196,226,118,235,31],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"mint_config","pda":{"seeds":[{"kind":"const","value":[77,73,78,84,95,67,79,78,70,73,71]},{"kind":"account","path":"glam_mint"}],"program":{"kind":"const","value":[6,179,127,154,112,244,6,234,54,211,41,245,148,165,22,5,150,15,242,225,55,23,91,46,218,0,102,202,50,58,107,206]}}},{"name":"token_acl_program","address":"TACLkU6CiCdkQN2MjoyDkVg2yAH9zkxiHDsiztQ52TP"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[]},{"name":"token_acl_thaw","discriminator":[8,45,41,107,188,132,187,55],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"mint_config","pda":{"seeds":[{"kind":"const","value":[77,73,78,84,95,67,79,78,70,73,71]},{"kind":"account","path":"glam_mint"}],"program":{"kind":"const","value":[6,179,127,154,112,244,6,234,54,211,41,245,148,165,22,5,150,15,242,225,55,23,91,46,218,0,102,202,50,58,107,206]}}},{"name":"token_acl_program","address":"TACLkU6CiCdkQN2MjoyDkVg2yAH9zkxiHDsiztQ52TP"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[]},{"name":"update_mint","discriminator":[212,203,57,78,75,245,222,5],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"mint_model","type":{"defined":{"name":"MintModel"}}}]},{"name":"update_mint_apply_timelock","discriminator":[223,241,80,24,120,25,82,134],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"request_queue","optional":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[]},{"name":"validate_aum","docs":["Validates AUM of the vault and emits AumRecord event."],"discriminator":[101,15,233,89,134,123,224,99],"accounts":[{"name":"glam_state"},{"name":"signer","writable":true,"signer":true},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[]}],"accounts":[{"name":"GlobalConfig","discriminator":[149,8,156,202,160,252,176,217]},{"name":"RequestQueue","discriminator":[172,124,172,253,233,63,70,234]},{"name":"StateAccount","discriminator":[142,247,54,95,85,133,249,103]}],"events":[{"name":"AumRecord","discriminator":[162,116,55,29,223,230,239,205]},{"name":"PricedProtocolRecord","discriminator":[232,89,187,82,49,200,127,132]}],"errors":[{"code":6000,"name":"InvalidAuthority","msg":"Invalid authority"},{"code":6001,"name":"UnauthorizedSigner","msg":"Signer is not authorized"},{"code":6002,"name":"ActionPaused","msg":"Requested action is paused"},{"code":6003,"name":"InvalidAsset","msg":"Asset not allowed to subscribe"},{"code":6004,"name":"MaxCapExceeded","msg":"Max cap exceeded"},{"code":6005,"name":"InvalidAmount","msg":"Invalid amount for subscription or redemption"},{"code":6006,"name":"NewRequestNotAllowed","msg":"New request is not allowed"},{"code":6007,"name":"RequestNotClaimable","msg":"Request is not claimable"},{"code":6008,"name":"RequestNotCancellable","msg":"Request is not cancellable"},{"code":6009,"name":"RequestNotFound","msg":"Request not found"},{"code":6010,"name":"RequestQueueNotEmpty","msg":"Request queue not empty"},{"code":6011,"name":"InvalidRequestQueueData","msg":"Invalid request queue data"},{"code":6012,"name":"RequestQueueFull","msg":"Request queue full"},{"code":6013,"name":"ProtocolFeesNotCrystallized","msg":"Protocol fees should be crystallized before updating"},{"code":6014,"name":"AmountBelowMinimum","msg":"Amount is below the minimum required"},{"code":6015,"name":"ManagerFeesNotCrystallized","msg":"Manager fees should be crystallized before updating"},{"code":6016,"name":"AmountAboveMaximum","msg":"Amount exceeds maximum threshold"},{"code":6017,"name":"InsufficientEscrowBalance","msg":"Insufficient escrow balance for fee burn"},{"code":6018,"name":"TokenAclManagesFreezeThaw","msg":"Token ACL is enabled; freeze/thaw is managed by the Token ACL program"},{"code":6019,"name":"InvalidMintState","msg":"Invalid mint state"}],"types":[{"name":"AccountType","type":{"kind":"enum","variants":[{"name":"Vault"},{"name":"TokenizedVault"},{"name":"Mint"},{"name":"SingleAssetVault"}]}},{"name":"AccruedFees","type":{"kind":"struct","fields":[{"name":"vault_subscription_fee","type":"u128"},{"name":"vault_redemption_fee","type":"u128"},{"name":"manager_subscription_fee","type":"u128"},{"name":"manager_redemption_fee","type":"u128"},{"name":"management_fee","type":"u128"},{"name":"performance_fee","type":"u128"},{"name":"protocol_base_fee","type":"u128"},{"name":"protocol_flow_fee","type":"u128"}]}},{"name":"AssetMeta","type":{"kind":"struct","fields":[{"name":"asset","type":"pubkey"},{"name":"decimals","type":"u8"},{"name":"oracle","type":"pubkey"},{"name":"oracle_source","type":{"defined":{"name":"OracleSource"}}},{"name":"max_age_seconds","type":"u16"},{"name":"priority","type":"i8"},{"name":"padding","type":{"array":["u8",3]}}]}},{"name":"AumRecord","type":{"kind":"struct","fields":[{"name":"base_asset_amount","type":"i128"}]}},{"name":"CreatedModel","type":{"kind":"struct","fields":[{"name":"key","type":{"array":["u8",8]}},{"name":"created_by","type":"pubkey"},{"name":"created_at","type":"i64"}]}},{"name":"DelegateAcl","type":{"kind":"struct","fields":[{"name":"pubkey","type":"pubkey"},{"name":"integration_permissions","type":{"vec":{"defined":{"name":"IntegrationPermissions"}}}},{"name":"expires_at","type":"i64"}]}},{"name":"EmergencyUpdateMintArgs","type":{"kind":"struct","fields":[{"name":"request_type","type":{"defined":{"name":"RequestType"}}},{"name":"set_paused","type":"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":"subscription_fee_bps","type":"u16"},{"name":"redemption_fee_bps","type":"u16"}]}},{"name":"FeeParams","type":{"kind":"struct","fields":[{"name":"year_in_seconds","type":"u32"},{"name":"pa_high_water_mark","type":"i128"},{"name":"pa_last_nav","type":"i128"},{"name":"last_aum","type":"i128"},{"name":"last_performance_fee_crystallized","type":"i64"},{"name":"last_management_fee_crystallized","type":"i64"},{"name":"last_protocol_fee_crystallized","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":"GlobalConfig","type":{"kind":"struct","fields":[{"name":"admin","docs":["The authority that can modify the config"],"type":"pubkey"},{"name":"fee_authority","docs":["The authority that can modify fee structure of individual glam state and claim protocol fees"],"type":"pubkey"},{"name":"referrer","docs":["Default GLAM referrer"],"type":"pubkey"},{"name":"base_fee_bps","docs":["Default protocol base fee applied to all vaults"],"type":"u16"},{"name":"flow_fee_bps","docs":["Default protocol flow fee applied to all vaults"],"type":"u16"},{"name":"asset_metas","docs":["List of assets and their oracle configs supported by the protocol"],"type":{"vec":{"defined":{"name":"AssetMeta"}}}}]}},{"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":"integration_program","type":"pubkey"},{"name":"protocols_bitmask","type":"u16"},{"name":"protocol_policies","type":{"vec":{"defined":{"name":"ProtocolPolicy"}}}}]}},{"name":"IntegrationPermissions","docs":["Stores delegate permissions for an integration program."],"type":{"kind":"struct","fields":[{"name":"integration_program","type":"pubkey"},{"name":"protocol_permissions","type":{"vec":{"defined":{"name":"ProtocolPermissions"}}}}]}},{"name":"ManagementFee","type":{"kind":"struct","fields":[{"name":"fee_bps","type":"u16"}]}},{"name":"MintModel","type":{"kind":"struct","fields":[{"name":"symbol","type":{"option":"string"}},{"name":"name","type":{"option":{"array":["u8",32]}}},{"name":"uri","type":{"option":"string"}},{"name":"year_in_seconds","type":{"option":"u32"}},{"name":"permanent_delegate","type":{"option":"pubkey"}},{"name":"default_account_state_frozen","type":{"option":"bool"}},{"name":"fee_structure","type":{"option":{"defined":{"name":"FeeStructure"}}}},{"name":"notify_and_settle","type":{"option":{"defined":{"name":"NotifyAndSettle"}}}},{"name":"lockup_period","type":{"option":"u32"}},{"name":"max_cap","type":{"option":"u64"}},{"name":"min_subscription","type":{"option":"u64"}},{"name":"min_redemption","type":{"option":"u64"}},{"name":"allowlist","type":{"option":{"vec":"pubkey"}}},{"name":"blocklist","type":{"option":{"vec":"pubkey"}}}]}},{"name":"MintPolicy","type":{"kind":"struct","fields":[{"name":"lockup_period","type":"u32"},{"name":"max_cap","type":"u64"},{"name":"min_subscription","type":"u64"},{"name":"min_redemption","type":"u64"},{"name":"reserved","type":"u64"},{"name":"allowlist","type":{"option":{"vec":"pubkey"}}},{"name":"blocklist","type":{"option":{"vec":"pubkey"}}}]}},{"name":"NoticePeriodType","type":{"kind":"enum","variants":[{"name":"Hard"},{"name":"Soft"}]}},{"name":"NotifyAndSettle","type":{"kind":"struct","fields":[{"name":"model","type":{"defined":{"name":"ValuationModel"}}},{"name":"permissionless_fulfillment","type":"bool"},{"name":"subscribe_notice_period_type","type":{"defined":{"name":"NoticePeriodType"}}},{"name":"subscribe_notice_period","type":"u64"},{"name":"subscribe_settlement_period","type":"u64"},{"name":"subscribe_cancellation_window","type":"u64"},{"name":"redeem_notice_period_type","type":{"defined":{"name":"NoticePeriodType"}}},{"name":"redeem_notice_period","type":"u64"},{"name":"redeem_settlement_period","type":"u64"},{"name":"redeem_cancellation_window","type":"u64"},{"name":"time_unit","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":"max_ages_seconds","type":{"vec":{"array":["u16",2]}}},{"name":"padding","type":{"array":["u8",12]}}]}},{"name":"OracleSource","type":{"kind":"enum","variants":[{"name":"Pyth"},{"name":"Switchboard"},{"name":"QuoteAsset"},{"name":"Pyth1K"},{"name":"Pyth1M"},{"name":"PythStableCoin"},{"name":"Prelaunch"},{"name":"PythPull"},{"name":"Pyth1KPull"},{"name":"Pyth1MPull"},{"name":"PythStableCoinPull"},{"name":"SwitchboardOnDemand"},{"name":"PythLazer"},{"name":"PythLazer1K"},{"name":"PythLazer1M"},{"name":"PythLazerStableCoin"},{"name":"NotSet"},{"name":"LstPoolState"},{"name":"MarinadeState"},{"name":"BaseAsset"},{"name":"ChainlinkRWA"},{"name":"ChainlinkX"},{"name":"KaminoReserve"}]}},{"name":"PendingRequest","type":{"kind":"struct","fields":[{"name":"user","type":"pubkey"},{"name":"incoming","type":"u64"},{"name":"outgoing","type":"u64"},{"name":"created_at","type":"u64"},{"name":"fulfilled_at","type":"u64"},{"name":"time_unit","type":"u8"},{"name":"request_type","type":{"defined":{"name":"RequestType"}}},{"name":"reserved","type":{"array":["u8",6]}}]}},{"name":"PerformanceFee","type":{"kind":"struct","fields":[{"name":"fee_bps","type":"u16"},{"name":"hurdle_rate_bps","type":"u16"},{"name":"hurdle_type","type":{"defined":{"name":"HurdleType"}}}]}},{"name":"PricedProtocol","type":{"kind":"struct","fields":[{"name":"rent","type":"u64"},{"name":"amount","type":"i128"},{"name":"decimals","type":"u8"},{"name":"last_updated_slot","type":"u64"},{"name":"integration_program","type":"pubkey"},{"name":"protocol_bitflag","type":"u16"},{"name":"positions","type":{"vec":"pubkey"}}]}},{"name":"PricedProtocolRecord","type":{"kind":"struct","fields":[{"name":"base_asset_amount","type":"i128"}]}},{"name":"ProtocolFees","type":{"kind":"struct","fields":[{"name":"base_fee_bps","type":"u16"},{"name":"flow_fee_bps","type":"u16"}]}},{"name":"ProtocolPermissions","docs":["Represents a delegate\'s permissions for a specific protocol"],"type":{"kind":"struct","fields":[{"name":"protocol_bitflag","type":"u16"},{"name":"permissions_bitmask","type":"u64"}]}},{"name":"ProtocolPolicy","docs":["Stores policy data for an integrated protocol.","Integration programs serialize/deserialize this data."],"type":{"kind":"struct","fields":[{"name":"protocol_bitflag","type":"u16"},{"name":"data","type":"bytes"}]}},{"name":"RequestQueue","type":{"kind":"struct","fields":[{"name":"glam_state","type":"pubkey"},{"name":"glam_mint","type":"pubkey"},{"name":"subscription_paused","type":"bool"},{"name":"redemption_paused","type":"bool"},{"name":"data","type":{"vec":{"defined":{"name":"PendingRequest"}}}}]}},{"name":"RequestType","type":{"kind":"enum","variants":[{"name":"Subscription"},{"name":"Redemption"}]}},{"name":"StateAccount","type":{"kind":"struct","fields":[{"name":"account_type","type":{"defined":{"name":"AccountType"}}},{"name":"enabled","type":"bool"},{"name":"vault","type":"pubkey"},{"name":"owner","type":"pubkey"},{"name":"portfolio_manager_name","type":{"array":["u8",32]}},{"name":"created","type":{"defined":{"name":"CreatedModel"}}},{"name":"base_asset_mint","type":"pubkey"},{"name":"base_asset_decimals","type":"u8"},{"name":"base_asset_token_program","type":"u8"},{"name":"name","type":{"array":["u8",32]}},{"name":"timelock_duration","type":"u32"},{"name":"timelock_expires_at","type":"u64"},{"name":"mint","type":"pubkey"},{"name":"assets","type":{"vec":"pubkey"}},{"name":"integration_acls","type":{"vec":{"defined":{"name":"IntegrationAcl"}}}},{"name":"delegate_acls","type":{"vec":{"defined":{"name":"DelegateAcl"}}}},{"name":"external_positions","type":{"vec":"pubkey"}},{"name":"priced_protocols","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"}]}}],"constants":[{"name":"PROTO_MINT","type":"u16","value":"1"},{"name":"PROTO_MINT_PERM_BURN_TOKENS","type":"u64","value":"2"},{"name":"PROTO_MINT_PERM_CANCEL_REQUEST","type":"u64","value":"128"},{"name":"PROTO_MINT_PERM_CLAIM_FEES","type":"u64","value":"16"},{"name":"PROTO_MINT_PERM_CLAIM_REQUEST","type":"u64","value":"256"},{"name":"PROTO_MINT_PERM_EMERGENCY_UPDATE","type":"u64","value":"64"},{"name":"PROTO_MINT_PERM_FORCE_TRANSFER_TOKENS","type":"u64","value":"4"},{"name":"PROTO_MINT_PERM_FULFILL","type":"u64","value":"32"},{"name":"PROTO_MINT_PERM_MINT_TOKENS","type":"u64","value":"1"},{"name":"PROTO_MINT_PERM_SET_TOKEN_ACCOUNT_STATE","type":"u64","value":"8"},{"name":"PROTO_MINT_PERM_TOKEN_ACL_APPLY_LIST","type":"u64","value":"2048"},{"name":"PROTO_MINT_PERM_TOKEN_ACL_FREEZE_THAW","type":"u64","value":"512"},{"name":"PROTO_MINT_PERM_TOKEN_ACL_MANAGE_LIST","type":"u64","value":"1024"}]}');
|
|
352
|
+
module.exports = /*#__PURE__*/JSON.parse('{"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5","metadata":{"name":"glam_mint","version":"1.0.3","spec":"0.1.0","description":"GLAM mint program"},"instructions":[{"name":"acl_gate_add_wallet","discriminator":[177,209,222,44,139,216,75,85],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"list_config","writable":true},{"name":"wallet"},{"name":"wallet_entry","writable":true,"pda":{"seeds":[{"kind":"const","value":[119,97,108,108,101,116,95,101,110,116,114,121]},{"kind":"account","path":"list_config"},{"kind":"account","path":"wallet"}],"program":{"kind":"const","value":[225,75,51,208,94,242,103,39,36,154,175,185,45,215,178,172,212,90,38,236,241,111,194,147,148,148,49,31,143,249,136,203]}}},{"name":"token_acl_gate_program","address":"GATEzzqxhJnsWF6vHRsgtixxSB8PaQdcqGEVTEHWiULz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[]},{"name":"acl_gate_create_list","discriminator":[58,42,187,89,245,216,223,82],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"list_config","writable":true,"pda":{"seeds":[{"kind":"const","value":[108,105,115,116,95,99,111,110,102,105,103]},{"kind":"account","path":"glam_mint"},{"kind":"arg","path":"seed"}],"program":{"kind":"const","value":[225,75,51,208,94,242,103,39,36,154,175,185,45,215,178,172,212,90,38,236,241,111,194,147,148,148,49,31,143,249,136,203]}}},{"name":"token_acl_gate_program","address":"GATEzzqxhJnsWF6vHRsgtixxSB8PaQdcqGEVTEHWiULz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"seed","type":{"array":["u8",32]}},{"name":"mode","type":"u8"}]},{"name":"acl_gate_delete_list","discriminator":[113,175,235,163,178,217,46,134],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"list_config","writable":true},{"name":"token_acl_gate_program","address":"GATEzzqxhJnsWF6vHRsgtixxSB8PaQdcqGEVTEHWiULz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[]},{"name":"acl_gate_remove_wallet","discriminator":[74,153,117,215,253,225,59,63],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"list_config","writable":true},{"name":"wallet_entry","writable":true},{"name":"token_acl_gate_program","address":"GATEzzqxhJnsWF6vHRsgtixxSB8PaQdcqGEVTEHWiULz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[]},{"name":"acl_gate_setup_extra_metas","discriminator":[47,15,98,58,82,141,213,121],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"mint_config","pda":{"seeds":[{"kind":"const","value":[77,73,78,84,95,67,79,78,70,73,71]},{"kind":"account","path":"glam_mint"}],"program":{"kind":"const","value":[6,179,127,154,112,244,6,234,54,211,41,245,148,165,22,5,150,15,242,225,55,23,91,46,218,0,102,202,50,58,107,206]}}},{"name":"extra_metas","writable":true,"pda":{"seeds":[{"kind":"const","value":[116,104,97,119,95,101,120,116,114,97,95,97,99,99,111,117,110,116,95,109,101,116,97,115]},{"kind":"account","path":"glam_mint"}],"program":{"kind":"const","value":[225,75,51,208,94,242,103,39,36,154,175,185,45,215,178,172,212,90,38,236,241,111,194,147,148,148,49,31,143,249,136,203]}}},{"name":"token_acl_gate_program","address":"GATEzzqxhJnsWF6vHRsgtixxSB8PaQdcqGEVTEHWiULz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[]},{"name":"burn_tokens","discriminator":[76,15,51,254,229,215,121,66],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"from_token_account","writable":true},{"name":"from"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"}],"args":[{"name":"amount","type":"u64"}]},{"name":"cancel","discriminator":[232,219,223,41,219,236,220,190],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_mint","writable":true},{"name":"glam_escrow","pda":{"seeds":[{"kind":"const","value":[101,115,99,114,111,119]},{"kind":"account","path":"glam_mint"}]}},{"name":"request_queue","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}},{"name":"signer","writable":true,"signer":true},{"name":"user"},{"name":"recover_token_mint"},{"name":"user_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"user"},{"kind":"account","path":"recover_token_program"},{"kind":"account","path":"recover_token_mint"}],"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":"escrow_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"recover_token_program"},{"kind":"account","path":"recover_token_mint"}],"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":"system_program","address":"11111111111111111111111111111111"},{"name":"recover_token_program"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],"args":[]},{"name":"claim","discriminator":[62,198,214,193,213,159,108,210],"accounts":[{"name":"glam_state"},{"name":"glam_mint","writable":true},{"name":"glam_escrow","pda":{"seeds":[{"kind":"const","value":[101,115,99,114,111,119]},{"kind":"account","path":"glam_mint"}]}},{"name":"request_queue","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}},{"name":"signer","writable":true,"signer":true},{"name":"claim_user"},{"name":"claim_token_mint"},{"name":"claim_user_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"claim_user"},{"kind":"account","path":"claim_token_program"},{"kind":"account","path":"claim_token_mint"}],"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":"escrow_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"claim_token_program"},{"kind":"account","path":"claim_token_mint"}],"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":"claim_user_policy","writable":true,"optional":true},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"claim_token_program"},{"name":"glam_policies_program","address":"po1iCYakK3gHCLbuju4wGzFowTMpAJxkqK1iwUqMonY"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],"args":[]},{"name":"claim_fees","discriminator":[82,251,233,156,12,52,184,202],"accounts":[{"name":"glam_state"},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"glam_mint","writable":true},{"name":"glam_escrow","pda":{"seeds":[{"kind":"const","value":[101,115,99,114,111,119]},{"kind":"account","path":"glam_mint"}]}},{"name":"escrow_mint_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"signer","writable":true,"signer":true},{"name":"deposit_asset"},{"name":"vault_deposit_ata","docs":["To pay out fees"],"writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_vault"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"deposit_asset"}],"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":"protocol_fee_authority","docs":["To receive protocol fee"]},{"name":"protocol_fee_authority_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"protocol_fee_authority"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"deposit_asset"}],"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":"manager_fee_authority","docs":["To receive manager fee"]},{"name":"manager_fee_authority_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"manager_fee_authority"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"deposit_asset"}],"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":"glam_config","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":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"deposit_token_program"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"}],"args":[]},{"name":"close_mint","discriminator":[149,251,157,212,65,181,235,129],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"request_queue","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}},{"name":"extra_metas_account","writable":true},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"policies_program","address":"po1iCYakK3gHCLbuju4wGzFowTMpAJxkqK1iwUqMonY"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[]},{"name":"crystallize_fees","discriminator":[78,0,111,26,7,12,41,249],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_escrow","pda":{"seeds":[{"kind":"const","value":[101,115,99,114,111,119]},{"kind":"account","path":"glam_mint"}]}},{"name":"glam_mint","writable":true},{"name":"escrow_mint_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"signer","writable":true,"signer":true},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"}],"args":[]},{"name":"emergency_update_mint","discriminator":[141,210,26,160,120,140,28,239],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint"},{"name":"request_queue","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}}],"args":[{"name":"args","type":{"defined":{"name":"EmergencyUpdateMintArgs"}}}]},{"name":"enable_token_acl","discriminator":[223,179,117,163,201,185,222,34],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"mint_config","writable":true,"pda":{"seeds":[{"kind":"const","value":[77,73,78,84,95,67,79,78,70,73,71]},{"kind":"account","path":"glam_mint"}],"program":{"kind":"const","value":[6,179,127,154,112,244,6,234,54,211,41,245,148,165,22,5,150,15,242,225,55,23,91,46,218,0,102,202,50,58,107,206]}}},{"name":"token_acl_program","address":"TACLkU6CiCdkQN2MjoyDkVg2yAH9zkxiHDsiztQ52TP"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"gating_program","type":{"option":"pubkey"}}]},{"name":"force_transfer_tokens","discriminator":[185,34,78,211,192,13,160,37],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"from_token_account","writable":true},{"name":"to_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"to"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"from"},{"name":"to"},{"name":"to_policy_account","writable":true,"optional":true},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"policies_program","address":"po1iCYakK3gHCLbuju4wGzFowTMpAJxkqK1iwUqMonY"}],"args":[{"name":"amount","type":"u64"}]},{"name":"fulfill","discriminator":[143,2,52,206,174,164,247,72],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"glam_mint","writable":true},{"name":"glam_escrow","pda":{"seeds":[{"kind":"const","value":[101,115,99,114,111,119]},{"kind":"account","path":"glam_mint"}]}},{"name":"request_queue","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}},{"name":"signer","writable":true,"signer":true},{"name":"escrow_mint_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"asset"},{"name":"vault_asset_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_vault"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"asset"}],"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":"escrow_asset_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"asset"}],"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":"system_program","address":"11111111111111111111111111111111"},{"name":"deposit_token_program"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"limit","type":{"option":"u32"}}]},{"name":"initialize_mint","docs":["Initialize a new GLAM mint with extensions and metadata.","","- `mint_model` - Configuration model containing mint parameters and metadata","- `created_key` - 8-byte key used in the GLAM state PDA derivation","- `account_type` - Fund (for tokenized vault mint) or Mint","- `decimals` - Decimals of new mint"],"discriminator":[209,42,195,4,129,85,209,44],"accounts":[{"name":"glam_state","writable":true},{"name":"signer","writable":true,"signer":true},{"name":"new_mint","writable":true},{"name":"request_queue","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"new_mint"}]}},{"name":"extra_metas_account","writable":true},{"name":"base_asset_mint"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"policies_program","address":"po1iCYakK3gHCLbuju4wGzFowTMpAJxkqK1iwUqMonY"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"mint_model","type":{"defined":{"name":"MintModel"}}},{"name":"created_key","type":{"array":["u8",8]}},{"name":"account_type","type":{"defined":{"name":"AccountType"}}},{"name":"decimals","type":{"option":"u8"}}]},{"name":"mint_tokens","discriminator":[59,132,24,246,122,39,8,243],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"mint_to","writable":true,"pda":{"seeds":[{"kind":"account","path":"recipient"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"recipient","writable":true},{"name":"policy_account","writable":true,"optional":true},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"policies_program","address":"po1iCYakK3gHCLbuju4wGzFowTMpAJxkqK1iwUqMonY"}],"args":[{"name":"amount","type":"u64"}]},{"name":"price_bridge_managed_transfers","docs":["Price bridge managed transfers.","","Extra accounts:","- bridge registry account"],"discriminator":[15,249,66,19,107,71,41,51],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[]},{"name":"price_drift_users","docs":["Extra accounts for pricing N drift users under the same user stats:","- user_stats x 1","- drift_user x N","- markets and oracles used by all drift users (no specific order)","","Clients must pre-refresh any stale Drift spot market cumulative interest by","prepending Drift `update_spot_market_cumulative_interest` instructions for the","referenced spot markets. Calls will fail with `StaleDriftInterest` if a required","spot market\'s cumulative interest is too old."],"discriminator":[12,5,143,51,101,81,200,150],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[{"name":"num_users","type":"u8"}]},{"name":"price_drift_vault_depositors","docs":["Extra accounts for pricing N vault depositors:","- (vault_depositor, drift_vault, drift_user) x N","- spot_market used by drift users of vaults (no specific order)","- perp markets used by drift users of vaults (no specific order)","- oracles of spot markets and perp markets (no specific order)","","Clients must pre-refresh any stale Drift spot market cumulative interest by","prepending Drift `update_spot_market_cumulative_interest` instructions for the","referenced spot markets. Calls will fail with `StaleDriftInterest` if a required","spot market\'s cumulative interest is too old."],"discriminator":[234,16,238,70,189,23,98,160],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[{"name":"num_vault_depositors","type":"u8"},{"name":"num_spot_markets","type":"u8"},{"name":"num_perp_markets","type":"u8"}]},{"name":"price_external_positions","docs":["Price external positions for a vault","","Extra accounts required:","- Observation state account"],"discriminator":[94,199,82,243,235,193,4,144],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[]},{"name":"price_kamino_obligations","docs":["Prices Kamino obligations. Reserves and obligations must be refreshed in the same slot before calling this ix.","","Extra accounts for pricing N kamino obligations:","- obligations x N"],"discriminator":[166,110,234,179,240,179,69,246],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[]},{"name":"price_kamino_vault_shares","docs":["Prices Kamino vault shares.","- `num_vaults` Number of kamino vaults to price.","","Extra accounts for pricing N kamino vault shares:","- (kvault_share_ata, kvault_share_mint, kvault_state, kvault_deposit_token_oracle) x N","- reserve x M","- M = number of reserves used by all kvaults\' allocations","- reserve pubkeys must follow the same order of reserves used by each allocation"],"discriminator":[112,92,238,224,145,105,38,249],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[{"name":"num_vaults","type":"u8"}]},{"name":"price_loopscale_loans","docs":["Price LoopScale loans for a vault","","Extra accounts for pricing N loans:","- N loan accounts"],"discriminator":[106,180,138,193,90,3,24,42],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[]},{"name":"price_neutral_bundle_depositors","docs":["Price neutral bundle depositors","","Remaining accounts:","- 4 * N neutral bundle depositor account tuples:","1. User bundle account","2. Bundle account","3. Bundle oracle data account","4. Bundle asset oracle account"],"discriminator":[202,93,205,29,37,180,127,102],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[]},{"name":"price_single_asset_vault","docs":["Prices a single asset vault."],"discriminator":[93,213,219,25,38,74,9,167],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"base_asset_ata"},{"name":"integration_authority","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[]},{"name":"price_stake_accounts","discriminator":[119,137,9,15,196,73,30,27],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[]},{"name":"price_vault_tokens","docs":["Prices vault SOL balance and tokens it holds.","","Args:","- `denom`: Denomination of the price.","- `agg_indexes`: Indexes of the aggregation oracles for the tokens (must follow the same order of mints in extra accounts). If aggregation oracle is not used for token #`i`, `agg_indexes[i]` should be set to -1.","","Extra accounts for pricing N tokens:","- (ata, mint, oracle) x N","- optional oracle mapping (only add it if any token uses an agg oracle)"],"discriminator":[54,42,16,199,20,183,50,137],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"signer","writable":true,"signer":true},{"name":"sol_usd_oracle"},{"name":"base_asset_oracle"},{"name":"integration_authority","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":"glam_config","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":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[{"name":"agg_indexes","type":{"vec":{"array":["i16",4]}}}]},{"name":"queued_redeem","discriminator":[82,242,202,93,170,196,215,113],"accounts":[{"name":"glam_state"},{"name":"glam_mint","writable":true},{"name":"glam_escrow","pda":{"seeds":[{"kind":"const","value":[101,115,99,114,111,119]},{"kind":"account","path":"glam_mint"}]}},{"name":"request_queue","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}},{"name":"signer","writable":true,"signer":true},{"name":"signer_mint_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"signer"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"escrow_mint_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"system_program","address":"11111111111111111111111111111111"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],"args":[{"name":"amount_in","type":"u64"}]},{"name":"queued_subscribe","discriminator":[107,180,212,63,146,0,159,255],"accounts":[{"name":"glam_state"},{"name":"glam_mint","writable":true},{"name":"glam_escrow","pda":{"seeds":[{"kind":"const","value":[101,115,99,114,111,119]},{"kind":"account","path":"glam_mint"}]}},{"name":"request_queue","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}},{"name":"signer","writable":true,"signer":true},{"name":"deposit_asset"},{"name":"escrow_deposit_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"deposit_asset"}],"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":"signer_deposit_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"signer"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"deposit_asset"}],"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":"system_program","address":"11111111111111111111111111111111"},{"name":"deposit_token_program"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],"args":[{"name":"amount_in","type":"u64"}]},{"name":"set_mint_policy","discriminator":[12,208,252,52,166,250,137,169],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"policy","type":{"defined":{"name":"MintPolicy"}}}]},{"name":"set_protocol_fees","discriminator":[49,143,189,18,56,206,158,226],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_mint"},{"name":"signer","writable":true,"signer":true},{"name":"glam_config","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":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"base_fee_bps","type":"u16"},{"name":"flow_fee_bps","type":"u16"}]},{"name":"set_token_accounts_states","discriminator":[50,133,45,86,117,66,115,195],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"}],"args":[{"name":"frozen","type":"bool"}]},{"name":"subscribe","discriminator":[254,28,191,138,156,179,183,53],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"const","value":[10,55,49,193,142,247,75,193,33,61,5,218,254,219,143,206,156,138,14,32,89,232,248,173,46,77,46,206,189,171,68,237]}}},{"name":"glam_mint","writable":true},{"name":"glam_escrow","pda":{"seeds":[{"kind":"const","value":[101,115,99,114,111,119]},{"kind":"account","path":"glam_mint"}]}},{"name":"request_queue","pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}},{"name":"signer","writable":true,"signer":true},{"name":"signer_mint_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"signer"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"escrow_mint_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_escrow"},{"kind":"account","path":"token_2022_program"},{"kind":"account","path":"glam_mint"}],"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":"deposit_asset"},{"name":"vault_deposit_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"glam_vault"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"deposit_asset"}],"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":"signer_deposit_ata","writable":true,"pda":{"seeds":[{"kind":"account","path":"signer"},{"kind":"account","path":"deposit_token_program"},{"kind":"account","path":"deposit_asset"}],"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":"signer_policy","writable":true,"optional":true},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"deposit_token_program"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"policies_program","address":"po1iCYakK3gHCLbuju4wGzFowTMpAJxkqK1iwUqMonY"},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"amount_in","type":"u64"}]},{"name":"token_acl_freeze","discriminator":[208,39,70,196,226,118,235,31],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"mint_config","pda":{"seeds":[{"kind":"const","value":[77,73,78,84,95,67,79,78,70,73,71]},{"kind":"account","path":"glam_mint"}],"program":{"kind":"const","value":[6,179,127,154,112,244,6,234,54,211,41,245,148,165,22,5,150,15,242,225,55,23,91,46,218,0,102,202,50,58,107,206]}}},{"name":"token_acl_program","address":"TACLkU6CiCdkQN2MjoyDkVg2yAH9zkxiHDsiztQ52TP"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[]},{"name":"token_acl_thaw","discriminator":[8,45,41,107,188,132,187,55],"accounts":[{"name":"glam_state"},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"mint_config","pda":{"seeds":[{"kind":"const","value":[77,73,78,84,95,67,79,78,70,73,71]},{"kind":"account","path":"glam_mint"}],"program":{"kind":"const","value":[6,179,127,154,112,244,6,234,54,211,41,245,148,165,22,5,150,15,242,225,55,23,91,46,218,0,102,202,50,58,107,206]}}},{"name":"token_acl_program","address":"TACLkU6CiCdkQN2MjoyDkVg2yAH9zkxiHDsiztQ52TP"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[]},{"name":"update_mint","discriminator":[212,203,57,78,75,245,222,5],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"mint_model","type":{"defined":{"name":"MintModel"}}}]},{"name":"update_mint_apply_timelock","discriminator":[223,241,80,24,120,25,82,134],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_mint","writable":true},{"name":"request_queue","optional":true,"pda":{"seeds":[{"kind":"const","value":[114,101,113,117,101,115,116,45,113,117,101,117,101]},{"kind":"account","path":"glam_mint"}]}},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"token_2022_program","address":"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"},{"name":"glam_protocol","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[]},{"name":"validate_aum","docs":["Validates AUM of the vault and emits AumRecord event."],"discriminator":[101,15,233,89,134,123,224,99],"accounts":[{"name":"glam_state"},{"name":"signer","writable":true,"signer":true},{"name":"event_authority","optional":true,"pda":{"seeds":[{"kind":"const","value":[95,95,101,118,101,110,116,95,97,117,116,104,111,114,105,116,121]}]}},{"name":"event_program","optional":true,"address":"gstgm1M39mhgnvgyScGUDRwNn5kNVSd97hTtyow1Et5"}],"args":[]}],"accounts":[{"name":"GlobalConfig","discriminator":[149,8,156,202,160,252,176,217]},{"name":"RequestQueue","discriminator":[172,124,172,253,233,63,70,234]},{"name":"StateAccount","discriminator":[142,247,54,95,85,133,249,103]}],"events":[{"name":"AumRecord","discriminator":[162,116,55,29,223,230,239,205]},{"name":"PricedProtocolRecord","discriminator":[232,89,187,82,49,200,127,132]}],"errors":[{"code":6000,"name":"InvalidAuthority","msg":"Invalid authority"},{"code":6001,"name":"UnauthorizedSigner","msg":"Signer is not authorized"},{"code":6002,"name":"ActionPaused","msg":"Requested action is paused"},{"code":6003,"name":"InvalidAsset","msg":"Asset not allowed to subscribe"},{"code":6004,"name":"MaxCapExceeded","msg":"Max cap exceeded"},{"code":6005,"name":"InvalidAmount","msg":"Invalid amount for subscription or redemption"},{"code":6006,"name":"NewRequestNotAllowed","msg":"New request is not allowed"},{"code":6007,"name":"RequestNotClaimable","msg":"Request is not claimable"},{"code":6008,"name":"RequestNotCancellable","msg":"Request is not cancellable"},{"code":6009,"name":"RequestNotFound","msg":"Request not found"},{"code":6010,"name":"RequestQueueNotEmpty","msg":"Request queue not empty"},{"code":6011,"name":"InvalidRequestQueueData","msg":"Invalid request queue data"},{"code":6012,"name":"RequestQueueFull","msg":"Request queue full"},{"code":6013,"name":"ProtocolFeesNotCrystallized","msg":"Protocol fees should be crystallized before updating"},{"code":6014,"name":"AmountBelowMinimum","msg":"Amount is below the minimum required"},{"code":6015,"name":"ManagerFeesNotCrystallized","msg":"Manager fees should be crystallized before updating"},{"code":6016,"name":"AmountAboveMaximum","msg":"Amount exceeds maximum threshold"},{"code":6017,"name":"InsufficientEscrowBalance","msg":"Insufficient escrow balance for fee burn"},{"code":6018,"name":"TokenAclManagesFreezeThaw","msg":"Token ACL is enabled; freeze/thaw is managed by the Token ACL program"},{"code":6019,"name":"InvalidMintState","msg":"Invalid mint state"}],"types":[{"name":"AccountType","type":{"kind":"enum","variants":[{"name":"Vault"},{"name":"TokenizedVault"},{"name":"Mint"},{"name":"SingleAssetVault"}]}},{"name":"AccruedFees","type":{"kind":"struct","fields":[{"name":"vault_subscription_fee","type":"u128"},{"name":"vault_redemption_fee","type":"u128"},{"name":"manager_subscription_fee","type":"u128"},{"name":"manager_redemption_fee","type":"u128"},{"name":"management_fee","type":"u128"},{"name":"performance_fee","type":"u128"},{"name":"protocol_base_fee","type":"u128"},{"name":"protocol_flow_fee","type":"u128"}]}},{"name":"AssetMeta","type":{"kind":"struct","fields":[{"name":"asset","type":"pubkey"},{"name":"decimals","type":"u8"},{"name":"oracle","type":"pubkey"},{"name":"oracle_source","type":{"defined":{"name":"OracleSource"}}},{"name":"max_age_seconds","type":"u16"},{"name":"priority","type":"i8"},{"name":"padding","type":{"array":["u8",3]}}]}},{"name":"AumRecord","type":{"kind":"struct","fields":[{"name":"base_asset_amount","type":"i128"}]}},{"name":"CreatedModel","type":{"kind":"struct","fields":[{"name":"key","type":{"array":["u8",8]}},{"name":"created_by","type":"pubkey"},{"name":"created_at","type":"i64"}]}},{"name":"DelegateAcl","type":{"kind":"struct","fields":[{"name":"pubkey","type":"pubkey"},{"name":"integration_permissions","type":{"vec":{"defined":{"name":"IntegrationPermissions"}}}},{"name":"expires_at","type":"i64"}]}},{"name":"EmergencyUpdateMintArgs","type":{"kind":"struct","fields":[{"name":"request_type","type":{"defined":{"name":"RequestType"}}},{"name":"set_paused","type":"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":"subscription_fee_bps","type":"u16"},{"name":"redemption_fee_bps","type":"u16"}]}},{"name":"FeeParams","type":{"kind":"struct","fields":[{"name":"year_in_seconds","type":"u32"},{"name":"pa_high_water_mark","type":"i128"},{"name":"pa_last_nav","type":"i128"},{"name":"last_aum","type":"i128"},{"name":"last_performance_fee_crystallized","type":"i64"},{"name":"last_management_fee_crystallized","type":"i64"},{"name":"last_protocol_fee_crystallized","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":"GlobalConfig","type":{"kind":"struct","fields":[{"name":"admin","docs":["The authority that can modify the config"],"type":"pubkey"},{"name":"fee_authority","docs":["The authority that can modify fee structure of individual glam state and claim protocol fees"],"type":"pubkey"},{"name":"referrer","docs":["Default GLAM referrer"],"type":"pubkey"},{"name":"base_fee_bps","docs":["Default protocol base fee applied to all vaults"],"type":"u16"},{"name":"flow_fee_bps","docs":["Default protocol flow fee applied to all vaults"],"type":"u16"},{"name":"asset_metas","docs":["List of assets and their oracle configs supported by the protocol"],"type":{"vec":{"defined":{"name":"AssetMeta"}}}}]}},{"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":"integration_program","type":"pubkey"},{"name":"protocols_bitmask","type":"u16"},{"name":"protocol_policies","type":{"vec":{"defined":{"name":"ProtocolPolicy"}}}}]}},{"name":"IntegrationPermissions","docs":["Stores delegate permissions for an integration program."],"type":{"kind":"struct","fields":[{"name":"integration_program","type":"pubkey"},{"name":"protocol_permissions","type":{"vec":{"defined":{"name":"ProtocolPermissions"}}}}]}},{"name":"ManagementFee","type":{"kind":"struct","fields":[{"name":"fee_bps","type":"u16"}]}},{"name":"MintModel","type":{"kind":"struct","fields":[{"name":"symbol","type":{"option":"string"}},{"name":"name","type":{"option":{"array":["u8",32]}}},{"name":"uri","type":{"option":"string"}},{"name":"year_in_seconds","type":{"option":"u32"}},{"name":"permanent_delegate","type":{"option":"pubkey"}},{"name":"default_account_state_frozen","type":{"option":"bool"}},{"name":"fee_structure","type":{"option":{"defined":{"name":"FeeStructure"}}}},{"name":"notify_and_settle","type":{"option":{"defined":{"name":"NotifyAndSettle"}}}},{"name":"lockup_period","type":{"option":"u32"}},{"name":"max_cap","type":{"option":"u64"}},{"name":"min_subscription","type":{"option":"u64"}},{"name":"min_redemption","type":{"option":"u64"}},{"name":"allowlist","type":{"option":{"vec":"pubkey"}}},{"name":"blocklist","type":{"option":{"vec":"pubkey"}}}]}},{"name":"MintPolicy","type":{"kind":"struct","fields":[{"name":"lockup_period","type":"u32"},{"name":"max_cap","type":"u64"},{"name":"min_subscription","type":"u64"},{"name":"min_redemption","type":"u64"},{"name":"reserved","type":"u64"},{"name":"allowlist","type":{"option":{"vec":"pubkey"}}},{"name":"blocklist","type":{"option":{"vec":"pubkey"}}}]}},{"name":"NoticePeriodType","type":{"kind":"enum","variants":[{"name":"Hard"},{"name":"Soft"}]}},{"name":"NotifyAndSettle","type":{"kind":"struct","fields":[{"name":"model","type":{"defined":{"name":"ValuationModel"}}},{"name":"permissionless_fulfillment","type":"bool"},{"name":"subscribe_notice_period_type","type":{"defined":{"name":"NoticePeriodType"}}},{"name":"subscribe_notice_period","type":"u64"},{"name":"subscribe_settlement_period","type":"u64"},{"name":"subscribe_cancellation_window","type":"u64"},{"name":"redeem_notice_period_type","type":{"defined":{"name":"NoticePeriodType"}}},{"name":"redeem_notice_period","type":"u64"},{"name":"redeem_settlement_period","type":"u64"},{"name":"redeem_cancellation_window","type":"u64"},{"name":"time_unit","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":"max_ages_seconds","type":{"vec":{"array":["u16",2]}}},{"name":"padding","type":{"array":["u8",12]}}]}},{"name":"OracleSource","type":{"kind":"enum","variants":[{"name":"Pyth"},{"name":"Switchboard"},{"name":"QuoteAsset"},{"name":"Pyth1K"},{"name":"Pyth1M"},{"name":"PythStableCoin"},{"name":"Prelaunch"},{"name":"PythPull"},{"name":"Pyth1KPull"},{"name":"Pyth1MPull"},{"name":"PythStableCoinPull"},{"name":"SwitchboardOnDemand"},{"name":"PythLazer"},{"name":"PythLazer1K"},{"name":"PythLazer1M"},{"name":"PythLazerStableCoin"},{"name":"NotSet"},{"name":"LstPoolState"},{"name":"MarinadeState"},{"name":"BaseAsset"},{"name":"ChainlinkRWA"},{"name":"ChainlinkX"},{"name":"KaminoReserve"}]}},{"name":"PendingRequest","type":{"kind":"struct","fields":[{"name":"user","type":"pubkey"},{"name":"incoming","type":"u64"},{"name":"outgoing","type":"u64"},{"name":"created_at","type":"u64"},{"name":"fulfilled_at","type":"u64"},{"name":"time_unit","type":"u8"},{"name":"request_type","type":{"defined":{"name":"RequestType"}}},{"name":"reserved","type":{"array":["u8",6]}}]}},{"name":"PerformanceFee","type":{"kind":"struct","fields":[{"name":"fee_bps","type":"u16"},{"name":"hurdle_rate_bps","type":"u16"},{"name":"hurdle_type","type":{"defined":{"name":"HurdleType"}}}]}},{"name":"PricedProtocol","type":{"kind":"struct","fields":[{"name":"rent","type":"u64"},{"name":"amount","type":"i128"},{"name":"decimals","type":"u8"},{"name":"last_updated_slot","type":"u64"},{"name":"integration_program","type":"pubkey"},{"name":"protocol_bitflag","type":"u16"},{"name":"positions","type":{"vec":"pubkey"}}]}},{"name":"PricedProtocolRecord","type":{"kind":"struct","fields":[{"name":"base_asset_amount","type":"i128"}]}},{"name":"ProtocolFees","type":{"kind":"struct","fields":[{"name":"base_fee_bps","type":"u16"},{"name":"flow_fee_bps","type":"u16"}]}},{"name":"ProtocolPermissions","docs":["Represents a delegate\'s permissions for a specific protocol"],"type":{"kind":"struct","fields":[{"name":"protocol_bitflag","type":"u16"},{"name":"permissions_bitmask","type":"u64"}]}},{"name":"ProtocolPolicy","docs":["Stores policy data for an integrated protocol.","Integration programs serialize/deserialize this data."],"type":{"kind":"struct","fields":[{"name":"protocol_bitflag","type":"u16"},{"name":"data","type":"bytes"}]}},{"name":"RequestQueue","type":{"kind":"struct","fields":[{"name":"glam_state","type":"pubkey"},{"name":"glam_mint","type":"pubkey"},{"name":"subscription_paused","type":"bool"},{"name":"redemption_paused","type":"bool"},{"name":"data","type":{"vec":{"defined":{"name":"PendingRequest"}}}}]}},{"name":"RequestType","type":{"kind":"enum","variants":[{"name":"Subscription"},{"name":"Redemption"}]}},{"name":"StateAccount","type":{"kind":"struct","fields":[{"name":"account_type","type":{"defined":{"name":"AccountType"}}},{"name":"enabled","type":"bool"},{"name":"vault","type":"pubkey"},{"name":"owner","type":"pubkey"},{"name":"portfolio_manager_name","type":{"array":["u8",32]}},{"name":"created","type":{"defined":{"name":"CreatedModel"}}},{"name":"base_asset_mint","type":"pubkey"},{"name":"base_asset_decimals","type":"u8"},{"name":"base_asset_token_program","type":"u8"},{"name":"name","type":{"array":["u8",32]}},{"name":"timelock_duration","type":"u32"},{"name":"timelock_expires_at","type":"u64"},{"name":"mint","type":"pubkey"},{"name":"assets","type":{"vec":"pubkey"}},{"name":"integration_acls","type":{"vec":{"defined":{"name":"IntegrationAcl"}}}},{"name":"delegate_acls","type":{"vec":{"defined":{"name":"DelegateAcl"}}}},{"name":"external_positions","type":{"vec":"pubkey"}},{"name":"priced_protocols","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"}]}}],"constants":[{"name":"PROTO_MINT","type":"u16","value":"1"},{"name":"PROTO_MINT_PERM_BURN_TOKENS","type":"u64","value":"2"},{"name":"PROTO_MINT_PERM_CANCEL_REQUEST","type":"u64","value":"128"},{"name":"PROTO_MINT_PERM_CLAIM_FEES","type":"u64","value":"16"},{"name":"PROTO_MINT_PERM_CLAIM_REQUEST","type":"u64","value":"256"},{"name":"PROTO_MINT_PERM_EMERGENCY_UPDATE","type":"u64","value":"64"},{"name":"PROTO_MINT_PERM_FORCE_TRANSFER_TOKENS","type":"u64","value":"4"},{"name":"PROTO_MINT_PERM_FULFILL","type":"u64","value":"32"},{"name":"PROTO_MINT_PERM_MINT_TOKENS","type":"u64","value":"1"},{"name":"PROTO_MINT_PERM_SET_TOKEN_ACCOUNT_STATE","type":"u64","value":"8"},{"name":"PROTO_MINT_PERM_TOKEN_ACL_APPLY_LIST","type":"u64","value":"2048"},{"name":"PROTO_MINT_PERM_TOKEN_ACL_FREEZE_THAW","type":"u64","value":"512"},{"name":"PROTO_MINT_PERM_TOKEN_ACL_MANAGE_LIST","type":"u64","value":"1024"}]}');
|
|
353
353
|
|
|
354
354
|
/***/ }),
|
|
355
355
|
/* 21 */
|
|
@@ -405,7 +405,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"address":"gstgL6y4uWjsfM3Qjs5euoTDmE
|
|
|
405
405
|
/***/ ((module) => {
|
|
406
406
|
|
|
407
407
|
"use strict";
|
|
408
|
-
module.exports = /*#__PURE__*/JSON.parse('{"address":"gstgNyHgtURH7iuMn19GQczzv6Wc9fhPV2WDySZVyKx","metadata":{"name":"ext_neutral","version":"0.1.0","spec":"0.1.0","description":"Neutral bundle integration for GLAM Protocol"},"instructions":[{"name":"close_user_bundle_account","docs":["Close an empty Neutral user bundle account and remove it from GLAM external positions.","","- Permission: `CloseUserBundleAccount`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[201,195,126,228,9,173,79,215],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"user_bundle_account","writable":true},{"name":"bundle_account"}],"args":[]},{"name":"initialize_bundle_depositor","docs":["Initialize a non-permissioned Neutral user bundle account for the GLAM vault.","","- Permission: `InitializeBundleDepositor`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[126,6,242,36,22,209,35,2],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"bundle_account","writable":true},{"name":"user_bundle_account","writable":true}],"args":[]},{"name":"initialize_permissioned_bundle_depositor","docs":["Initialize a permissioned Neutral user bundle account for the GLAM vault.","","- Permission: `InitializePermissionedBundleDepositor`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[157,162,213,42,205,201,37,255],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"bundle_account","writable":true},{"name":"user_bundle_account","writable":true}],"args":[]},{"name":"request_deposit","docs":["Request a Neutral bundle deposit from the GLAM vault\'s token account.","","- Permission: `RequestDeposit`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[243,202,197,215,135,97,213,109],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"user_token_account","writable":true},{"name":"pending_deposit_token_account","writable":true},{"name":"treasury_account","writable":true},{"name":"user_bundle_account","writable":true},{"name":"asset_address","writable":true},{"name":"oracle_data","writable":true},{"name":"bundle_temp_data","writable":true},{"name":"bundle_account","writable":true},{"name":"pending_bundle_asset_authority","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"}],"args":[{"name":"amount","type":"u64"}]},{"name":"request_withdrawal","docs":["Request a Neutral bundle withdrawal for the GLAM vault.","","- Permission: `RequestWithdrawal`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[251,85,121,205,56,201,12,177],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"user_bundle_account","writable":true},{"name":"bundle_account","writable":true},{"name":"oracle_data","writable":true},{"name":"bundle_temp_data","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"rent","address":"SysvarRent111111111111111111111111111111111"}],"args":[{"name":"shares_amount","type":"u128"},{"name":"min_estimated_value","type":"u64"}]},{"name":"set_neutral_policy","docs":["Set the Neutral bundle allowlist policy."],"discriminator":[82,190,30,24,221,135,158,215],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"policy","type":{"defined":{"name":"NeutralPolicy"}}}]}],"accounts":[{"name":"StateAccount","discriminator":[142,247,54,95,85,133,249,103]}],"errors":[{"code":6000,"name":"InvalidNeutralAccount","msg":"Invalid Neutral account"},{"code":6001,"name":"InvalidNeutralDiscriminator","msg":"Invalid Neutral account discriminator"},{"code":6002,"name":"InvalidNeutralPda","msg":"Invalid Neutral PDA"},{"code":6003,"name":"InvalidTokenAccount","msg":"Invalid token account"},{"code":6004,"name":"InvalidAmount","msg":"Invalid amount"},{"code":6005,"name":"BundleAllowlistTooLarge","msg":"Neutral bundle allowlist exceeds the maximum length"},{"code":6006,"name":"DefaultBundleNotAllowed","msg":"Neutral bundle allowlist contains the default pubkey"},{"code":6007,"name":"DuplicateBundle","msg":"Neutral bundle allowlist contains a duplicate bundle"},{"code":6008,"name":"InvalidPermissionMode","msg":"Neutral bundle permission mode does not match the instruction"},{"code":6009,"name":"UnexpectedSigner","msg":"Unexpected signer passed to Neutral CPI"},{"code":6010,"name":"DuplicateAccount","msg":"Duplicate account passed to Neutral CPI"},{"code":6011,"name":"ArithmeticOverflow","msg":"Arithmetic overflow during Neutral validation"},{"code":6012,"name":"InvalidUserBundleAccount","msg":"Invalid user bundle account"},{"code":6013,"name":"UserBundleAccountNotEmpty","msg":"User bundle account is not empty"},{"code":6014,"name":"UserBundleAccountAlreadyInitialized","msg":"User bundle account is already initialized"},{"code":6015,"name":"UserBundleAccountNotClosed","msg":"User bundle account was not closed"},{"code":6016,"name":"UnsupportedTokenProgram","msg":"Neutral asset mint must be owned by the legacy SPL Token program"},{"code":6017,"name":"EstimatedWithdrawalValueTooLow","msg":"Estimated withdrawal value is below the caller minimum"}],"types":[{"name":"AccountType","type":{"kind":"enum","variants":[{"name":"Vault"},{"name":"TokenizedVault"},{"name":"Mint"},{"name":"SingleAssetVault"}]}},{"name":"AccruedFees","type":{"kind":"struct","fields":[{"name":"vault_subscription_fee","type":"u128"},{"name":"vault_redemption_fee","type":"u128"},{"name":"manager_subscription_fee","type":"u128"},{"name":"manager_redemption_fee","type":"u128"},{"name":"management_fee","type":"u128"},{"name":"performance_fee","type":"u128"},{"name":"protocol_base_fee","type":"u128"},{"name":"protocol_flow_fee","type":"u128"}]}},{"name":"CreatedModel","type":{"kind":"struct","fields":[{"name":"key","type":{"array":["u8",8]}},{"name":"created_by","type":"pubkey"},{"name":"created_at","type":"i64"}]}},{"name":"DelegateAcl","type":{"kind":"struct","fields":[{"name":"pubkey","type":"pubkey"},{"name":"integration_permissions","type":{"vec":{"defined":{"name":"IntegrationPermissions"}}}},{"name":"expires_at","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":"subscription_fee_bps","type":"u16"},{"name":"redemption_fee_bps","type":"u16"}]}},{"name":"FeeParams","type":{"kind":"struct","fields":[{"name":"year_in_seconds","type":"u32"},{"name":"pa_high_water_mark","type":"i128"},{"name":"pa_last_nav","type":"i128"},{"name":"last_aum","type":"i128"},{"name":"last_performance_fee_crystallized","type":"i64"},{"name":"last_management_fee_crystallized","type":"i64"},{"name":"last_protocol_fee_crystallized","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":"integration_program","type":"pubkey"},{"name":"protocols_bitmask","type":"u16"},{"name":"protocol_policies","type":{"vec":{"defined":{"name":"ProtocolPolicy"}}}}]}},{"name":"IntegrationPermissions","docs":["Stores delegate permissions for an integration program."],"type":{"kind":"struct","fields":[{"name":"integration_program","type":"pubkey"},{"name":"protocol_permissions","type":{"vec":{"defined":{"name":"ProtocolPermissions"}}}}]}},{"name":"ManagementFee","type":{"kind":"struct","fields":[{"name":"fee_bps","type":"u16"}]}},{"name":"NeutralPolicy","type":{"kind":"struct","fields":[{"name":"bundles_allowlist","type":{"vec":"pubkey"}}]}},{"name":"NoticePeriodType","type":{"kind":"enum","variants":[{"name":"Hard"},{"name":"Soft"}]}},{"name":"NotifyAndSettle","type":{"kind":"struct","fields":[{"name":"model","type":{"defined":{"name":"ValuationModel"}}},{"name":"permissionless_fulfillment","type":"bool"},{"name":"subscribe_notice_period_type","type":{"defined":{"name":"NoticePeriodType"}}},{"name":"subscribe_notice_period","type":"u64"},{"name":"subscribe_settlement_period","type":"u64"},{"name":"subscribe_cancellation_window","type":"u64"},{"name":"redeem_notice_period_type","type":{"defined":{"name":"NoticePeriodType"}}},{"name":"redeem_notice_period","type":"u64"},{"name":"redeem_settlement_period","type":"u64"},{"name":"redeem_cancellation_window","type":"u64"},{"name":"time_unit","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":"max_ages_seconds","type":{"vec":{"array":["u16",2]}}},{"name":"padding","type":{"array":["u8",12]}}]}},{"name":"PerformanceFee","type":{"kind":"struct","fields":[{"name":"fee_bps","type":"u16"},{"name":"hurdle_rate_bps","type":"u16"},{"name":"hurdle_type","type":{"defined":{"name":"HurdleType"}}}]}},{"name":"PricedProtocol","type":{"kind":"struct","fields":[{"name":"rent","type":"u64"},{"name":"amount","type":"i128"},{"name":"decimals","type":"u8"},{"name":"last_updated_slot","type":"u64"},{"name":"integration_program","type":"pubkey"},{"name":"protocol_bitflag","type":"u16"},{"name":"positions","type":{"vec":"pubkey"}}]}},{"name":"ProtocolFees","type":{"kind":"struct","fields":[{"name":"base_fee_bps","type":"u16"},{"name":"flow_fee_bps","type":"u16"}]}},{"name":"ProtocolPermissions","docs":["Represents a delegate\'s permissions for a specific protocol"],"type":{"kind":"struct","fields":[{"name":"protocol_bitflag","type":"u16"},{"name":"permissions_bitmask","type":"u64"}]}},{"name":"ProtocolPolicy","docs":["Stores policy data for an integrated protocol.","Integration programs serialize/deserialize this data."],"type":{"kind":"struct","fields":[{"name":"protocol_bitflag","type":"u16"},{"name":"data","type":"bytes"}]}},{"name":"StateAccount","type":{"kind":"struct","fields":[{"name":"account_type","type":{"defined":{"name":"AccountType"}}},{"name":"enabled","type":"bool"},{"name":"vault","type":"pubkey"},{"name":"owner","type":"pubkey"},{"name":"portfolio_manager_name","type":{"array":["u8",32]}},{"name":"created","type":{"defined":{"name":"CreatedModel"}}},{"name":"base_asset_mint","type":"pubkey"},{"name":"base_asset_decimals","type":"u8"},{"name":"base_asset_token_program","type":"u8"},{"name":"name","type":{"array":["u8",32]}},{"name":"timelock_duration","type":"u32"},{"name":"timelock_expires_at","type":"u64"},{"name":"mint","type":"pubkey"},{"name":"assets","type":{"vec":"pubkey"}},{"name":"integration_acls","type":{"vec":{"defined":{"name":"IntegrationAcl"}}}},{"name":"delegate_acls","type":{"vec":{"defined":{"name":"DelegateAcl"}}}},{"name":"external_positions","type":{"vec":"pubkey"}},{"name":"priced_protocols","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"}]}}],"constants":[{"name":"PROTO_NEUTRAL","type":"u16","value":"1"},{"name":"PROTO_NEUTRAL_PERM_CLOSE_USER_BUNDLE_ACCOUNT","type":"u64","value":"16"},{"name":"PROTO_NEUTRAL_PERM_INITIALIZE_BUNDLE_DEPOSITOR","type":"u64","value":"1"},{"name":"PROTO_NEUTRAL_PERM_INITIALIZE_PERMISSIONED_BUNDLE_DEPOSITOR","type":"u64","value":"2"},{"name":"PROTO_NEUTRAL_PERM_REQUEST_DEPOSIT","type":"u64","value":"4"},{"name":"PROTO_NEUTRAL_PERM_REQUEST_WITHDRAWAL","type":"u64","value":"8"}]}');
|
|
408
|
+
module.exports = /*#__PURE__*/JSON.parse('{"address":"gstgNyHgtURH7iuMn19GQczzv6Wc9fhPV2WDySZVyKx","metadata":{"name":"ext_neutral","version":"0.1.0","spec":"0.1.0","description":"Neutral bundle integration for GLAM Protocol"},"instructions":[{"name":"close_user_bundle_account","docs":["Close an empty Neutral user bundle account and remove it from GLAM external positions.","","- Permission: `CloseUserBundleAccount`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[201,195,126,228,9,173,79,215],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"user_bundle_account","writable":true},{"name":"bundle_account"}],"args":[]},{"name":"initialize_bundle_depositor","docs":["Initialize a non-permissioned Neutral user bundle account for the GLAM vault.","","- Permission: `InitializeBundleDepositor`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[126,6,242,36,22,209,35,2],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"bundle_account","writable":true},{"name":"user_bundle_account","writable":true}],"args":[]},{"name":"request_deposit","docs":["Request a Neutral bundle deposit from the GLAM vault\'s token account.","","- Permission: `RequestDeposit`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[243,202,197,215,135,97,213,109],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"user_token_account","writable":true},{"name":"pending_deposit_token_account","writable":true},{"name":"treasury_account","writable":true},{"name":"user_bundle_account","writable":true},{"name":"asset_address","writable":true},{"name":"oracle_data","writable":true},{"name":"bundle_temp_data","writable":true},{"name":"bundle_account","writable":true},{"name":"pending_bundle_asset_authority","writable":true},{"name":"token_program"}],"args":[{"name":"amount","type":"u64"}]},{"name":"request_withdrawal","docs":["Request a Neutral bundle withdrawal for the GLAM vault.","","- Permission: `RequestWithdrawal`.","- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."],"discriminator":[251,85,121,205,56,201,12,177],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[118,97,117,108,116]},{"kind":"account","path":"glam_state"}],"program":{"kind":"account","path":"glam_protocol_program"}}},{"name":"glam_signer","writable":true,"signer":true},{"name":"integration_authority","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":"cpi_program","address":"BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU"},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"user_bundle_account","writable":true},{"name":"bundle_account","writable":true},{"name":"oracle_data","writable":true},{"name":"bundle_temp_data","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"rent","address":"SysvarRent111111111111111111111111111111111"}],"args":[{"name":"shares_amount","type":"u128"},{"name":"min_estimated_value","type":"u64"}]},{"name":"set_neutral_policy","docs":["Set the Neutral bundle allowlist policy."],"discriminator":[82,190,30,24,221,135,158,215],"accounts":[{"name":"glam_state","writable":true},{"name":"glam_signer","writable":true,"signer":true},{"name":"glam_protocol_program","address":"gstgptmbgJVi5f8ZmSRVZjZkDQwqKa3xWuUtD5WmJHz"}],"args":[{"name":"policy","type":{"defined":{"name":"NeutralPolicy"}}}]}],"accounts":[{"name":"StateAccount","discriminator":[142,247,54,95,85,133,249,103]}],"errors":[{"code":6000,"name":"InvalidNeutralAccount","msg":"Invalid Neutral account"},{"code":6001,"name":"InvalidNeutralDiscriminator","msg":"Invalid Neutral account discriminator"},{"code":6002,"name":"InvalidNeutralPda","msg":"Invalid Neutral PDA"},{"code":6003,"name":"InvalidTokenAccount","msg":"Invalid token account"},{"code":6004,"name":"InvalidAmount","msg":"Invalid amount"},{"code":6005,"name":"BundleAllowlistTooLarge","msg":"Neutral bundle allowlist exceeds the maximum length"},{"code":6006,"name":"DefaultBundleNotAllowed","msg":"Neutral bundle allowlist contains the default pubkey"},{"code":6007,"name":"DuplicateBundle","msg":"Neutral bundle allowlist contains a duplicate bundle"},{"code":6008,"name":"InvalidPermissionMode","msg":"Neutral bundle permission mode does not match the instruction"},{"code":6009,"name":"UnexpectedSigner","msg":"Unexpected signer passed to Neutral CPI"},{"code":6010,"name":"DuplicateAccount","msg":"Duplicate account passed to Neutral CPI"},{"code":6011,"name":"ArithmeticOverflow","msg":"Arithmetic overflow during Neutral validation"},{"code":6012,"name":"InvalidUserBundleAccount","msg":"Invalid user bundle account"},{"code":6013,"name":"UserBundleAccountNotEmpty","msg":"User bundle account is not empty"},{"code":6014,"name":"UserBundleAccountAlreadyInitialized","msg":"User bundle account is already initialized"},{"code":6015,"name":"UserBundleAccountNotClosed","msg":"User bundle account was not closed"},{"code":6016,"name":"UnsupportedTokenProgram","msg":"Neutral asset mint must be owned by the legacy SPL Token program"},{"code":6017,"name":"EstimatedWithdrawalValueTooLow","msg":"Estimated withdrawal value is below the caller minimum"}],"types":[{"name":"AccountType","type":{"kind":"enum","variants":[{"name":"Vault"},{"name":"TokenizedVault"},{"name":"Mint"},{"name":"SingleAssetVault"}]}},{"name":"AccruedFees","type":{"kind":"struct","fields":[{"name":"vault_subscription_fee","type":"u128"},{"name":"vault_redemption_fee","type":"u128"},{"name":"manager_subscription_fee","type":"u128"},{"name":"manager_redemption_fee","type":"u128"},{"name":"management_fee","type":"u128"},{"name":"performance_fee","type":"u128"},{"name":"protocol_base_fee","type":"u128"},{"name":"protocol_flow_fee","type":"u128"}]}},{"name":"CreatedModel","type":{"kind":"struct","fields":[{"name":"key","type":{"array":["u8",8]}},{"name":"created_by","type":"pubkey"},{"name":"created_at","type":"i64"}]}},{"name":"DelegateAcl","type":{"kind":"struct","fields":[{"name":"pubkey","type":"pubkey"},{"name":"integration_permissions","type":{"vec":{"defined":{"name":"IntegrationPermissions"}}}},{"name":"expires_at","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":"subscription_fee_bps","type":"u16"},{"name":"redemption_fee_bps","type":"u16"}]}},{"name":"FeeParams","type":{"kind":"struct","fields":[{"name":"year_in_seconds","type":"u32"},{"name":"pa_high_water_mark","type":"i128"},{"name":"pa_last_nav","type":"i128"},{"name":"last_aum","type":"i128"},{"name":"last_performance_fee_crystallized","type":"i64"},{"name":"last_management_fee_crystallized","type":"i64"},{"name":"last_protocol_fee_crystallized","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":"integration_program","type":"pubkey"},{"name":"protocols_bitmask","type":"u16"},{"name":"protocol_policies","type":{"vec":{"defined":{"name":"ProtocolPolicy"}}}}]}},{"name":"IntegrationPermissions","docs":["Stores delegate permissions for an integration program."],"type":{"kind":"struct","fields":[{"name":"integration_program","type":"pubkey"},{"name":"protocol_permissions","type":{"vec":{"defined":{"name":"ProtocolPermissions"}}}}]}},{"name":"ManagementFee","type":{"kind":"struct","fields":[{"name":"fee_bps","type":"u16"}]}},{"name":"NeutralPolicy","type":{"kind":"struct","fields":[{"name":"bundles_allowlist","type":{"vec":"pubkey"}}]}},{"name":"NoticePeriodType","type":{"kind":"enum","variants":[{"name":"Hard"},{"name":"Soft"}]}},{"name":"NotifyAndSettle","type":{"kind":"struct","fields":[{"name":"model","type":{"defined":{"name":"ValuationModel"}}},{"name":"permissionless_fulfillment","type":"bool"},{"name":"subscribe_notice_period_type","type":{"defined":{"name":"NoticePeriodType"}}},{"name":"subscribe_notice_period","type":"u64"},{"name":"subscribe_settlement_period","type":"u64"},{"name":"subscribe_cancellation_window","type":"u64"},{"name":"redeem_notice_period_type","type":{"defined":{"name":"NoticePeriodType"}}},{"name":"redeem_notice_period","type":"u64"},{"name":"redeem_settlement_period","type":"u64"},{"name":"redeem_cancellation_window","type":"u64"},{"name":"time_unit","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":"max_ages_seconds","type":{"vec":{"array":["u16",2]}}},{"name":"padding","type":{"array":["u8",12]}}]}},{"name":"PerformanceFee","type":{"kind":"struct","fields":[{"name":"fee_bps","type":"u16"},{"name":"hurdle_rate_bps","type":"u16"},{"name":"hurdle_type","type":{"defined":{"name":"HurdleType"}}}]}},{"name":"PricedProtocol","type":{"kind":"struct","fields":[{"name":"rent","type":"u64"},{"name":"amount","type":"i128"},{"name":"decimals","type":"u8"},{"name":"last_updated_slot","type":"u64"},{"name":"integration_program","type":"pubkey"},{"name":"protocol_bitflag","type":"u16"},{"name":"positions","type":{"vec":"pubkey"}}]}},{"name":"ProtocolFees","type":{"kind":"struct","fields":[{"name":"base_fee_bps","type":"u16"},{"name":"flow_fee_bps","type":"u16"}]}},{"name":"ProtocolPermissions","docs":["Represents a delegate\'s permissions for a specific protocol"],"type":{"kind":"struct","fields":[{"name":"protocol_bitflag","type":"u16"},{"name":"permissions_bitmask","type":"u64"}]}},{"name":"ProtocolPolicy","docs":["Stores policy data for an integrated protocol.","Integration programs serialize/deserialize this data."],"type":{"kind":"struct","fields":[{"name":"protocol_bitflag","type":"u16"},{"name":"data","type":"bytes"}]}},{"name":"StateAccount","type":{"kind":"struct","fields":[{"name":"account_type","type":{"defined":{"name":"AccountType"}}},{"name":"enabled","type":"bool"},{"name":"vault","type":"pubkey"},{"name":"owner","type":"pubkey"},{"name":"portfolio_manager_name","type":{"array":["u8",32]}},{"name":"created","type":{"defined":{"name":"CreatedModel"}}},{"name":"base_asset_mint","type":"pubkey"},{"name":"base_asset_decimals","type":"u8"},{"name":"base_asset_token_program","type":"u8"},{"name":"name","type":{"array":["u8",32]}},{"name":"timelock_duration","type":"u32"},{"name":"timelock_expires_at","type":"u64"},{"name":"mint","type":"pubkey"},{"name":"assets","type":{"vec":"pubkey"}},{"name":"integration_acls","type":{"vec":{"defined":{"name":"IntegrationAcl"}}}},{"name":"delegate_acls","type":{"vec":{"defined":{"name":"DelegateAcl"}}}},{"name":"external_positions","type":{"vec":"pubkey"}},{"name":"priced_protocols","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"}]}}],"constants":[{"name":"PROTO_NEUTRAL","type":"u16","value":"1"},{"name":"PROTO_NEUTRAL_PERM_CLOSE_USER_BUNDLE_ACCOUNT","type":"u64","value":"8"},{"name":"PROTO_NEUTRAL_PERM_INITIALIZE_BUNDLE_DEPOSITOR","type":"u64","value":"1"},{"name":"PROTO_NEUTRAL_PERM_REQUEST_DEPOSIT","type":"u64","value":"2"},{"name":"PROTO_NEUTRAL_PERM_REQUEST_WITHDRAWAL","type":"u64","value":"4"}]}');
|
|
409
409
|
|
|
410
410
|
/***/ }),
|
|
411
411
|
/* 29 */
|
|
@@ -3763,17 +3763,17 @@ const state_1 = __webpack_require__(72);
|
|
|
3763
3763
|
const kamino_1 = __webpack_require__(73);
|
|
3764
3764
|
const invest_1 = __webpack_require__(79);
|
|
3765
3765
|
const price_1 = __webpack_require__(81);
|
|
3766
|
-
const fees_1 = __webpack_require__(
|
|
3766
|
+
const fees_1 = __webpack_require__(88);
|
|
3767
3767
|
const mint_1 = __webpack_require__(80);
|
|
3768
|
-
const access_1 = __webpack_require__(
|
|
3769
|
-
const timelock_1 = __webpack_require__(
|
|
3770
|
-
const stake_1 = __webpack_require__(
|
|
3771
|
-
const stake_pool_1 = __webpack_require__(
|
|
3772
|
-
const cctp_1 = __webpack_require__(
|
|
3768
|
+
const access_1 = __webpack_require__(89);
|
|
3769
|
+
const timelock_1 = __webpack_require__(90);
|
|
3770
|
+
const stake_1 = __webpack_require__(91);
|
|
3771
|
+
const stake_pool_1 = __webpack_require__(92);
|
|
3772
|
+
const cctp_1 = __webpack_require__(94);
|
|
3773
3773
|
const bridge_1 = __webpack_require__(84);
|
|
3774
|
-
const epi_1 = __webpack_require__(
|
|
3775
|
-
const loopscale_1 = __webpack_require__(
|
|
3776
|
-
const neutral_1 = __webpack_require__(
|
|
3774
|
+
const epi_1 = __webpack_require__(95);
|
|
3775
|
+
const loopscale_1 = __webpack_require__(96);
|
|
3776
|
+
const neutral_1 = __webpack_require__(87);
|
|
3777
3777
|
/**
|
|
3778
3778
|
* Main entrypoint for the GLAM SDK
|
|
3779
3779
|
*
|
|
@@ -8312,6 +8312,8 @@ const spl_token_1 = __webpack_require__(31);
|
|
|
8312
8312
|
const deser_1 = __webpack_require__(82);
|
|
8313
8313
|
const constants_1 = __webpack_require__(39);
|
|
8314
8314
|
const bridge_1 = __webpack_require__(84);
|
|
8315
|
+
const neutral_1 = __webpack_require__(87);
|
|
8316
|
+
const integrationPolicies_1 = __webpack_require__(34);
|
|
8315
8317
|
/**
|
|
8316
8318
|
* Represents a single asset holding within a vault.
|
|
8317
8319
|
*
|
|
@@ -8951,6 +8953,71 @@ class PriceClient {
|
|
|
8951
8953
|
.instruction();
|
|
8952
8954
|
return { ixs: [ix], kaminoReserves: Array.from(kaminoReserves) };
|
|
8953
8955
|
}
|
|
8956
|
+
async priceNeutralBundleDepositorsIx() {
|
|
8957
|
+
const stateModel = this.cachedStateModel ?? (await this.base.fetchStateModel());
|
|
8958
|
+
const externalPositions = new utils_1.PkSet(stateModel.externalPositions ?? []);
|
|
8959
|
+
const policy = await this.base.fetchProtocolPolicy(this.base.extNeutralProgram.programId, neutral_1.NEUTRAL_PROTOCOL, integrationPolicies_1.NeutralPolicy);
|
|
8960
|
+
if (!policy || policy.bundlesAllowlist.length === 0) {
|
|
8961
|
+
return { ixs: [], kaminoReserves: [] };
|
|
8962
|
+
}
|
|
8963
|
+
const positions = policy.bundlesAllowlist
|
|
8964
|
+
.map((bundle) => ({
|
|
8965
|
+
bundle,
|
|
8966
|
+
userBundle: (0, neutral_1.getNeutralUserBundlePda)(this.base.vaultPda, bundle),
|
|
8967
|
+
}))
|
|
8968
|
+
.filter(({ userBundle }) => externalPositions.has(userBundle));
|
|
8969
|
+
if (positions.length === 0) {
|
|
8970
|
+
return { ixs: [], kaminoReserves: [] };
|
|
8971
|
+
}
|
|
8972
|
+
const bundleInfos = await this.base.connection.getMultipleAccountsInfo(positions.map(({ bundle }) => bundle), "confirmed");
|
|
8973
|
+
const [solUsdOracle, baseAssetOracle, baseAssetMeta] = await Promise.all([
|
|
8974
|
+
this.base.getSolOracle(),
|
|
8975
|
+
this.getBaseAssetOracle(),
|
|
8976
|
+
this.base.getAssetMeta(stateModel.baseAssetMint),
|
|
8977
|
+
]);
|
|
8978
|
+
const kaminoReserves = new utils_1.PkSet();
|
|
8979
|
+
if (baseAssetMeta.oracleSource === "KaminoReserve") {
|
|
8980
|
+
kaminoReserves.add(baseAssetMeta.oracle);
|
|
8981
|
+
}
|
|
8982
|
+
const remainingAccounts = [];
|
|
8983
|
+
for (let i = 0; i < positions.length; i++) {
|
|
8984
|
+
const { bundle, userBundle } = positions[i];
|
|
8985
|
+
const bundleInfo = bundleInfos[i];
|
|
8986
|
+
if (!bundleInfo) {
|
|
8987
|
+
throw new Error(`Neutral bundle account not found: ${bundle}`);
|
|
8988
|
+
}
|
|
8989
|
+
if (!bundleInfo.owner.equals(neutral_1.NTBUNDLE_PROGRAM_ID)) {
|
|
8990
|
+
throw new Error(`Neutral bundle ${bundle} is owned by ${bundleInfo.owner}, expected ${neutral_1.NTBUNDLE_PROGRAM_ID}`);
|
|
8991
|
+
}
|
|
8992
|
+
const bundleAccount = neutral_1.NeutralBundleAccount.decode(bundle, bundleInfo.data);
|
|
8993
|
+
const bundleAssetMeta = await this.base.getAssetMeta(bundleAccount.assetAddress);
|
|
8994
|
+
if (bundleAssetMeta.oracleSource === "KaminoReserve") {
|
|
8995
|
+
kaminoReserves.add(bundleAssetMeta.oracle);
|
|
8996
|
+
}
|
|
8997
|
+
[
|
|
8998
|
+
userBundle,
|
|
8999
|
+
bundle,
|
|
9000
|
+
(0, neutral_1.getNeutralOracleDataPda)(bundle),
|
|
9001
|
+
bundleAssetMeta.oracle,
|
|
9002
|
+
].forEach((pubkey) => {
|
|
9003
|
+
remainingAccounts.push({
|
|
9004
|
+
pubkey,
|
|
9005
|
+
isSigner: false,
|
|
9006
|
+
isWritable: false,
|
|
9007
|
+
});
|
|
9008
|
+
});
|
|
9009
|
+
}
|
|
9010
|
+
const ix = await this.base.mintProgram.methods
|
|
9011
|
+
.priceNeutralBundleDepositors()
|
|
9012
|
+
.accounts({
|
|
9013
|
+
glamState: this.base.statePda,
|
|
9014
|
+
solUsdOracle,
|
|
9015
|
+
baseAssetOracle,
|
|
9016
|
+
})
|
|
9017
|
+
.remainingAccounts(remainingAccounts)
|
|
9018
|
+
.instruction();
|
|
9019
|
+
return { ixs: [ix], kaminoReserves: Array.from(kaminoReserves) };
|
|
9020
|
+
}
|
|
8954
9021
|
async priceEpiValidatedPositionsIx() {
|
|
8955
9022
|
const observationState = await this.epi.fetchObservationState();
|
|
8956
9023
|
if (!observationState) {
|
|
@@ -9022,6 +9089,10 @@ class PriceClient {
|
|
|
9022
9089
|
if (bridgeIntegrationAcl) {
|
|
9023
9090
|
chunks.push(await this.priceManagedTransfersIxs());
|
|
9024
9091
|
}
|
|
9092
|
+
const neutralIntegrationAcl = integrationAcls.find((acl) => acl.integrationProgram.equals(this.base.extNeutralProgram.programId) && (acl.protocolsBitmask & neutral_1.NEUTRAL_PROTOCOL) !== 0);
|
|
9093
|
+
if (neutralIntegrationAcl) {
|
|
9094
|
+
chunks.push(await this.priceNeutralBundleDepositorsIx());
|
|
9095
|
+
}
|
|
9025
9096
|
}
|
|
9026
9097
|
// Coalesce all kamino reserve refreshes into a single front-loaded ix.
|
|
9027
9098
|
const allReserves = new utils_1.PkSet();
|
|
@@ -10059,6 +10130,251 @@ function resolveCanonicalLayerzeroOftRouteProfile(params) {
|
|
|
10059
10130
|
|
|
10060
10131
|
"use strict";
|
|
10061
10132
|
|
|
10133
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
10134
|
+
exports.NeutralClient = exports.NeutralBundleAccount = exports.NEUTRAL_BUNDLE_DISCRIMINATOR = exports.NEUTRAL_PROTOCOL = exports.NTBUNDLE_PROGRAM_ID = void 0;
|
|
10135
|
+
exports.getNeutralUserBundlePda = getNeutralUserBundlePda;
|
|
10136
|
+
exports.getNeutralOracleDataPda = getNeutralOracleDataPda;
|
|
10137
|
+
exports.getNeutralBundleTempDataPda = getNeutralBundleTempDataPda;
|
|
10138
|
+
exports.getNeutralPendingBundleAssetAuthorityPda = getNeutralPendingBundleAssetAuthorityPda;
|
|
10139
|
+
exports.getNeutralPendingDepositTokenAccountPda = getNeutralPendingDepositTokenAccountPda;
|
|
10140
|
+
const anchor_1 = __webpack_require__(4);
|
|
10141
|
+
const web3_js_1 = __webpack_require__(5);
|
|
10142
|
+
const spl_token_1 = __webpack_require__(31);
|
|
10143
|
+
const borsh_1 = __webpack_require__(35);
|
|
10144
|
+
const base_1 = __webpack_require__(63);
|
|
10145
|
+
const integrationPolicies_1 = __webpack_require__(34);
|
|
10146
|
+
const constants_1 = __webpack_require__(39);
|
|
10147
|
+
Object.defineProperty(exports, "NTBUNDLE_PROGRAM_ID", ({ enumerable: true, get: function () { return constants_1.NTBUNDLE_PROGRAM_ID; } }));
|
|
10148
|
+
const utils_1 = __webpack_require__(37);
|
|
10149
|
+
exports.NEUTRAL_PROTOCOL = 0b1;
|
|
10150
|
+
exports.NEUTRAL_BUNDLE_DISCRIMINATOR = Buffer.from([
|
|
10151
|
+
15, 82, 167, 230, 37, 214, 82, 80,
|
|
10152
|
+
]);
|
|
10153
|
+
class NeutralBundleAccount {
|
|
10154
|
+
static decode(address, buffer) {
|
|
10155
|
+
const data = NeutralBundleAccount._layout.decode(buffer);
|
|
10156
|
+
if (!Buffer.from(data.discriminator).equals(exports.NEUTRAL_BUNDLE_DISCRIMINATOR)) {
|
|
10157
|
+
throw new Error("Account is not a Neutral Bundle account");
|
|
10158
|
+
}
|
|
10159
|
+
const account = new NeutralBundleAccount();
|
|
10160
|
+
Object.assign(account, { _address: address, ...data });
|
|
10161
|
+
return account;
|
|
10162
|
+
}
|
|
10163
|
+
getAddress() {
|
|
10164
|
+
return this._address;
|
|
10165
|
+
}
|
|
10166
|
+
get permissioned() {
|
|
10167
|
+
return this.permissionned;
|
|
10168
|
+
}
|
|
10169
|
+
toView() {
|
|
10170
|
+
return {
|
|
10171
|
+
treasuryAccount: this.treasuryAccount,
|
|
10172
|
+
assetAddress: this.assetAddress,
|
|
10173
|
+
assetDecimals: this.assetDecimals,
|
|
10174
|
+
permissioned: this.permissioned,
|
|
10175
|
+
};
|
|
10176
|
+
}
|
|
10177
|
+
}
|
|
10178
|
+
exports.NeutralBundleAccount = NeutralBundleAccount;
|
|
10179
|
+
NeutralBundleAccount._layout = (0, borsh_1.struct)([
|
|
10180
|
+
(0, borsh_1.array)((0, borsh_1.u8)(), 8, "discriminator"),
|
|
10181
|
+
(0, borsh_1.array)((0, borsh_1.u8)(), 32, "name"),
|
|
10182
|
+
(0, borsh_1.publicKey)("manager"),
|
|
10183
|
+
(0, borsh_1.publicKey)("keeper"),
|
|
10184
|
+
(0, borsh_1.publicKey)("treasuryAccount"),
|
|
10185
|
+
(0, borsh_1.vec)((0, borsh_1.publicKey)(), "allocatedReceivers"),
|
|
10186
|
+
(0, borsh_1.u64)("bundleUnderlyingBalance"),
|
|
10187
|
+
(0, borsh_1.u64)("maxDepositAmount"),
|
|
10188
|
+
(0, borsh_1.u64)("withdrawalDelay"),
|
|
10189
|
+
(0, borsh_1.u32)("performanceFee"),
|
|
10190
|
+
(0, borsh_1.u32)("managementFeeBps"),
|
|
10191
|
+
(0, borsh_1.u32)("depositFee"),
|
|
10192
|
+
(0, borsh_1.u32)("withdrawalFee"),
|
|
10193
|
+
(0, borsh_1.u128)("managerPfeeShares"),
|
|
10194
|
+
(0, borsh_1.u32)("currentAllocationBps"),
|
|
10195
|
+
(0, borsh_1.u64)("oracleBuffer"),
|
|
10196
|
+
(0, borsh_1.u128)("totalShares"),
|
|
10197
|
+
(0, borsh_1.u64)("assetPrecision"),
|
|
10198
|
+
(0, borsh_1.publicKey)("assetAddress"),
|
|
10199
|
+
(0, borsh_1.u8)("assetDecimals"),
|
|
10200
|
+
(0, borsh_1.i64)("withdrawalTMin"),
|
|
10201
|
+
(0, borsh_1.i64)("withdrawalTMax"),
|
|
10202
|
+
(0, borsh_1.f32)("withdrawalCurve"),
|
|
10203
|
+
(0, borsh_1.bool)("permissionned"),
|
|
10204
|
+
(0, borsh_1.u128)("managerMfeeShares"),
|
|
10205
|
+
(0, borsh_1.u64)("minDepositAmount"),
|
|
10206
|
+
(0, borsh_1.i64)("oracleUpdateTimeLimit"),
|
|
10207
|
+
(0, borsh_1.i64)("oracleMaxAge"),
|
|
10208
|
+
(0, borsh_1.i64)("withdrawalRedemptionRequestCutoffTs"),
|
|
10209
|
+
(0, borsh_1.i64)("withdrawalRedemptionUnlockCurrentCycleTs"),
|
|
10210
|
+
(0, borsh_1.i64)("withdrawalRedemptionUnlockNextCycleTs"),
|
|
10211
|
+
(0, borsh_1.array)((0, borsh_1.u8)(), 207, "padding"),
|
|
10212
|
+
]);
|
|
10213
|
+
function toBn(value) {
|
|
10214
|
+
if (anchor_1.BN.isBN(value)) {
|
|
10215
|
+
return value;
|
|
10216
|
+
}
|
|
10217
|
+
return new anchor_1.BN(value.toString());
|
|
10218
|
+
}
|
|
10219
|
+
function getNeutralUserBundlePda(authority, bundle) {
|
|
10220
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("USER_BUNDLE"), authority.toBuffer(), bundle.toBuffer()], constants_1.NTBUNDLE_PROGRAM_ID)[0];
|
|
10221
|
+
}
|
|
10222
|
+
function getNeutralOracleDataPda(bundle) {
|
|
10223
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("ORACLE"), bundle.toBuffer()], constants_1.NTBUNDLE_PROGRAM_ID)[0];
|
|
10224
|
+
}
|
|
10225
|
+
function getNeutralBundleTempDataPda(bundle) {
|
|
10226
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("BUNDLE_TEMP_DATA"), bundle.toBuffer()], constants_1.NTBUNDLE_PROGRAM_ID)[0];
|
|
10227
|
+
}
|
|
10228
|
+
function getNeutralPendingBundleAssetAuthorityPda(bundle) {
|
|
10229
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("PENDING_BUNDLE_ASSET_AUTHORITY"), bundle.toBuffer()], constants_1.NTBUNDLE_PROGRAM_ID)[0];
|
|
10230
|
+
}
|
|
10231
|
+
function getNeutralPendingDepositTokenAccountPda(pendingBundleAssetAuthority, assetAddress) {
|
|
10232
|
+
return (0, spl_token_1.getAssociatedTokenAddressSync)(assetAddress, pendingBundleAssetAuthority, true, spl_token_1.TOKEN_PROGRAM_ID);
|
|
10233
|
+
}
|
|
10234
|
+
class TxBuilder extends base_1.BaseTxBuilder {
|
|
10235
|
+
async setNeutralPolicyIx(policy, signer) {
|
|
10236
|
+
return await this.client.base.extNeutralProgram.methods
|
|
10237
|
+
.setNeutralPolicy(policy)
|
|
10238
|
+
.accountsPartial({
|
|
10239
|
+
glamState: this.client.base.statePda,
|
|
10240
|
+
glamSigner: signer || this.client.base.signer,
|
|
10241
|
+
glamProtocolProgram: this.client.base.protocolProgram.programId,
|
|
10242
|
+
})
|
|
10243
|
+
.instruction();
|
|
10244
|
+
}
|
|
10245
|
+
async setNeutralPolicyTx(policy, txOptions = {}) {
|
|
10246
|
+
const ix = await this.setNeutralPolicyIx(policy, txOptions.signer);
|
|
10247
|
+
return await this.buildVersionedTx([ix], txOptions);
|
|
10248
|
+
}
|
|
10249
|
+
async initializeBundleDepositorIx(accounts, signer) {
|
|
10250
|
+
const bundle = await this.client.fetchBundle(accounts.bundle);
|
|
10251
|
+
if (bundle.permissioned) {
|
|
10252
|
+
throw new Error("Bundle is permissioned. Use initializePermissionedBundleDepositor instead.");
|
|
10253
|
+
}
|
|
10254
|
+
return await this.client.base.extNeutralProgram.methods
|
|
10255
|
+
.initializeBundleDepositor()
|
|
10256
|
+
.accountsPartial({
|
|
10257
|
+
...this.client.baseAccounts(signer),
|
|
10258
|
+
bundleAccount: accounts.bundle,
|
|
10259
|
+
userBundleAccount: accounts.userBundleAccount ||
|
|
10260
|
+
this.client.getUserBundlePda(accounts.bundle),
|
|
10261
|
+
})
|
|
10262
|
+
.instruction();
|
|
10263
|
+
}
|
|
10264
|
+
async initializeBundleDepositorTx(accounts, txOptions = {}) {
|
|
10265
|
+
const ix = await this.initializeBundleDepositorIx(accounts, txOptions.signer);
|
|
10266
|
+
return await this.buildVersionedTx([ix], txOptions);
|
|
10267
|
+
}
|
|
10268
|
+
async requestDepositIx(accounts, amount, signer) {
|
|
10269
|
+
const bundle = await this.client.fetchBundle(accounts.bundle);
|
|
10270
|
+
const tokenProgram = accounts.tokenProgram || spl_token_1.TOKEN_PROGRAM_ID;
|
|
10271
|
+
const assetAddress = accounts.assetAddress || bundle.assetAddress;
|
|
10272
|
+
const pendingBundleAssetAuthority = accounts.pendingBundleAssetAuthority ||
|
|
10273
|
+
this.client.getPendingBundleAssetAuthorityPda(accounts.bundle);
|
|
10274
|
+
return await this.client.base.extNeutralProgram.methods
|
|
10275
|
+
.requestDeposit(toBn(amount))
|
|
10276
|
+
.accountsPartial({
|
|
10277
|
+
...this.client.baseAccounts(signer),
|
|
10278
|
+
userTokenAccount: accounts.userTokenAccount ||
|
|
10279
|
+
this.client.base.getVaultAta(assetAddress, tokenProgram),
|
|
10280
|
+
pendingDepositTokenAccount: accounts.pendingDepositTokenAccount ||
|
|
10281
|
+
getNeutralPendingDepositTokenAccountPda(pendingBundleAssetAuthority, assetAddress),
|
|
10282
|
+
treasuryAccount: accounts.treasuryAccount || bundle.treasuryAccount,
|
|
10283
|
+
userBundleAccount: accounts.userBundleAccount ||
|
|
10284
|
+
this.client.getUserBundlePda(accounts.bundle),
|
|
10285
|
+
assetAddress,
|
|
10286
|
+
oracleData: accounts.oracleData || this.client.getOracleDataPda(accounts.bundle),
|
|
10287
|
+
bundleTempData: accounts.bundleTempData ||
|
|
10288
|
+
this.client.getBundleTempDataPda(accounts.bundle),
|
|
10289
|
+
bundleAccount: accounts.bundle,
|
|
10290
|
+
pendingBundleAssetAuthority,
|
|
10291
|
+
tokenProgram,
|
|
10292
|
+
})
|
|
10293
|
+
.instruction();
|
|
10294
|
+
}
|
|
10295
|
+
async requestDepositTx(accounts, amount, txOptions = {}) {
|
|
10296
|
+
const ix = await this.requestDepositIx(accounts, amount, txOptions.signer);
|
|
10297
|
+
return await this.buildVersionedTx([ix], txOptions);
|
|
10298
|
+
}
|
|
10299
|
+
}
|
|
10300
|
+
class NeutralClient {
|
|
10301
|
+
constructor(base) {
|
|
10302
|
+
this.base = base;
|
|
10303
|
+
this.txBuilder = new TxBuilder(this);
|
|
10304
|
+
}
|
|
10305
|
+
baseAccounts(signer) {
|
|
10306
|
+
return {
|
|
10307
|
+
glamState: this.base.statePda,
|
|
10308
|
+
glamVault: this.base.vaultPda,
|
|
10309
|
+
glamSigner: signer || this.base.signer,
|
|
10310
|
+
integrationAuthority: this.getIntegrationAuthorityPda(),
|
|
10311
|
+
cpiProgram: constants_1.NTBUNDLE_PROGRAM_ID,
|
|
10312
|
+
glamProtocolProgram: this.base.protocolProgram.programId,
|
|
10313
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
10314
|
+
};
|
|
10315
|
+
}
|
|
10316
|
+
getIntegrationAuthorityPda() {
|
|
10317
|
+
return (0, utils_1.getIntegrationAuthorityPda)(this.base.extNeutralProgram.programId);
|
|
10318
|
+
}
|
|
10319
|
+
getUserBundlePda(bundle) {
|
|
10320
|
+
return getNeutralUserBundlePda(this.base.vaultPda, bundle);
|
|
10321
|
+
}
|
|
10322
|
+
getOracleDataPda(bundle) {
|
|
10323
|
+
return getNeutralOracleDataPda(bundle);
|
|
10324
|
+
}
|
|
10325
|
+
getBundleTempDataPda(bundle) {
|
|
10326
|
+
return getNeutralBundleTempDataPda(bundle);
|
|
10327
|
+
}
|
|
10328
|
+
getPendingBundleAssetAuthorityPda(bundle) {
|
|
10329
|
+
return getNeutralPendingBundleAssetAuthorityPda(bundle);
|
|
10330
|
+
}
|
|
10331
|
+
async fetchBundle(bundle) {
|
|
10332
|
+
const account = await this.base.connection.getAccountInfo(bundle);
|
|
10333
|
+
if (!account) {
|
|
10334
|
+
throw new Error(`Neutral bundle account not found: ${bundle}`);
|
|
10335
|
+
}
|
|
10336
|
+
if (!account.owner.equals(constants_1.NTBUNDLE_PROGRAM_ID)) {
|
|
10337
|
+
throw new Error(`Neutral bundle ${bundle} is owned by ${account.owner}, expected ${constants_1.NTBUNDLE_PROGRAM_ID}`);
|
|
10338
|
+
}
|
|
10339
|
+
return NeutralBundleAccount.decode(bundle, account.data);
|
|
10340
|
+
}
|
|
10341
|
+
async fetchPolicy() {
|
|
10342
|
+
return await this.base.fetchProtocolPolicy(this.base.extNeutralProgram.programId, exports.NEUTRAL_PROTOCOL, integrationPolicies_1.NeutralPolicy);
|
|
10343
|
+
}
|
|
10344
|
+
async setPolicy(policy, txOptions = {}) {
|
|
10345
|
+
const tx = await this.txBuilder.setNeutralPolicyTx(policy, txOptions);
|
|
10346
|
+
return await this.base.sendAndConfirm(tx);
|
|
10347
|
+
}
|
|
10348
|
+
async allowlistBundle(bundle, txOptions = {}) {
|
|
10349
|
+
const policy = (await this.fetchPolicy()) ?? new integrationPolicies_1.NeutralPolicy([]);
|
|
10350
|
+
if (policy.bundlesAllowlist.find((b) => b.equals(bundle))) {
|
|
10351
|
+
throw new Error(`Neutral bundle ${bundle} is already in the allowlist`);
|
|
10352
|
+
}
|
|
10353
|
+
policy.bundlesAllowlist.push(bundle);
|
|
10354
|
+
return await this.setPolicy(policy, txOptions);
|
|
10355
|
+
}
|
|
10356
|
+
async initializeBundleDepositor(bundle, txOptions = {}) {
|
|
10357
|
+
const tx = await this.txBuilder.initializeBundleDepositorTx({ bundle }, txOptions);
|
|
10358
|
+
return await this.base.sendAndConfirm(tx);
|
|
10359
|
+
}
|
|
10360
|
+
async requestDeposit(bundle, amount, txOptions = {}) {
|
|
10361
|
+
const tx = await this.txBuilder.requestDepositTx({ bundle }, amount, txOptions);
|
|
10362
|
+
return await this.base.sendAndConfirm(tx);
|
|
10363
|
+
}
|
|
10364
|
+
async requestDepositUiAmount(bundle, amount, txOptions = {}) {
|
|
10365
|
+
const bundleAccount = await this.fetchBundle(bundle);
|
|
10366
|
+
return await this.requestDeposit(bundle, (0, utils_1.fromUiAmount)(amount, bundleAccount.assetDecimals), txOptions);
|
|
10367
|
+
}
|
|
10368
|
+
}
|
|
10369
|
+
exports.NeutralClient = NeutralClient;
|
|
10370
|
+
|
|
10371
|
+
|
|
10372
|
+
/***/ }),
|
|
10373
|
+
/* 88 */
|
|
10374
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
10375
|
+
|
|
10376
|
+
"use strict";
|
|
10377
|
+
|
|
10062
10378
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
10063
10379
|
exports.FeesClient = void 0;
|
|
10064
10380
|
const spl_token_1 = __webpack_require__(31);
|
|
@@ -10231,7 +10547,7 @@ exports.FeesClient = FeesClient;
|
|
|
10231
10547
|
|
|
10232
10548
|
|
|
10233
10549
|
/***/ }),
|
|
10234
|
-
/*
|
|
10550
|
+
/* 89 */
|
|
10235
10551
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
10236
10552
|
|
|
10237
10553
|
"use strict";
|
|
@@ -10431,7 +10747,7 @@ exports.AccessClient = AccessClient;
|
|
|
10431
10747
|
|
|
10432
10748
|
|
|
10433
10749
|
/***/ }),
|
|
10434
|
-
/*
|
|
10750
|
+
/* 90 */
|
|
10435
10751
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
10436
10752
|
|
|
10437
10753
|
"use strict";
|
|
@@ -10532,7 +10848,7 @@ exports.TimelockClient = TimelockClient;
|
|
|
10532
10848
|
|
|
10533
10849
|
|
|
10534
10850
|
/***/ }),
|
|
10535
|
-
/*
|
|
10851
|
+
/* 91 */
|
|
10536
10852
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
10537
10853
|
|
|
10538
10854
|
"use strict";
|
|
@@ -10756,7 +11072,7 @@ exports.StakeClient = StakeClient;
|
|
|
10756
11072
|
|
|
10757
11073
|
|
|
10758
11074
|
/***/ }),
|
|
10759
|
-
/*
|
|
11075
|
+
/* 92 */
|
|
10760
11076
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
10761
11077
|
|
|
10762
11078
|
"use strict";
|
|
@@ -10767,7 +11083,7 @@ const anchor_1 = __webpack_require__(4);
|
|
|
10767
11083
|
const web3_js_1 = __webpack_require__(5);
|
|
10768
11084
|
const constants_1 = __webpack_require__(39);
|
|
10769
11085
|
const base_1 = __webpack_require__(63);
|
|
10770
|
-
const spl_stake_pool_1 = __webpack_require__(
|
|
11086
|
+
const spl_stake_pool_1 = __webpack_require__(93);
|
|
10771
11087
|
const spl_token_1 = __webpack_require__(31);
|
|
10772
11088
|
const accounts_1 = __webpack_require__(38);
|
|
10773
11089
|
const assets_1 = __webpack_require__(66);
|
|
@@ -10971,14 +11287,14 @@ exports.StakePoolClient = StakePoolClient;
|
|
|
10971
11287
|
|
|
10972
11288
|
|
|
10973
11289
|
/***/ }),
|
|
10974
|
-
/*
|
|
11290
|
+
/* 93 */
|
|
10975
11291
|
/***/ ((module) => {
|
|
10976
11292
|
|
|
10977
11293
|
"use strict";
|
|
10978
11294
|
module.exports = require("@solana/spl-stake-pool");
|
|
10979
11295
|
|
|
10980
11296
|
/***/ }),
|
|
10981
|
-
/*
|
|
11297
|
+
/* 94 */
|
|
10982
11298
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
10983
11299
|
|
|
10984
11300
|
"use strict";
|
|
@@ -11494,7 +11810,7 @@ exports.CctpClient = CctpClient;
|
|
|
11494
11810
|
|
|
11495
11811
|
|
|
11496
11812
|
/***/ }),
|
|
11497
|
-
/*
|
|
11813
|
+
/* 95 */
|
|
11498
11814
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
11499
11815
|
|
|
11500
11816
|
"use strict";
|
|
@@ -11632,7 +11948,7 @@ exports.EpiClient = EpiClient;
|
|
|
11632
11948
|
|
|
11633
11949
|
|
|
11634
11950
|
/***/ }),
|
|
11635
|
-
/*
|
|
11951
|
+
/* 96 */
|
|
11636
11952
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
11637
11953
|
|
|
11638
11954
|
"use strict";
|
|
@@ -11826,273 +12142,6 @@ class LoopscaleClient {
|
|
|
11826
12142
|
exports.LoopscaleClient = LoopscaleClient;
|
|
11827
12143
|
|
|
11828
12144
|
|
|
11829
|
-
/***/ }),
|
|
11830
|
-
/* 96 */
|
|
11831
|
-
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
11832
|
-
|
|
11833
|
-
"use strict";
|
|
11834
|
-
|
|
11835
|
-
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
11836
|
-
exports.NeutralClient = exports.NeutralBundleAccount = exports.NEUTRAL_BUNDLE_DISCRIMINATOR = exports.NEUTRAL_PROTOCOL = void 0;
|
|
11837
|
-
exports.getNeutralUserBundlePda = getNeutralUserBundlePda;
|
|
11838
|
-
exports.getNeutralOracleDataPda = getNeutralOracleDataPda;
|
|
11839
|
-
exports.getNeutralBundleTempDataPda = getNeutralBundleTempDataPda;
|
|
11840
|
-
exports.getNeutralPendingBundleAssetAuthorityPda = getNeutralPendingBundleAssetAuthorityPda;
|
|
11841
|
-
exports.getNeutralPendingDepositTokenAccountPda = getNeutralPendingDepositTokenAccountPda;
|
|
11842
|
-
const anchor_1 = __webpack_require__(4);
|
|
11843
|
-
const web3_js_1 = __webpack_require__(5);
|
|
11844
|
-
const spl_token_1 = __webpack_require__(31);
|
|
11845
|
-
const borsh_1 = __webpack_require__(35);
|
|
11846
|
-
const base_1 = __webpack_require__(63);
|
|
11847
|
-
const integrationPolicies_1 = __webpack_require__(34);
|
|
11848
|
-
const constants_1 = __webpack_require__(39);
|
|
11849
|
-
const utils_1 = __webpack_require__(37);
|
|
11850
|
-
exports.NEUTRAL_PROTOCOL = 0b1;
|
|
11851
|
-
exports.NEUTRAL_BUNDLE_DISCRIMINATOR = Buffer.from([
|
|
11852
|
-
15, 82, 167, 230, 37, 214, 82, 80,
|
|
11853
|
-
]);
|
|
11854
|
-
class NeutralBundleAccount {
|
|
11855
|
-
static decode(address, buffer) {
|
|
11856
|
-
const data = NeutralBundleAccount._layout.decode(buffer);
|
|
11857
|
-
if (!Buffer.from(data.discriminator).equals(exports.NEUTRAL_BUNDLE_DISCRIMINATOR)) {
|
|
11858
|
-
throw new Error("Account is not a Neutral Bundle account");
|
|
11859
|
-
}
|
|
11860
|
-
const account = new NeutralBundleAccount();
|
|
11861
|
-
Object.assign(account, { _address: address, ...data });
|
|
11862
|
-
return account;
|
|
11863
|
-
}
|
|
11864
|
-
getAddress() {
|
|
11865
|
-
return this._address;
|
|
11866
|
-
}
|
|
11867
|
-
get permissioned() {
|
|
11868
|
-
return this.permissionned;
|
|
11869
|
-
}
|
|
11870
|
-
toView() {
|
|
11871
|
-
return {
|
|
11872
|
-
treasuryAccount: this.treasuryAccount,
|
|
11873
|
-
assetAddress: this.assetAddress,
|
|
11874
|
-
assetDecimals: this.assetDecimals,
|
|
11875
|
-
permissioned: this.permissioned,
|
|
11876
|
-
};
|
|
11877
|
-
}
|
|
11878
|
-
}
|
|
11879
|
-
exports.NeutralBundleAccount = NeutralBundleAccount;
|
|
11880
|
-
NeutralBundleAccount._layout = (0, borsh_1.struct)([
|
|
11881
|
-
(0, borsh_1.array)((0, borsh_1.u8)(), 8, "discriminator"),
|
|
11882
|
-
(0, borsh_1.array)((0, borsh_1.u8)(), 32, "name"),
|
|
11883
|
-
(0, borsh_1.publicKey)("manager"),
|
|
11884
|
-
(0, borsh_1.publicKey)("keeper"),
|
|
11885
|
-
(0, borsh_1.publicKey)("treasuryAccount"),
|
|
11886
|
-
(0, borsh_1.vec)((0, borsh_1.publicKey)(), "allocatedReceivers"),
|
|
11887
|
-
(0, borsh_1.u64)("bundleUnderlyingBalance"),
|
|
11888
|
-
(0, borsh_1.u64)("maxDepositAmount"),
|
|
11889
|
-
(0, borsh_1.u64)("withdrawalDelay"),
|
|
11890
|
-
(0, borsh_1.u32)("performanceFee"),
|
|
11891
|
-
(0, borsh_1.u32)("managementFeeBps"),
|
|
11892
|
-
(0, borsh_1.u32)("depositFee"),
|
|
11893
|
-
(0, borsh_1.u32)("withdrawalFee"),
|
|
11894
|
-
(0, borsh_1.u128)("managerPfeeShares"),
|
|
11895
|
-
(0, borsh_1.u32)("currentAllocationBps"),
|
|
11896
|
-
(0, borsh_1.u64)("oracleBuffer"),
|
|
11897
|
-
(0, borsh_1.u128)("totalShares"),
|
|
11898
|
-
(0, borsh_1.u64)("assetPrecision"),
|
|
11899
|
-
(0, borsh_1.publicKey)("assetAddress"),
|
|
11900
|
-
(0, borsh_1.u8)("assetDecimals"),
|
|
11901
|
-
(0, borsh_1.i64)("withdrawalTMin"),
|
|
11902
|
-
(0, borsh_1.i64)("withdrawalTMax"),
|
|
11903
|
-
(0, borsh_1.f32)("withdrawalCurve"),
|
|
11904
|
-
(0, borsh_1.bool)("permissionned"),
|
|
11905
|
-
(0, borsh_1.u128)("managerMfeeShares"),
|
|
11906
|
-
(0, borsh_1.u64)("minDepositAmount"),
|
|
11907
|
-
(0, borsh_1.i64)("oracleUpdateTimeLimit"),
|
|
11908
|
-
(0, borsh_1.i64)("oracleMaxAge"),
|
|
11909
|
-
(0, borsh_1.i64)("withdrawalRedemptionRequestCutoffTs"),
|
|
11910
|
-
(0, borsh_1.i64)("withdrawalRedemptionUnlockCurrentCycleTs"),
|
|
11911
|
-
(0, borsh_1.i64)("withdrawalRedemptionUnlockNextCycleTs"),
|
|
11912
|
-
(0, borsh_1.array)((0, borsh_1.u8)(), 207, "padding"),
|
|
11913
|
-
]);
|
|
11914
|
-
function toBn(value) {
|
|
11915
|
-
if (anchor_1.BN.isBN(value)) {
|
|
11916
|
-
return value;
|
|
11917
|
-
}
|
|
11918
|
-
return new anchor_1.BN(value.toString());
|
|
11919
|
-
}
|
|
11920
|
-
function getNeutralUserBundlePda(authority, bundle) {
|
|
11921
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("USER_BUNDLE"), authority.toBuffer(), bundle.toBuffer()], constants_1.NTBUNDLE_PROGRAM_ID)[0];
|
|
11922
|
-
}
|
|
11923
|
-
function getNeutralOracleDataPda(bundle) {
|
|
11924
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("ORACLE"), bundle.toBuffer()], constants_1.NTBUNDLE_PROGRAM_ID)[0];
|
|
11925
|
-
}
|
|
11926
|
-
function getNeutralBundleTempDataPda(bundle) {
|
|
11927
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("BUNDLE_TEMP_DATA"), bundle.toBuffer()], constants_1.NTBUNDLE_PROGRAM_ID)[0];
|
|
11928
|
-
}
|
|
11929
|
-
function getNeutralPendingBundleAssetAuthorityPda(bundle) {
|
|
11930
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("PENDING_BUNDLE_ASSET_AUTHORITY"), bundle.toBuffer()], constants_1.NTBUNDLE_PROGRAM_ID)[0];
|
|
11931
|
-
}
|
|
11932
|
-
function getNeutralPendingDepositTokenAccountPda(pendingBundleAssetAuthority, assetAddress) {
|
|
11933
|
-
return (0, spl_token_1.getAssociatedTokenAddressSync)(assetAddress, pendingBundleAssetAuthority, true, spl_token_1.TOKEN_PROGRAM_ID);
|
|
11934
|
-
}
|
|
11935
|
-
class TxBuilder extends base_1.BaseTxBuilder {
|
|
11936
|
-
async setNeutralPolicyIx(policy, signer) {
|
|
11937
|
-
return await this.client.base.extNeutralProgram.methods
|
|
11938
|
-
.setNeutralPolicy(policy)
|
|
11939
|
-
.accountsPartial({
|
|
11940
|
-
glamState: this.client.base.statePda,
|
|
11941
|
-
glamSigner: signer || this.client.base.signer,
|
|
11942
|
-
glamProtocolProgram: this.client.base.protocolProgram.programId,
|
|
11943
|
-
})
|
|
11944
|
-
.instruction();
|
|
11945
|
-
}
|
|
11946
|
-
async setNeutralPolicyTx(policy, txOptions = {}) {
|
|
11947
|
-
const ix = await this.setNeutralPolicyIx(policy, txOptions.signer);
|
|
11948
|
-
return await this.buildVersionedTx([ix], txOptions);
|
|
11949
|
-
}
|
|
11950
|
-
async initializeBundleDepositorIx(accounts, signer) {
|
|
11951
|
-
const bundle = await this.client.fetchBundle(accounts.bundle);
|
|
11952
|
-
if (bundle.permissioned) {
|
|
11953
|
-
throw new Error("Bundle is permissioned. Use initializePermissionedBundleDepositor instead.");
|
|
11954
|
-
}
|
|
11955
|
-
return await this.client.base.extNeutralProgram.methods
|
|
11956
|
-
.initializeBundleDepositor()
|
|
11957
|
-
.accountsPartial({
|
|
11958
|
-
...this.client.baseAccounts(signer),
|
|
11959
|
-
bundleAccount: accounts.bundle,
|
|
11960
|
-
userBundleAccount: accounts.userBundleAccount ||
|
|
11961
|
-
this.client.getUserBundlePda(accounts.bundle),
|
|
11962
|
-
})
|
|
11963
|
-
.instruction();
|
|
11964
|
-
}
|
|
11965
|
-
async initializeBundleDepositorTx(accounts, txOptions = {}) {
|
|
11966
|
-
const ix = await this.initializeBundleDepositorIx(accounts, txOptions.signer);
|
|
11967
|
-
return await this.buildVersionedTx([ix], txOptions);
|
|
11968
|
-
}
|
|
11969
|
-
async initializePermissionedBundleDepositorIx(accounts, signer) {
|
|
11970
|
-
const bundle = await this.client.fetchBundle(accounts.bundle);
|
|
11971
|
-
if (!bundle.permissioned) {
|
|
11972
|
-
throw new Error("Bundle is not permissioned. Use initializeBundleDepositor instead.");
|
|
11973
|
-
}
|
|
11974
|
-
return await this.client.base.extNeutralProgram.methods
|
|
11975
|
-
.initializePermissionedBundleDepositor()
|
|
11976
|
-
.accountsPartial({
|
|
11977
|
-
...this.client.baseAccounts(signer),
|
|
11978
|
-
bundleAccount: accounts.bundle,
|
|
11979
|
-
userBundleAccount: accounts.userBundleAccount ||
|
|
11980
|
-
this.client.getUserBundlePda(accounts.bundle),
|
|
11981
|
-
})
|
|
11982
|
-
.instruction();
|
|
11983
|
-
}
|
|
11984
|
-
async initializePermissionedBundleDepositorTx(accounts, txOptions = {}) {
|
|
11985
|
-
const ix = await this.initializePermissionedBundleDepositorIx(accounts, txOptions.signer);
|
|
11986
|
-
return await this.buildVersionedTx([ix], txOptions);
|
|
11987
|
-
}
|
|
11988
|
-
async requestDepositIx(accounts, amount, signer) {
|
|
11989
|
-
const bundle = await this.client.fetchBundle(accounts.bundle);
|
|
11990
|
-
const tokenProgram = accounts.tokenProgram || spl_token_1.TOKEN_PROGRAM_ID;
|
|
11991
|
-
const assetAddress = accounts.assetAddress || bundle.assetAddress;
|
|
11992
|
-
const pendingBundleAssetAuthority = accounts.pendingBundleAssetAuthority ||
|
|
11993
|
-
this.client.getPendingBundleAssetAuthorityPda(accounts.bundle);
|
|
11994
|
-
return await this.client.base.extNeutralProgram.methods
|
|
11995
|
-
.requestDeposit(toBn(amount))
|
|
11996
|
-
.accountsPartial({
|
|
11997
|
-
...this.client.baseAccounts(signer),
|
|
11998
|
-
userTokenAccount: accounts.userTokenAccount ||
|
|
11999
|
-
this.client.base.getVaultAta(assetAddress, tokenProgram),
|
|
12000
|
-
pendingDepositTokenAccount: accounts.pendingDepositTokenAccount ||
|
|
12001
|
-
getNeutralPendingDepositTokenAccountPda(pendingBundleAssetAuthority, assetAddress),
|
|
12002
|
-
treasuryAccount: accounts.treasuryAccount || bundle.treasuryAccount,
|
|
12003
|
-
userBundleAccount: accounts.userBundleAccount ||
|
|
12004
|
-
this.client.getUserBundlePda(accounts.bundle),
|
|
12005
|
-
assetAddress,
|
|
12006
|
-
oracleData: accounts.oracleData || this.client.getOracleDataPda(accounts.bundle),
|
|
12007
|
-
bundleTempData: accounts.bundleTempData ||
|
|
12008
|
-
this.client.getBundleTempDataPda(accounts.bundle),
|
|
12009
|
-
bundleAccount: accounts.bundle,
|
|
12010
|
-
pendingBundleAssetAuthority,
|
|
12011
|
-
tokenProgram,
|
|
12012
|
-
})
|
|
12013
|
-
.instruction();
|
|
12014
|
-
}
|
|
12015
|
-
async requestDepositTx(accounts, amount, txOptions = {}) {
|
|
12016
|
-
const ix = await this.requestDepositIx(accounts, amount, txOptions.signer);
|
|
12017
|
-
return await this.buildVersionedTx([ix], txOptions);
|
|
12018
|
-
}
|
|
12019
|
-
}
|
|
12020
|
-
class NeutralClient {
|
|
12021
|
-
constructor(base) {
|
|
12022
|
-
this.base = base;
|
|
12023
|
-
this.txBuilder = new TxBuilder(this);
|
|
12024
|
-
}
|
|
12025
|
-
baseAccounts(signer) {
|
|
12026
|
-
return {
|
|
12027
|
-
glamState: this.base.statePda,
|
|
12028
|
-
glamVault: this.base.vaultPda,
|
|
12029
|
-
glamSigner: signer || this.base.signer,
|
|
12030
|
-
integrationAuthority: this.getIntegrationAuthorityPda(),
|
|
12031
|
-
cpiProgram: constants_1.NTBUNDLE_PROGRAM_ID,
|
|
12032
|
-
glamProtocolProgram: this.base.protocolProgram.programId,
|
|
12033
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
12034
|
-
};
|
|
12035
|
-
}
|
|
12036
|
-
getIntegrationAuthorityPda() {
|
|
12037
|
-
return (0, utils_1.getIntegrationAuthorityPda)(this.base.extNeutralProgram.programId);
|
|
12038
|
-
}
|
|
12039
|
-
getUserBundlePda(bundle) {
|
|
12040
|
-
return getNeutralUserBundlePda(this.base.vaultPda, bundle);
|
|
12041
|
-
}
|
|
12042
|
-
getOracleDataPda(bundle) {
|
|
12043
|
-
return getNeutralOracleDataPda(bundle);
|
|
12044
|
-
}
|
|
12045
|
-
getBundleTempDataPda(bundle) {
|
|
12046
|
-
return getNeutralBundleTempDataPda(bundle);
|
|
12047
|
-
}
|
|
12048
|
-
getPendingBundleAssetAuthorityPda(bundle) {
|
|
12049
|
-
return getNeutralPendingBundleAssetAuthorityPda(bundle);
|
|
12050
|
-
}
|
|
12051
|
-
async fetchBundle(bundle) {
|
|
12052
|
-
const account = await this.base.connection.getAccountInfo(bundle);
|
|
12053
|
-
if (!account) {
|
|
12054
|
-
throw new Error(`Neutral bundle account not found: ${bundle}`);
|
|
12055
|
-
}
|
|
12056
|
-
if (!account.owner.equals(constants_1.NTBUNDLE_PROGRAM_ID)) {
|
|
12057
|
-
throw new Error(`Neutral bundle ${bundle} is owned by ${account.owner}, expected ${constants_1.NTBUNDLE_PROGRAM_ID}`);
|
|
12058
|
-
}
|
|
12059
|
-
return NeutralBundleAccount.decode(bundle, account.data);
|
|
12060
|
-
}
|
|
12061
|
-
async fetchPolicy() {
|
|
12062
|
-
return await this.base.fetchProtocolPolicy(this.base.extNeutralProgram.programId, exports.NEUTRAL_PROTOCOL, integrationPolicies_1.NeutralPolicy);
|
|
12063
|
-
}
|
|
12064
|
-
async setPolicy(policy, txOptions = {}) {
|
|
12065
|
-
const tx = await this.txBuilder.setNeutralPolicyTx(policy, txOptions);
|
|
12066
|
-
return await this.base.sendAndConfirm(tx);
|
|
12067
|
-
}
|
|
12068
|
-
async allowlistBundle(bundle, txOptions = {}) {
|
|
12069
|
-
const policy = (await this.fetchPolicy()) ?? new integrationPolicies_1.NeutralPolicy([]);
|
|
12070
|
-
if (policy.bundlesAllowlist.find((b) => b.equals(bundle))) {
|
|
12071
|
-
throw new Error(`Neutral bundle ${bundle} is already in the allowlist`);
|
|
12072
|
-
}
|
|
12073
|
-
policy.bundlesAllowlist.push(bundle);
|
|
12074
|
-
return await this.setPolicy(policy, txOptions);
|
|
12075
|
-
}
|
|
12076
|
-
async initializeBundleDepositor(bundle, txOptions = {}) {
|
|
12077
|
-
const tx = await this.txBuilder.initializeBundleDepositorTx({ bundle }, txOptions);
|
|
12078
|
-
return await this.base.sendAndConfirm(tx);
|
|
12079
|
-
}
|
|
12080
|
-
async initializePermissionedBundleDepositor(bundle, txOptions = {}) {
|
|
12081
|
-
const tx = await this.txBuilder.initializePermissionedBundleDepositorTx({ bundle }, txOptions);
|
|
12082
|
-
return await this.base.sendAndConfirm(tx);
|
|
12083
|
-
}
|
|
12084
|
-
async requestDeposit(bundle, amount, txOptions = {}) {
|
|
12085
|
-
const tx = await this.txBuilder.requestDepositTx({ bundle }, amount, txOptions);
|
|
12086
|
-
return await this.base.sendAndConfirm(tx);
|
|
12087
|
-
}
|
|
12088
|
-
async requestDepositUiAmount(bundle, amount, txOptions = {}) {
|
|
12089
|
-
const bundleAccount = await this.fetchBundle(bundle);
|
|
12090
|
-
return await this.requestDeposit(bundle, (0, utils_1.fromUiAmount)(amount, bundleAccount.assetDecimals), txOptions);
|
|
12091
|
-
}
|
|
12092
|
-
}
|
|
12093
|
-
exports.NeutralClient = NeutralClient;
|
|
12094
|
-
|
|
12095
|
-
|
|
12096
12145
|
/***/ }),
|
|
12097
12146
|
/* 97 */
|
|
12098
12147
|
/***/ ((module, exports, __webpack_require__) => {
|
|
@@ -51594,7 +51643,7 @@ program
|
|
|
51594
51643
|
await initialize(config, skipSimulation);
|
|
51595
51644
|
await (0, idl_1.idlCheck)(context.glamClient);
|
|
51596
51645
|
})
|
|
51597
|
-
.version("1.1.0-alpha.
|
|
51646
|
+
.version("1.1.0-alpha.1");
|
|
51598
51647
|
program
|
|
51599
51648
|
.command("env")
|
|
51600
51649
|
.description("Display current environment setup")
|