/** * Program IDL in camelCase format in order to be used in JS/TS. * * Note that this is only a type helper and is not the actual IDL. The original * IDL can be found at `target/idl/ext_bridge.json`. */ export type ExtBridge = { "address": "G1NTbnLcjMex9Tjo8ocmNK9S2zBCiGVuxKUUNGhYZztx", "metadata": { "name": "extBridge", "version": "1.0.0", "spec": "0.1.0", "description": "Bridge integration for GLAM Protocol" }, "instructions": [ { "name": "addLayerzeroOftRoute", "discriminator": [ 53, 181, 204, 38, 240, 57, 218, 148 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamSigner", "writable": true, "signer": true }, { "name": "glamProtocolProgram", "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz" } ], "args": [ { "name": "route", "type": { "defined": { "name": "layerzeroOftRoute" } } } ] }, { "name": "commitOftTransfer", "docs": [ "Verifies the OFT send completed and records the resulting transfer." ], "discriminator": [ 246, 116, 17, 13, 64, 227, 248, 78 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamVault", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 118, 97, 117, 108, 116 ] }, { "kind": "account", "path": "glamState" } ], "program": { "kind": "account", "path": "glamProtocolProgram" } } }, { "name": "glamSigner", "writable": true, "signer": true }, { "name": "cpiProgram" }, { "name": "glamProtocolProgram", "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz" }, { "name": "instructions", "address": "Sysvar1nstructions1111111111111111111111111" }, { "name": "bridgeRegistry", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 98, 114, 105, 100, 103, 101, 45, 114, 101, 103, 105, 115, 116, 114, 121 ] }, { "kind": "account", "path": "glamState" } ] } }, { "name": "bridgeSession", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 98, 114, 105, 100, 103, 101, 45, 115, 101, 115, 115, 105, 111, 110 ] }, { "kind": "account", "path": "glamState" }, { "kind": "arg", "path": "args.transfer_id" } ] } }, { "name": "sourceTokenAccount", "writable": true }, { "name": "sourceMint" }, { "name": "auxiliaryTokenAccount", "writable": true }, { "name": "integrationAuthority", "pda": { "seeds": [ { "kind": "const", "value": [ 105, 110, 116, 101, 103, 114, 97, 116, 105, 111, 110, 45, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "systemProgram", "address": "11111111111111111111111111111111" } ], "args": [ { "name": "args", "type": { "defined": { "name": "commitOftTransferArgs" } } } ] }, { "name": "deleteLayerzeroOftRoute", "discriminator": [ 122, 191, 90, 182, 160, 67, 86, 227 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamSigner", "writable": true, "signer": true }, { "name": "glamProtocolProgram", "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz" } ], "args": [ { "name": "route", "type": { "defined": { "name": "layerzeroOftRoute" } } } ] }, { "name": "prepareOftTransfer", "docs": [ "Prepares the auxiliary token account used by the OFT transfer flow." ], "discriminator": [ 192, 75, 97, 92, 178, 246, 220, 8 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamVault", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 118, 97, 117, 108, 116 ] }, { "kind": "account", "path": "glamState" } ], "program": { "kind": "account", "path": "glamProtocolProgram" } } }, { "name": "glamSigner", "writable": true, "signer": true }, { "name": "integrationAuthority", "pda": { "seeds": [ { "kind": "const", "value": [ 105, 110, 116, 101, 103, 114, 97, 116, 105, 111, 110, 45, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "bridgeRegistry", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 98, 114, 105, 100, 103, 101, 45, 114, 101, 103, 105, 115, 116, 114, 121 ] }, { "kind": "account", "path": "glamState" } ] } }, { "name": "bridgeSession", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 98, 114, 105, 100, 103, 101, 45, 115, 101, 115, 115, 105, 111, 110 ] }, { "kind": "account", "path": "glamState" }, { "kind": "arg", "path": "args.transfer_id" } ] } }, { "name": "sourceTokenAccount", "writable": true }, { "name": "sourceMint" }, { "name": "auxiliaryTokenAccount", "writable": true }, { "name": "cpiProgram" }, { "name": "glamProtocolProgram", "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz" }, { "name": "systemProgram", "address": "11111111111111111111111111111111" }, { "name": "instructions", "address": "Sysvar1nstructions1111111111111111111111111" } ], "args": [ { "name": "args", "type": { "defined": { "name": "prepareOftTransferArgs" } } } ] }, { "name": "priceManagedTransfers", "docs": [ "Prices managed inflight transfers and publishes aggregated amount." ], "discriminator": [ 77, 76, 20, 48, 41, 168, 205, 81 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "bridgeRegistry", "pda": { "seeds": [ { "kind": "const", "value": [ 98, 114, 105, 100, 103, 101, 45, 114, 101, 103, 105, 115, 116, 114, 121 ] }, { "kind": "account", "path": "glamState" } ] } }, { "name": "integrationAuthority", "pda": { "seeds": [ { "kind": "const", "value": [ 105, 110, 116, 101, 103, 114, 97, 116, 105, 111, 110, 45, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "glamProtocolProgram", "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz" }, { "name": "glamConfig", "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": "baseAssetOracle" } ], "args": [] }, { "name": "settleManagedTransfer", "docs": [ "Settles a managed inflight transfer and removes it from the registry." ], "discriminator": [ 197, 87, 37, 239, 24, 244, 152, 135 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamVault", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 118, 97, 117, 108, 116 ] }, { "kind": "account", "path": "glamState" } ], "program": { "kind": "account", "path": "glamProtocolProgram" } } }, { "name": "glamSigner", "writable": true, "signer": true }, { "name": "glamProtocolProgram", "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz" }, { "name": "bridgeRegistry", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 98, 114, 105, 100, 103, 101, 45, 114, 101, 103, 105, 115, 116, 114, 121 ] }, { "kind": "account", "path": "glamState" } ] } }, { "name": "integrationAuthority", "pda": { "seeds": [ { "kind": "const", "value": [ 105, 110, 116, 101, 103, 114, 97, 116, 105, 111, 110, 45, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "systemProgram", "address": "11111111111111111111111111111111" } ], "args": [ { "name": "args", "type": { "defined": { "name": "settleManagedTransferArgs" } } } ] }, { "name": "updateLayerzeroOftRoute", "discriminator": [ 77, 162, 99, 1, 182, 142, 66, 172 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamSigner", "writable": true, "signer": true }, { "name": "glamProtocolProgram", "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz" } ], "args": [ { "name": "route", "type": { "defined": { "name": "layerzeroOftRoute" } } } ] }, { "name": "validateManagedTransfer", "docs": [ "Validates a managed inflight transfer so that it becomes priceable." ], "discriminator": [ 47, 86, 129, 235, 30, 249, 248, 42 ], "accounts": [ { "name": "glamState", "writable": true }, { "name": "glamSigner", "signer": true }, { "name": "bridgeRegistry", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 98, 114, 105, 100, 103, 101, 45, 114, 101, 103, 105, 115, 116, 114, 121 ] }, { "kind": "account", "path": "glamState" } ] } } ], "args": [ { "name": "args", "type": { "defined": { "name": "validateManagedTransferArgs" } } } ] } ], "accounts": [ { "name": "bridgeRegistry", "discriminator": [ 178, 207, 65, 53, 51, 157, 148, 202 ] }, { "name": "bridgeSession", "discriminator": [ 235, 118, 90, 227, 230, 173, 141, 184 ] }, { "name": "stateAccount", "discriminator": [ 142, 247, 54, 95, 85, 133, 249, 103 ] } ], "errors": [ { "code": 6000, "name": "unsupportedProtocol", "msg": "Unsupported bridge protocol" }, { "code": 6001, "name": "policyNotFound", "msg": "A matching bridge policy was not found" }, { "code": 6002, "name": "amountTooSmall", "msg": "Bridge amount is below the policy minimum" }, { "code": 6003, "name": "amountTooLarge", "msg": "Bridge amount exceeds the policy maximum" }, { "code": 6004, "name": "invalidProviderProgram", "msg": "The provider program does not match the approved policy" }, { "code": 6005, "name": "invalidSourceTokenAccount", "msg": "The source token account is invalid" }, { "code": 6006, "name": "invalidSourceBalance", "msg": "The source token balance did not change as expected" }, { "code": 6007, "name": "invalidProviderReceipt", "msg": "The bridge receipt metadata is invalid" }, { "code": 6008, "name": "invalidTransferStatus", "msg": "The bridge transfer status does not allow this action" }, { "code": 6009, "name": "transferNotManaged", "msg": "Only managed transfers can use this instruction" }, { "code": 6010, "name": "mathOverflow", "msg": "Arithmetic overflow" }, { "code": 6011, "name": "invalidTransferRecord", "msg": "The transfer record does not belong to this vault" }, { "code": 6012, "name": "tooManyProviderInstructions", "msg": "Too many provider instructions were supplied" }, { "code": 6013, "name": "duplicateBridgeRoute", "msg": "Bridge policy contains overlapping duplicate routes" }, { "code": 6014, "name": "bridgeRouteNotFound", "msg": "The bridge route was not found in the existing policy" }, { "code": 6015, "name": "ambiguousBridgeRoute", "msg": "Multiple bridge routes matched; disambiguate the provider identity" }, { "code": 6016, "name": "invalidOftAuxiliaryTokenAccount", "msg": "The OFT auxiliary token account is invalid" }, { "code": 6017, "name": "oftAuxiliaryTokenAccountAlreadyExists", "msg": "The OFT auxiliary token account already exists" }, { "code": 6018, "name": "missingEndOftInstruction", "msg": "Transaction must include a matching commit_oft_transfer instruction" }, { "code": 6019, "name": "invalidOftInstructionSet", "msg": "The OFT middle instruction set is invalid" }, { "code": 6020, "name": "invalidOftAuxiliaryBalance", "msg": "The OFT auxiliary token balance did not change as expected" }, { "code": 6021, "name": "invalidRemainingAccounts", "msg": "The remaining accounts are invalid" }, { "code": 6022, "name": "duplicateTransferRecord", "msg": "Duplicate transfer record found" }, { "code": 6023, "name": "tooManyManagedTransfers", "msg": "Too many managed transfers are inflight for this vault" }, { "code": 6024, "name": "invalidBridgeRegistry", "msg": "The bridge registry does not belong to this vault" } ], "types": [ { "name": "accountType", "type": { "kind": "enum", "variants": [ { "name": "vault" }, { "name": "tokenizedVault" }, { "name": "mint" }, { "name": "singleAssetVault" } ] } }, { "name": "accruedFees", "type": { "kind": "struct", "fields": [ { "name": "vaultSubscriptionFee", "type": "u128" }, { "name": "vaultRedemptionFee", "type": "u128" }, { "name": "managerSubscriptionFee", "type": "u128" }, { "name": "managerRedemptionFee", "type": "u128" }, { "name": "managementFee", "type": "u128" }, { "name": "performanceFee", "type": "u128" }, { "name": "protocolBaseFee", "type": "u128" }, { "name": "protocolFlowFee", "type": "u128" } ] } }, { "name": "bridgeManagedTransfer", "serialization": "bytemuckunsafe", "repr": { "kind": "c" }, "type": { "kind": "struct", "fields": [ { "name": "transferId", "type": "pubkey" }, { "name": "sourceMint", "type": "pubkey" }, { "name": "destinationRecipient", "type": "pubkey" }, { "name": "providerProgram", "type": "pubkey" }, { "name": "providerConfig", "type": "pubkey" }, { "name": "providerEmitter", "type": "pubkey" }, { "name": "sourceAmount", "type": "u64" }, { "name": "quotedOutAmount", "type": "u64" }, { "name": "providerSequence", "type": "u64" }, { "name": "committedSlot", "type": "u64" }, { "name": "protocol", "type": "u16" }, { "name": "destinationChain", "type": "u16" }, { "name": "sourceDecimals", "type": "u8" }, { "name": "status", "type": "u8" }, { "name": "reserved", "type": { "array": [ "u8", 2 ] } } ] } }, { "name": "bridgeRegistry", "serialization": "bytemuckunsafe", "repr": { "kind": "c" }, "type": { "kind": "struct", "fields": [ { "name": "glamState", "type": "pubkey" }, { "name": "managedTransferCount", "type": "u8" }, { "name": "reserved", "type": { "array": [ "u8", 7 ] } }, { "name": "transfers", "type": { "array": [ { "defined": { "name": "bridgeManagedTransfer" } }, 16 ] } } ] } }, { "name": "bridgeSession", "type": { "kind": "struct", "fields": [ { "name": "glamState", "type": "pubkey" }, { "name": "signer", "type": "pubkey" }, { "name": "transferId", "type": "pubkey" }, { "name": "protocol", "type": "u16" }, { "name": "managed", "type": "bool" }, { "name": "sourceMint", "type": "pubkey" }, { "name": "sourceDecimals", "type": "u8" }, { "name": "sourceTokenAccount", "type": "pubkey" }, { "name": "providerProgram", "type": "pubkey" }, { "name": "providerConfig", "type": "pubkey" }, { "name": "providerSender", "type": "pubkey" }, { "name": "providerDelegate", "type": "pubkey" }, { "name": "providerReceipt", "type": "pubkey" }, { "name": "providerInstructionHash", "type": { "array": [ "u8", 32 ] } }, { "name": "providerInstructionCount", "type": "u16" }, { "name": "sourceAmount", "type": "u64" }, { "name": "quotedOutAmount", "type": "u64" }, { "name": "initialSourceBalance", "type": "u64" }, { "name": "initialProviderSequence", "type": "u64" }, { "name": "destinationChain", "type": "u16" }, { "name": "destinationRecipient", "type": "pubkey" }, { "name": "quoteExpiresAt", "type": "i64" }, { "name": "preparedSlot", "type": "u64" }, { "name": "bump", "type": "u8" } ] } }, { "name": "commitOftTransferArgs", "type": { "kind": "struct", "fields": [ { "name": "transferId", "type": "pubkey" } ] } }, { "name": "createdModel", "type": { "kind": "struct", "fields": [ { "name": "key", "type": { "array": [ "u8", 8 ] } }, { "name": "createdBy", "type": "pubkey" }, { "name": "createdAt", "type": "i64" } ] } }, { "name": "delegateAcl", "type": { "kind": "struct", "fields": [ { "name": "pubkey", "type": "pubkey" }, { "name": "integrationPermissions", "type": { "vec": { "defined": { "name": "integrationPermissions" } } } }, { "name": "expiresAt", "type": "i64" } ] } }, { "name": "engineField", "type": { "kind": "struct", "fields": [ { "name": "name", "type": { "defined": { "name": "engineFieldName" } } }, { "name": "value", "type": { "defined": { "name": "engineFieldValue" } } } ] } }, { "name": "engineFieldName", "type": { "kind": "enum", "variants": [ { "name": "owner" }, { "name": "portfolioManagerName" }, { "name": "name" }, { "name": "uri" }, { "name": "assets" }, { "name": "delegateAcls" }, { "name": "integrationAcls" }, { "name": "timelockDuration" }, { "name": "borrowable" }, { "name": "defaultAccountStateFrozen" }, { "name": "permanentDelegate" }, { "name": "notifyAndSettle" }, { "name": "feeStructure" }, { "name": "feeParams" }, { "name": "claimableFees" }, { "name": "claimedFees" }, { "name": "oracleConfigs" } ] } }, { "name": "engineFieldValue", "type": { "kind": "enum", "variants": [ { "name": "boolean", "fields": [ { "name": "val", "type": "bool" } ] }, { "name": "u8", "fields": [ { "name": "val", "type": "u8" } ] }, { "name": "u32", "fields": [ { "name": "val", "type": "u32" } ] }, { "name": "u64", "fields": [ { "name": "val", "type": "u64" } ] }, { "name": "string", "fields": [ { "name": "val", "type": "string" } ] }, { "name": "pubkey", "fields": [ { "name": "val", "type": "pubkey" } ] }, { "name": "vecPubkey", "fields": [ { "name": "val", "type": { "vec": "pubkey" } } ] }, { "name": "vecU8", "fields": [ { "name": "val", "type": "bytes" } ] }, { "name": "vecU32", "fields": [ { "name": "val", "type": { "vec": "u32" } } ] }, { "name": "vecDelegateAcl", "fields": [ { "name": "val", "type": { "vec": { "defined": { "name": "delegateAcl" } } } } ] }, { "name": "vecIntegrationAcl", "fields": [ { "name": "val", "type": { "vec": { "defined": { "name": "integrationAcl" } } } } ] }, { "name": "feeStructure", "fields": [ { "name": "val", "type": { "defined": { "name": "feeStructure" } } } ] }, { "name": "feeParams", "fields": [ { "name": "val", "type": { "defined": { "name": "feeParams" } } } ] }, { "name": "accruedFees", "fields": [ { "name": "val", "type": { "defined": { "name": "accruedFees" } } } ] }, { "name": "notifyAndSettle", "fields": [ { "name": "val", "type": { "defined": { "name": "notifyAndSettle" } } } ] }, { "name": "oracleConfigs", "fields": [ { "name": "val", "type": { "defined": { "name": "oracleConfigs" } } } ] } ] } }, { "name": "entryExitFees", "type": { "kind": "struct", "fields": [ { "name": "subscriptionFeeBps", "type": "u16" }, { "name": "redemptionFeeBps", "type": "u16" } ] } }, { "name": "feeParams", "type": { "kind": "struct", "fields": [ { "name": "yearInSeconds", "type": "u32" }, { "name": "paHighWaterMark", "type": "i128" }, { "name": "paLastNav", "type": "i128" }, { "name": "lastAum", "type": "i128" }, { "name": "lastPerformanceFeeCrystallized", "type": "i64" }, { "name": "lastManagementFeeCrystallized", "type": "i64" }, { "name": "lastProtocolFeeCrystallized", "type": "i64" } ] } }, { "name": "feeStructure", "type": { "kind": "struct", "fields": [ { "name": "vault", "type": { "defined": { "name": "entryExitFees" } } }, { "name": "manager", "type": { "defined": { "name": "entryExitFees" } } }, { "name": "management", "type": { "defined": { "name": "managementFee" } } }, { "name": "performance", "type": { "defined": { "name": "performanceFee" } } }, { "name": "protocol", "type": { "defined": { "name": "protocolFees" } } } ] } }, { "name": "hurdleType", "type": { "kind": "enum", "variants": [ { "name": "hard" }, { "name": "soft" } ] } }, { "name": "integrationAcl", "docs": [ "An integration program can have multiple protocols supported.", "Enabled protocols are stored in a bitmask, and each protocol can have its own policy." ], "type": { "kind": "struct", "fields": [ { "name": "integrationProgram", "type": "pubkey" }, { "name": "protocolsBitmask", "type": "u16" }, { "name": "protocolPolicies", "type": { "vec": { "defined": { "name": "protocolPolicy" } } } } ] } }, { "name": "integrationPermissions", "docs": [ "Stores delegate permissions for an integration program." ], "type": { "kind": "struct", "fields": [ { "name": "integrationProgram", "type": "pubkey" }, { "name": "protocolPermissions", "type": { "vec": { "defined": { "name": "protocolPermissions" } } } } ] } }, { "name": "layerzeroOftRoute", "docs": [ "source_mint, destination_chain, destination_recipient, provider_program uniquely identify a route" ], "type": { "kind": "struct", "fields": [ { "name": "sourceMint", "type": "pubkey" }, { "name": "destinationChain", "type": "u32" }, { "name": "destinationRecipient", "type": "pubkey" }, { "name": "providerProgram", "type": "pubkey" }, { "name": "managementMode", "type": { "defined": { "name": "routeManagementMode" } } }, { "name": "minAmount", "type": "u64" }, { "name": "maxAmount", "type": "u64" } ] } }, { "name": "managementFee", "type": { "kind": "struct", "fields": [ { "name": "feeBps", "type": "u16" } ] } }, { "name": "noticePeriodType", "type": { "kind": "enum", "variants": [ { "name": "hard" }, { "name": "soft" } ] } }, { "name": "notifyAndSettle", "type": { "kind": "struct", "fields": [ { "name": "model", "type": { "defined": { "name": "valuationModel" } } }, { "name": "permissionlessFulfillment", "type": "bool" }, { "name": "subscribeNoticePeriodType", "type": { "defined": { "name": "noticePeriodType" } } }, { "name": "subscribeNoticePeriod", "type": "u64" }, { "name": "subscribeSettlementPeriod", "type": "u64" }, { "name": "subscribeCancellationWindow", "type": "u64" }, { "name": "redeemNoticePeriodType", "type": { "defined": { "name": "noticePeriodType" } } }, { "name": "redeemNoticePeriod", "type": "u64" }, { "name": "redeemSettlementPeriod", "type": "u64" }, { "name": "redeemCancellationWindow", "type": "u64" }, { "name": "timeUnit", "type": { "defined": { "name": "timeUnit" } } }, { "name": "padding", "type": { "array": [ "u8", 3 ] } } ] } }, { "name": "oracleConfigs", "docs": [ "Vault-specific oracle configs. If available, these configs are preferred over the global config." ], "type": { "kind": "struct", "fields": [ { "name": "maxAgesSeconds", "type": { "vec": { "array": [ "u16", 2 ] } } }, { "name": "padding", "type": { "array": [ "u8", 12 ] } } ] } }, { "name": "performanceFee", "type": { "kind": "struct", "fields": [ { "name": "feeBps", "type": "u16" }, { "name": "hurdleRateBps", "type": "u16" }, { "name": "hurdleType", "type": { "defined": { "name": "hurdleType" } } } ] } }, { "name": "prepareOftTransferArgs", "type": { "kind": "struct", "fields": [ { "name": "transferId", "type": "pubkey" }, { "name": "middleInstructionHash", "type": { "array": [ "u8", 32 ] } }, { "name": "middleInstructionCount", "type": "u16" }, { "name": "sourceAmount", "type": "u64" }, { "name": "managed", "type": "bool" } ] } }, { "name": "pricedProtocol", "type": { "kind": "struct", "fields": [ { "name": "rent", "type": "u64" }, { "name": "amount", "type": "i128" }, { "name": "decimals", "type": "u8" }, { "name": "lastUpdatedSlot", "type": "u64" }, { "name": "integrationProgram", "type": "pubkey" }, { "name": "protocolBitflag", "type": "u16" }, { "name": "positions", "type": { "vec": "pubkey" } } ] } }, { "name": "protocolFees", "type": { "kind": "struct", "fields": [ { "name": "baseFeeBps", "type": "u16" }, { "name": "flowFeeBps", "type": "u16" } ] } }, { "name": "protocolPermissions", "docs": [ "Represents a delegate's permissions for a specific protocol" ], "type": { "kind": "struct", "fields": [ { "name": "protocolBitflag", "type": "u16" }, { "name": "permissionsBitmask", "type": "u64" } ] } }, { "name": "protocolPolicy", "docs": [ "Stores policy data for an integrated protocol.", "Integration programs serialize/deserialize this data." ], "type": { "kind": "struct", "fields": [ { "name": "protocolBitflag", "type": "u16" }, { "name": "data", "type": "bytes" } ] } }, { "name": "routeManagementMode", "type": { "kind": "enum", "variants": [ { "name": "unmanagedOnly" }, { "name": "managedOnly" }, { "name": "either" } ] } }, { "name": "settleManagedTransferArgs", "type": { "kind": "struct", "fields": [ { "name": "transferId", "type": "pubkey" } ] } }, { "name": "stateAccount", "type": { "kind": "struct", "fields": [ { "name": "accountType", "type": { "defined": { "name": "accountType" } } }, { "name": "enabled", "type": "bool" }, { "name": "vault", "type": "pubkey" }, { "name": "owner", "type": "pubkey" }, { "name": "portfolioManagerName", "type": { "array": [ "u8", 32 ] } }, { "name": "created", "type": { "defined": { "name": "createdModel" } } }, { "name": "baseAssetMint", "type": "pubkey" }, { "name": "baseAssetDecimals", "type": "u8" }, { "name": "baseAssetTokenProgram", "type": "u8" }, { "name": "name", "type": { "array": [ "u8", 32 ] } }, { "name": "timelockDuration", "type": "u32" }, { "name": "timelockExpiresAt", "type": "u64" }, { "name": "mint", "type": "pubkey" }, { "name": "assets", "type": { "vec": "pubkey" } }, { "name": "integrationAcls", "type": { "vec": { "defined": { "name": "integrationAcl" } } } }, { "name": "delegateAcls", "type": { "vec": { "defined": { "name": "delegateAcl" } } } }, { "name": "externalPositions", "type": { "vec": "pubkey" } }, { "name": "pricedProtocols", "type": { "vec": { "defined": { "name": "pricedProtocol" } } } }, { "name": "params", "type": { "vec": { "vec": { "defined": { "name": "engineField" } } } } } ] } }, { "name": "timeUnit", "type": { "kind": "enum", "variants": [ { "name": "second" }, { "name": "slot" } ] } }, { "name": "validateManagedTransferArgs", "type": { "kind": "struct", "fields": [ { "name": "transferId", "type": "pubkey" } ] } }, { "name": "valuationModel", "type": { "kind": "enum", "variants": [ { "name": "continuous" }, { "name": "periodic" } ] } } ], "constants": [ { "name": "protoBridgePermSend", "type": "u64", "value": "1" }, { "name": "protoBridgePermSettle", "type": "u64", "value": "4" }, { "name": "protoBridgePermValidate", "type": "u64", "value": "2" }, { "name": "protoLayerzeroOft", "type": "u16", "value": "4" }, { "name": "protoManagedInflight", "type": "u16", "value": "4" } ] };