@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.
Files changed (2) hide show
  1. package/main.js +341 -292
  2. 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__(89), exports);
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__(87);
3766
+ const fees_1 = __webpack_require__(88);
3767
3767
  const mint_1 = __webpack_require__(80);
3768
- const access_1 = __webpack_require__(88);
3769
- const timelock_1 = __webpack_require__(89);
3770
- const stake_1 = __webpack_require__(90);
3771
- const stake_pool_1 = __webpack_require__(91);
3772
- const cctp_1 = __webpack_require__(93);
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__(94);
3775
- const loopscale_1 = __webpack_require__(95);
3776
- const neutral_1 = __webpack_require__(96);
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
- /* 88 */
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
- /* 89 */
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
- /* 90 */
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
- /* 91 */
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__(92);
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
- /* 92 */
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
- /* 93 */
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
- /* 94 */
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
- /* 95 */
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.0");
51646
+ .version("1.1.0-alpha.1");
51598
51647
  program
51599
51648
  .command("env")
51600
51649
  .description("Display current environment setup")