@orderly.network/default-solana-adapter 2.0.0 → 2.0.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/version.ts","../src/walletAdapter.ts","../src/helper.ts","../src/idl/solana_vault.ts","../src/solana.util.ts","../src/constant.ts"],"sourcesContent":["\ndeclare global {\n interface Window {\n __ORDERLY_VERSION__?: {\n [key: string]: string;\n };\n }\n}\nif(typeof window !== 'undefined') {\n window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};\n window.__ORDERLY_VERSION__[\"@orderly.network/default-solana-adapter\"] = \"2.0.0\";\n};\n\nexport default \"2.0.0\";\n","import { SolanaAdapterOption, SolanaWalletProvider } from \"./types\";\nimport {\n AddOrderlyKeyInputs,\n BaseWalletAdapter, Message, RegisterAccountInputs, SettleInputs, SignatureDomain, WithdrawInputs\n} from \"@orderly.network/core\";\nimport {API, MaxUint256, ChainNamespace} from \"@orderly.network/types\";\nimport * as ed from \"@noble/ed25519\";\nimport { encode as bs58encode, decode as bs58Decode } from \"bs58\";\nimport {\n addOrderlyKeyMessage, deposit,\n encodeLzMessage, getDepositQuoteFee,\n MsgType,\n registerAccountMessage,\n settleMessage,\n withdrawMessage\n} from \"./helper\";\nimport { bytesToHex } from \"ethereum-cryptography/utils\";\nimport { getAccount } from \"@solana/spl-token\";\nimport {\n getBrokerPDA,\n getDefaultSendConfigPda,\n getDefaultSendLibConfigPda,\n getDvnConfigPda,\n getEndorcedOptionsPda,\n getEndpointSettingPda,\n getEventAuthorityPda,\n getExecutorConfigPda,\n getLookupTableAccount,\n getLookupTableAddress,\n getMessageLibInfoPda,\n getMessageLibPda,\n getNoncePda,\n getOAppConfigPda, getPeerAddress,\n getPeerPda,\n getPriceFeedPda,\n getSendConfigPda,\n getSendLibConfigPda,\n getSendLibInfoPda,\n getSendLibPda,\n getTokenPDA,\n getUlnEventAuthorityPda,\n getUlnSettingPda,\n getUSDCAccounts,\n getVaultAuthorityPda\n} from \"./solana.util\";\nimport {\n ComputeBudgetProgram,\n PublicKey,\n SystemProgram,\n TransactionMessage,\n VersionedTransaction\n} from \"@solana/web3.js\";\nimport {BN, Program} from \"@coral-xyz/anchor\";\nimport {SolanaVault, IDL as VaultIDL} from \"./idl/solana_vault\";\nimport {\n DST_EID, DVN_PROGRAM_ID,\n ENDPOINT_PROGRAM_ID,\n EXECUTOR_PROGRAM_ID,\n PRICE_FEED_PROGRAM_ID,\n SEND_LIB_PROGRAM_ID,\n TREASURY_PROGRAM_ID\n} from \"./constant\";\n\nclass DefaultSolanaWalletAdapter extends BaseWalletAdapter<SolanaAdapterOption> {\n chainNamespace: ChainNamespace = ChainNamespace.solana;\n\n\n private _address!: string;\n private _chainId!: number;\n private _provider!: SolanaWalletProvider;\n\n constructor() {\n super();\n }\n\n get address(): string {\n return this._address;\n }\n\n get chainId(): number {\n return this._chainId;\n }\n\n set chainId(chainId: number) {\n this._chainId = chainId;\n }\n\n private setConfig(config: SolanaAdapterOption) {\n this._address = config.address;\n this._chainId = config.chain.id;\n if (config.provider) {\n this._provider = config.provider;\n }\n }\n\n private lifecycleName(name: string, data: any) {\n console.log(\"lifecycle\", name, data);\n }\n\n active(config: SolanaAdapterOption): void {\n this.setConfig(config);\n this.lifecycleName(\"active\", config);\n }\n\n deactivate(): void {\n this.lifecycleName(\"deactivate\", {});\n }\n\n update(config: SolanaAdapterOption): void {\n this.lifecycleName(\"update\", config);\n this.setConfig(config);\n }\n\n generateSecretKey(): string {\n let privKey, secretKey;\n do {\n privKey = ed.utils.randomPrivateKey();\n secretKey = bs58encode(privKey);\n } while (secretKey.length !== 44);\n\n return secretKey;\n }\n\n async generateRegisterAccountMessage(inputs: RegisterAccountInputs): Promise<Message> {\n const [message, toSignatureMessage] = registerAccountMessage({\n ...inputs,\n chainId: this.chainId,\n });\n const signRes = await this._provider.signMessage(toSignatureMessage as Uint8Array);\n const signature = '0x' + bytesToHex(signRes);\n\n return {\n message: {\n ...message,\n chainType: \"SOL\"\n },\n signatured: signature,\n };\n }\n\n async generateWithdrawMessage(inputs: WithdrawInputs): Promise<Message & {domain: SignatureDomain}> {\n const [message, toSignatureMessage] =withdrawMessage({\n ...inputs,\n chainId: this.chainId,\n });\n const signRes = await this._provider.signMessage(toSignatureMessage as Uint8Array);\n const signature = '0x' + bytesToHex(signRes);\n console.log('-- verify contract', inputs.verifyContract);\n\n\n\n return {\n message: {\n ...message,\n chainType: \"SOL\"\n },\n domain: {\n name:'',\n version:'',\n chainId:this.chainId,\n verifyingContract:inputs.verifyContract!,\n },\n signatured: signature,\n };\n }\n\n async generateAddOrderlyKeyMessage(inputs: AddOrderlyKeyInputs): Promise<Message> {\n const [message, toSignatureMessage] = addOrderlyKeyMessage({\n ...inputs,\n chainId: this.chainId,\n });\n const res = await this._provider.signMessage(toSignatureMessage as Uint8Array);\n\n\n const signature = '0x' + bytesToHex(res);\n\n return {\n message: {\n ...message,\n chainType: \"SOL\"\n },\n signatured: signature,\n };\n }\n\n async generateSettleMessage(inputs: SettleInputs): Promise<Message & {domain: SignatureDomain}> {\n const [message, toSignatureMessage] = await settleMessage({\n ...inputs,\n chainId: this.chainId,\n });\n const res = await this._provider.signMessage(toSignatureMessage as Uint8Array);\n const signature = '0x' + bytesToHex(res);\n return {\n message: {\n ...message,\n chainType: \"SOL\"\n },\n domain: {\n name:'',\n version:'',\n chainId: this.chainId,\n verifyingContract:inputs.verifyContract!,\n },\n signatured: signature,\n };\n }\n\n async getBalance(): Promise<bigint> {\n return BigInt(0);\n }\n\n async call(address: string,\n method: string,\n params: any[],\n options?: {\n abi: any;\n }) {\n // console.log('-- solanan call', {\n // address,\n // method,\n // params,\n // options,\n // })\n if (method === 'balanceOf') {\n\n const usdcPublicKey = new PublicKey(address);\n const userPublicKey = new PublicKey(this._address);\n const userUSDCAccount = getUSDCAccounts(usdcPublicKey,userPublicKey);\n const usdcamount = await getAccount(this._provider.connection,userUSDCAccount, 'confirmed');\n return usdcamount.amount;\n }\n if (method === 'allowance') {\n return MaxUint256;\n }\n return BigInt(0)\n\n\n }\n \n async sendTransaction( contractAddress: string,\n method: string,\n payload: {\n from: string;\n to?: string;\n data: any[];\n value?: bigint;\n },\n options: {\n abi: any;\n }) {\n console.log('-- solanan sendTransaction', {\n contractAddress,\n method,\n payload,\n options,\n })\n if (method === 'deposit') {\n return deposit({\n vaultAddress: contractAddress,\n userAddress: this._address,\n connection: this._provider.connection,\n depositData: payload.data[0],\n sendTransaction: this._provider.sendTransaction,\n\n })\n\n }\n \n }\n\n async callOnChain(\n chain: API.NetworkInfos,\n address: string,\n method: string,\n params: any[],\n options: {\n abi: any;\n }\n ): Promise<any> {\n console.log('-- params ', {\n chain,\n address,\n method,\n params,\n })\n if (method === 'getDepositFee') {\n return getDepositQuoteFee({\n vaultAddress: address,\n userAddress: this._address,\n connection: this._provider.connection,\n })\n\n\n }\n return 0;\n \n }\n async pollTransactionReceiptWithBackoff(\n txHash: string,\n baseInterval?: number,\n maxInterval?: number,\n maxRetries?: number\n ): Promise<any> {\n \n }\n}\n\nexport { DefaultSolanaWalletAdapter };","import {\n AddOrderlyKeyInputs,\n RegisterAccountInputs, type SettleInputs,\n type SignatureDomain,\n type WithdrawInputs\n} from \"@orderly.network/core\";\nimport {bytesToHex, hexToBytes} from \"ethereum-cryptography/utils\";\nimport {AbiCoder, decodeBase58, solidityPackedKeccak256} from \"ethers\";\nimport {keccak256} from \"ethereum-cryptography/keccak\";\nimport {\n ComputeBudgetProgram,\n Connection,\n PublicKey,\n SystemProgram,\n TransactionMessage,\n VersionedTransaction\n} from \"@solana/web3.js\";\nimport {BN, Program} from \"@coral-xyz/anchor\";\nimport {IDL as VaultIDL, SolanaVault} from \"./idl/solana_vault\";\nimport {\n getBrokerPDA,\n getDefaultSendConfigPda,\n getDefaultSendLibConfigPda,\n getDvnConfigPda,\n getEndorcedOptionsPda,\n getEndpointSettingPda,\n getEventAuthorityPda,\n getExecutorConfigPda,\n getLookupTableAccount,\n getLookupTableAddress,\n getMessageLibInfoPda,\n getMessageLibPda,\n getNoncePda,\n getOAppConfigPda,\n getPeerAddress,\n getPeerPda,\n getPriceFeedPda,\n getSendConfigPda,\n getSendLibConfigPda,\n getSendLibInfoPda,\n getSendLibPda,\n getTokenPDA, getUlnEventAuthorityPda,\n getUlnSettingPda,\n getUSDCAccounts,\n getVaultAuthorityPda\n} from \"./solana.util\";\nimport {\n DST_EID, DVN_PROGRAM_ID,\n ENDPOINT_PROGRAM_ID,\n EXECUTOR_PROGRAM_ID,\n PRICE_FEED_PROGRAM_ID,\n SEND_LIB_PROGRAM_ID, TREASURY_PROGRAM_ID\n} from \"./constant\";\nimport type {WalletAdapterProps} from \"@solana/wallet-adapter-base\";\n\nexport function addOrderlyKeyMessage(inputs: AddOrderlyKeyInputs & { chainId: number }) {\n const {\n publicKey,\n brokerId,\n expiration = 365,\n timestamp = Date.now(),\n scope,\n tag,\n chainId,\n } = inputs;\n const message = {\n brokerId: brokerId,\n chainType: 'SOL',\n orderlyKey: publicKey,\n scope: scope || \"read,trading\",\n chainId,\n timestamp,\n ...(typeof tag !== \"undefined\" ? {tag} : {}),\n\n\n expiration: timestamp + 1000 * 60 * 60 * 24 * expiration,\n };\n\n const brokerIdHash = solidityPackedKeccak256(['string'], [message.brokerId]);\n\n const orderlyKeyHash = solidityPackedKeccak256(['string'], [message.orderlyKey]);\n const scopeHash = solidityPackedKeccak256(['string'], [message.scope]);\n const abicoder = AbiCoder.defaultAbiCoder();\n const msgToSign = keccak256(\n hexToBytes(\n abicoder.encode(\n ['bytes32', 'bytes32', 'bytes32', 'uint256', 'uint256', 'uint256'],\n [brokerIdHash, orderlyKeyHash, scopeHash, message.chainId, message.timestamp, message.expiration]\n )\n )\n );\n const msgToSignHex = bytesToHex(msgToSign);\n const msgToSignTextEncoded: Uint8Array = new TextEncoder().encode(msgToSignHex);\n return [message, msgToSignTextEncoded];\n\n}\n\nexport function registerAccountMessage(inputs: RegisterAccountInputs & {\n chainId: number;\n}) {\n const {chainId, registrationNonce, brokerId, timestamp} = inputs;\n\n const message = {\n brokerId,\n chainId,\n timestamp,\n registrationNonce,\n };\n const brokerIdHash = solidityPackedKeccak256(['string'], [message.brokerId]);\n const abicoder = AbiCoder.defaultAbiCoder();\n const msgToSign = keccak256(\n hexToBytes(\n abicoder.encode(\n ['bytes32', 'uint256', 'uint256', 'uint256'],\n [brokerIdHash, message.chainId, message.timestamp, message.registrationNonce]\n )\n )\n )\n const msgToSignHex = bytesToHex(msgToSign);\n const msgToSignTextEncoded: Uint8Array = new TextEncoder().encode(msgToSignHex);\n return [message, msgToSignTextEncoded];\n\n}\n\nexport function withdrawMessage(inputs: WithdrawInputs & {\n chainId: number;\n}) {\n const {chainId, receiver, token, amount, nonce, brokerId} = inputs;\n const timestamp = Date.now();\n\n const message = {\n brokerId,\n chainId,\n receiver,\n token: token,\n amount: amount,\n withdrawNonce: nonce,\n timestamp,\n chainType: 'SOL',\n }\n\n\n const brokerIdHash = solidityPackedKeccak256(['string'], [message.brokerId]);\n const tokenSymbolHash = solidityPackedKeccak256(['string'], [message.token]);\n const salt = keccak256(Buffer.from('Orderly Network'));\n const abicoder = AbiCoder.defaultAbiCoder();\n const msgToSign = keccak256(\n hexToBytes(\n abicoder.encode(\n ['bytes32', 'bytes32', 'uint256', 'bytes32', 'uint256', 'uint64', 'uint64', 'bytes32'],\n [\n brokerIdHash,\n tokenSymbolHash,\n chainId,\n hexToBytes(decodeBase58(message.receiver).toString(16)),\n message.amount,\n message.withdrawNonce,\n timestamp,\n salt,\n ]\n )\n )\n );\n const msgToSignHex = bytesToHex(msgToSign);\n const msgToSignTextEncoded: Uint8Array = new TextEncoder().encode(msgToSignHex);\n return [message, msgToSignTextEncoded];\n\n}\n\nexport function settleMessage(inputs: SettleInputs & {\n chainId: number;\n}) {\n const {settlePnlNonce, brokerId, chainId, timestamp} = inputs;\n\n const message = {\n brokerId: brokerId,\n chainId: chainId,\n timestamp: timestamp,\n chainType: 'SOL',\n settleNonce: settlePnlNonce,\n };\n const brokerIdHash = solidityPackedKeccak256(['string'], [brokerId]);\n\n const abicoder = AbiCoder.defaultAbiCoder();\n const msgToSign = keccak256(\n hexToBytes(\n abicoder.encode(\n ['bytes32', 'uint256', 'uint64', 'uint64'],\n [brokerIdHash, message.chainId, message.settleNonce, message.timestamp]\n )\n )\n );\n const msgToSignHex = bytesToHex(msgToSign);\n const msgToSignTextEncoded: Uint8Array = new TextEncoder().encode(msgToSignHex);\n return [message, msgToSignTextEncoded];\n}\n\nexport enum MsgType {\n Deposit = 0,\n // Add other message types if needed\n}\n\nexport interface LzMessage {\n msgType: MsgType;\n payload: Buffer;\n}\n\nexport function encodeLzMessage(message: LzMessage): Buffer {\n const msgTypeBuffer = Buffer.alloc(1);\n msgTypeBuffer.writeUInt8(message.msgType);\n return Buffer.concat([msgTypeBuffer, message.payload]);\n}\n\nexport async function getDepositQuoteFee({\n vaultAddress,\n userAddress,\n connection,\n }: {\n vaultAddress: string;\n userAddress: string;\n connection: Connection,\n}) {\n const appProgramId = new PublicKey(vaultAddress);\n const program = new Program<SolanaVault>(VaultIDL,\n appProgramId,\n {\n connection,\n });\n const userPublicKey = new PublicKey(userAddress);\n\n\n const oappConfigPDA = getOAppConfigPda(appProgramId);\n const peerPDA = getPeerPda(appProgramId, oappConfigPDA, DST_EID);\n const endorcedPDA = getEndorcedOptionsPda(appProgramId, oappConfigPDA, DST_EID);\n const sendLibConfigPDA = getSendLibConfigPda(oappConfigPDA, DST_EID);\n const defaultSendLibPDA = getDefaultSendLibConfigPda(DST_EID);\n\n const endpointSettingPDA = getEndpointSettingPda();\n const noncePDA = getNoncePda(appProgramId, oappConfigPDA, DST_EID);\n const sendConfigPDA = getSendConfigPda(oappConfigPDA, DST_EID);\n const defaultSendConfigPDA = getDefaultSendConfigPda(DST_EID);\n const executorConfigPDA = getExecutorConfigPda();\n const priceFeedPDA = getPriceFeedPda();\n const dvnConfigPDA = getDvnConfigPda();\n\n\n const messageLibPDA = getMessageLibPda(SEND_LIB_PROGRAM_ID);\n const messageLibInfoPDA = getMessageLibInfoPda(messageLibPDA)\n const depositMsg = Buffer.alloc(32 * 7); // Adjust size as needed\n\n\n const lzMessage = encodeLzMessage({\n msgType: MsgType.Deposit,\n payload: depositMsg,\n });\n\n const quoteParams = {\n dstEid: DST_EID,\n to: Array.from(getPeerAddress(appProgramId)),\n options: Buffer.from([]),\n message: lzMessage,\n payInLzToken: false\n };\n\n // deposit fee\n const quoteFee = await program.methods.oappQuote(quoteParams).accounts({\n oappConfig: oappConfigPDA,\n peer: peerPDA,\n enforcedOptions: endorcedPDA,\n\n })\n .remainingAccounts([\n // ENDPOINT solana/programs/programs/uln/src/instructions/endpoint/send.rs\n {\n pubkey: ENDPOINT_PROGRAM_ID,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: SEND_LIB_PROGRAM_ID,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: sendLibConfigPDA, // send_library_config\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: defaultSendLibPDA, // default_send_library_config\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: messageLibInfoPDA, // send_library_info\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: endpointSettingPDA, // endpoint settings\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: noncePDA, // nonce\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: messageLibPDA,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: sendConfigPDA,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: defaultSendConfigPDA,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: EXECUTOR_PROGRAM_ID,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: executorConfigPDA,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: PRICE_FEED_PROGRAM_ID,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: priceFeedPDA,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: DVN_PROGRAM_ID,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: dvnConfigPDA,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: PRICE_FEED_PROGRAM_ID,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: priceFeedPDA,\n isWritable: false,\n isSigner: false,\n },\n\n ])\n .instruction();\n\n const lastBlockHash = await connection.getLatestBlockhash();\n\n const lookupTableAddress = getLookupTableAddress(appProgramId);\n const lookupTableAccount = await getLookupTableAccount(connection, lookupTableAddress);\n if (!lookupTableAccount) {\n console.log('-- lookup table account error');\n throw new Error('-- lookup table account error')\n }\n const feeMsg = new TransactionMessage({\n payerKey: userPublicKey,\n recentBlockhash: lastBlockHash.blockhash,\n instructions: [quoteFee],\n\n }).compileToV0Message([lookupTableAccount]);\n\n const feeTx = new VersionedTransaction(feeMsg);\n\n const feeRes = await connection.simulateTransaction(feeTx);\n\n const returnPrefix = `Program return: ${program.programId} `;\n const returnLogEntry = feeRes.value.logs!.find((log) =>\n log.startsWith(returnPrefix)\n );\n if (!returnLogEntry) {\n throw new Error('get deposit fee error');\n }\n\n // Slice out the prefix to get the base64 return data\n const encodedReturnData = returnLogEntry.slice(returnPrefix.length);\n\n // Convert the Base64 return data\n const decodedBuffer = Buffer.from(encodedReturnData, \"base64\");\n console.log(decodedBuffer.readBigUInt64LE(0), decodedBuffer.readBigUInt64LE(1));\n return decodedBuffer.readBigUInt64LE(0)\n\n}\n\nexport async function deposit({\n vaultAddress,\n userAddress,\n connection,\n sendTransaction,\n depositData,\n }: {\n vaultAddress: string;\n userAddress: string;\n connection: Connection,\n sendTransaction: WalletAdapterProps['sendTransaction'];\n depositData: {\n tokenHash: string;\n brokerHash: string;\n accountId: string;\n USDCAddress: string;\n tokenAmount: string;\n }\n}) {\n const appProgramId = new PublicKey(vaultAddress);\n const program = new Program<SolanaVault>(VaultIDL,\n appProgramId,\n {\n connection,\n });\n const usdc = new PublicKey(depositData.USDCAddress);\n const userPublicKey = new PublicKey(userAddress);\n const userUSDCAccount = getUSDCAccounts(usdc,userPublicKey);\n const vaultAuthorityPda = getVaultAuthorityPda(appProgramId)\n const vaultUSDCAccount = getUSDCAccounts(usdc, vaultAuthorityPda)\n\n const brokerHash = depositData.brokerHash;\n const codedBrokerHash = Array.from(Buffer.from(brokerHash.slice(2), 'hex'));\n\n const tokenHash = depositData.tokenHash;\n const codedTokenHash = Array.from(Buffer.from(tokenHash.slice(2), 'hex'));\n\n\n const solAccountId = depositData.accountId;\n const codedAccountId =Array.from(Buffer.from(solAccountId.slice(2), 'hex'));\n\n const allowedBrokerPDA = getBrokerPDA(appProgramId, brokerHash);\n const allowedTokenPDA = getTokenPDA(appProgramId,tokenHash);\n const oappConfigPDA = getOAppConfigPda(appProgramId);\n console.log('-- oappconfig pda', oappConfigPDA.toBase58());\n // const lzPDA = getLzReceiveTypesPda(appProgramId, oappConfigPDA);\n const peerPDA = getPeerPda(appProgramId, oappConfigPDA, DST_EID);\n const endorcedPDA = getEndorcedOptionsPda(appProgramId, oappConfigPDA, DST_EID);\n const sendLibPDA = getSendLibPda();\n const sendLibConfigPDA = getSendLibConfigPda(oappConfigPDA, DST_EID);\n const defaultSendLibPDA = getDefaultSendLibConfigPda(DST_EID);\n const sendLibInfoPDA = getSendLibInfoPda(sendLibPDA);\n\n const endpointSettingPDA = getEndpointSettingPda();\n const noncePDA = getNoncePda(appProgramId, oappConfigPDA, DST_EID);\n const eventAuthorityPDA = getEventAuthorityPda();\n const ulnSettingPDA = getUlnSettingPda();\n const sendConfigPDA = getSendConfigPda(oappConfigPDA, DST_EID);\n const defaultSendConfigPDA = getDefaultSendConfigPda(DST_EID);\n const ulnEventAuthorityPDA= getUlnEventAuthorityPda();\n const executorConfigPDA= getExecutorConfigPda();\n const priceFeedPDA = getPriceFeedPda();\n const dvnConfigPDA = getDvnConfigPda();\n\n const vaultDepositParams = {\n accountId: codedAccountId,\n brokerHash: codedBrokerHash,\n tokenHash: codedTokenHash,\n userAddress: Array.from(userPublicKey.toBuffer()),\n tokenAmount: new BN(depositData.tokenAmount),\n };\n\n const fee = await getDepositQuoteFee({\n vaultAddress,\n userAddress,\n connection,\n });\n\n const sendParam = {\n nativeFee:new BN(fee.toString()),\n lzTokenFee:new BN(0),\n\n }\n console.log('--- value params', {\n vaultDepositParams,\n sendParam,\n });\n const ixDepositEntry = await program.methods.deposit(vaultDepositParams, sendParam).accounts({\n userTokenAccount: userUSDCAccount,\n vaultAuthority: vaultAuthorityPda,\n vaultTokenAccount: vaultUSDCAccount,\n depositToken: usdc,\n user:userPublicKey,\n peer:peerPDA,\n enforcedOptions:endorcedPDA,\n oappConfig: oappConfigPDA,\n allowedBroker: allowedBrokerPDA,\n allowedToken: allowedTokenPDA\n }).remainingAccounts([\n // ENDPOINT solana/programs/programs/uln/src/instructions/endpoint/send.rs\n {\n isSigner: false,\n isWritable: false,\n pubkey: ENDPOINT_PROGRAM_ID,\n },\n {\n isSigner: false,\n isWritable: false,\n // 0\n pubkey: oappConfigPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n pubkey: SEND_LIB_PROGRAM_ID,\n },\n {\n isSigner: false,\n isWritable: false,\n // 7\n pubkey:sendLibConfigPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n // 9\n pubkey: defaultSendLibPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n // 8\n pubkey:sendLibInfoPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n // 14\n pubkey: endpointSettingPDA,\n },\n {\n isSigner: false,\n isWritable: true,\n // 15\n pubkey: noncePDA,\n },\n {\n isSigner: false,\n isWritable: false,\n // 3\n pubkey:eventAuthorityPDA,\n },\n // ULN solana/programs/programs/uln/src/instructions/endpoint/send.rs\n {\n isSigner: false,\n isWritable: false,\n pubkey: ENDPOINT_PROGRAM_ID,\n },\n {\n isSigner: false,\n isWritable: false,\n // 13\n pubkey: ulnSettingPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n // 10\n pubkey: sendConfigPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n // 11\n pubkey: defaultSendConfigPDA,\n },\n {\n isSigner: true,\n isWritable: false,\n pubkey:userPublicKey,\n },\n {\n isSigner: false,\n isWritable: false,\n pubkey: TREASURY_PROGRAM_ID,\n },\n {\n isSigner: false,\n isWritable: false,\n pubkey: SystemProgram.programId,\n },\n {\n isSigner: false,\n isWritable: false,\n // 12\n pubkey: ulnEventAuthorityPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n pubkey: SEND_LIB_PROGRAM_ID\n },\n {\n isSigner: false,\n isWritable: false,\n pubkey: EXECUTOR_PROGRAM_ID\n },\n {\n isSigner: false,\n isWritable: true,\n // 16\n pubkey:executorConfigPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n pubkey: PRICE_FEED_PROGRAM_ID\n },\n {\n isSigner: false,\n isWritable: false,\n // 17\n pubkey: priceFeedPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n pubkey: DVN_PROGRAM_ID\n },\n {\n isSigner: false,\n isWritable: true,\n // 18\n pubkey:dvnConfigPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n pubkey: PRICE_FEED_PROGRAM_ID\n },\n {\n isSigner: false,\n isWritable: false,\n // 17\n pubkey: priceFeedPDA,\n }\n ]).instruction();\n\n const lookupTableAddress = getLookupTableAddress(appProgramId);\n const lookupTableAccount = await getLookupTableAccount(connection, lookupTableAddress);\n if (!lookupTableAccount) {\n console.log('-- lookup table account error');\n return;\n }\n\n\n const ixAddComputeBudget = ComputeBudgetProgram.setComputeUnitLimit({ units: 400_000 });\n\n const lastBlockHash =await connection.getLatestBlockhash() ;\n const msg = new TransactionMessage({\n payerKey:userPublicKey,\n recentBlockhash: lastBlockHash.blockhash,\n instructions: [ixDepositEntry, ixAddComputeBudget],\n\n }).compileToV0Message([lookupTableAccount]);\n\n const tx = new VersionedTransaction(msg);\n\n const res = await sendTransaction(tx, connection)\n console.log('res', res);\n return res;\n}","export type SolanaVault = {\n \"version\": \"0.1.0\",\n \"name\": \"solana_vault\",\n \"instructions\": [\n {\n \"name\": \"initVault\",\n \"accounts\": [\n {\n \"name\": \"signer\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"InitVaultParams\"\n }\n }\n ]\n },\n {\n \"name\": \"deposit\",\n \"accounts\": [\n {\n \"name\": \"user\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"userTokenAccount\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultTokenAccount\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"depositToken\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"peer\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"enforcedOptions\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"allowedBroker\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"allowedToken\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"tokenProgram\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"associatedTokenProgram\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"depositParams\",\n \"type\": {\n \"defined\": \"DepositParams\"\n }\n },\n {\n \"name\": \"oappParams\",\n \"type\": {\n \"defined\": \"OAppSendParams\"\n }\n }\n ],\n \"returns\": {\n \"defined\": \"MessagingReceipt\"\n }\n },\n {\n \"name\": \"initOapp\",\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"lzReceiveTypes\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"InitOAppParams\"\n }\n }\n ]\n },\n {\n \"name\": \"resetOapp\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"reinitOapp\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"ReinitOAppParams\"\n }\n }\n ]\n },\n {\n \"name\": \"resetVault\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"reinitVault\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"ReinitVaultParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setBroker\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"allowedBroker\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetBrokerParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setToken\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"allowedToken\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"mintAccount\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetTokenParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setOrderDelivery\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetOrderDeliveryParams\"\n }\n }\n ]\n },\n {\n \"name\": \"oappQuote\",\n \"accounts\": [\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"peer\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"enforcedOptions\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"OAppQuoteParams\"\n }\n }\n ],\n \"returns\": {\n \"defined\": \"MessagingFee\"\n }\n },\n {\n \"name\": \"lzReceive\",\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"peer\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"user\",\n \"isMut\": false,\n \"isSigner\": false,\n \"docs\": [\n \"CHECK\"\n ]\n },\n {\n \"name\": \"userDepositWallet\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultDepositWallet\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"depositToken\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"tokenProgram\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"eventAuthority\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"program\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"OAppLzReceiveParams\"\n }\n }\n ]\n },\n {\n \"name\": \"lzReceiveTypes\",\n \"accounts\": [\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"OAppLzReceiveParams\"\n }\n }\n ],\n \"returns\": {\n \"vec\": {\n \"defined\": \"oapp::endpoint_cpi::LzAccount\"\n }\n }\n },\n {\n \"name\": \"setRateLimit\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": false,\n \"isSigner\": true\n },\n {\n \"name\": \"peer\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetRateLimitParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setDelegate\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": false,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetDelegateParams\"\n }\n }\n ]\n },\n {\n \"name\": \"transferAdmin\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": false,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"TransferAdminParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setPeer\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"peer\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetPeerParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setEnforcedOptions\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"enforcedOptions\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetEnforcedOptionsParams\"\n }\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"enforcedOptions\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"send\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"sendAndCall\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"oAppConfig\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"endpointProgram\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"admin\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"usdcHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"usdcMint\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"oAppLzReceiveTypesAccounts\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"oappConfig\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"peer\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"address\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"rateLimiter\",\n \"type\": {\n \"option\": {\n \"defined\": \"RateLimiter\"\n }\n }\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"allowedBroker\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"allowedToken\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"mintAccount\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenDecimals\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"vaultAuthority\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump seed for the vault authority PDA\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"depositNonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"orderDelivery\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"inboundNonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"solChainId\",\n \"type\": \"u128\"\n }\n ]\n }\n }\n ],\n \"types\": [\n {\n \"name\": \"VaultDepositParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"userAddress\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"srcChainId\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"srcChainDepositNonce\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"LzMessage\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"msgType\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"payload\",\n \"type\": \"bytes\"\n }\n ]\n }\n },\n {\n \"name\": \"InitOAppParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"admin\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"endpointProgram\",\n \"type\": {\n \"option\": \"publicKey\"\n }\n },\n {\n \"name\": \"usdcHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"usdcMint\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"OAppLzReceiveParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"srcEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"sender\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"nonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"guid\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"message\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"extraData\",\n \"type\": \"bytes\"\n }\n ]\n }\n },\n {\n \"name\": \"AccountWithdrawSol\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"sender\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"receiver\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"chainId\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"withdrawNonce\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"VaultWithdrawParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"sender\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"receiver\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"chainId\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"withdrawNonce\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"OAppQuoteParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"to\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"options\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"message\",\n \"type\": {\n \"option\": \"bytes\"\n }\n },\n {\n \"name\": \"payInLzToken\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"ReinitOAppParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"admin\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"endpointProgram\",\n \"type\": {\n \"option\": \"publicKey\"\n }\n },\n {\n \"name\": \"usdcHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"usdcMint\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"SetDelegateParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"delegate\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"SetEnforcedOptionsParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"send\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"sendAndCall\",\n \"type\": \"bytes\"\n }\n ]\n }\n },\n {\n \"name\": \"SetPeerParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"peer\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"SetRateLimitParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"refillPerSecond\",\n \"type\": {\n \"option\": \"u64\"\n }\n },\n {\n \"name\": \"capacity\",\n \"type\": {\n \"option\": \"u64\"\n }\n },\n {\n \"name\": \"enabled\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"TransferAdminParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"admin\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"DepositParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"userAddress\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"OAppSendParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nativeFee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"lzTokenFee\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"InitVaultParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"orderDelivery\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"solChainId\",\n \"type\": \"u128\"\n }\n ]\n }\n },\n {\n \"name\": \"ReinitVaultParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"depositNonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"orderDelivery\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"inboundNonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"solChainId\",\n \"type\": \"u128\"\n }\n ]\n }\n },\n {\n \"name\": \"SetBrokerParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"SetOrderDeliveryParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"orderDelivery\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"SetTokenParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"mintAccount\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"RateLimiter\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"capacity\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"refillPerSecond\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"lastRefillTime\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"OAppError\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Unauthorized\"\n },\n {\n \"name\": \"InvalidSender\"\n },\n {\n \"name\": \"InvalidOptions\"\n },\n {\n \"name\": \"InvalidEndpointProgram\"\n },\n {\n \"name\": \"RateLimitExceeded\"\n },\n {\n \"name\": \"WithdrawFailed\"\n },\n {\n \"name\": \"InvalidInboundNonce\"\n }\n ]\n }\n },\n {\n \"name\": \"MsgType\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Deposit\"\n },\n {\n \"name\": \"Withdraw\"\n },\n {\n \"name\": \"RebalanceBurn\"\n },\n {\n \"name\": \"RebalanceMint\"\n }\n ]\n }\n },\n {\n \"name\": \"MessagingFee\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nativeFee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"lzTokenFee\",\n \"type\": \"u64\"\n }\n ]\n }\n }\n ],\n \"events\": [\n {\n \"name\": \"SetAllowedBroker\",\n \"fields\": [\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"ResetAllowedBroker\",\n \"fields\": [\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"SetAllowedToken\",\n \"fields\": [\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"mintAccount\",\n \"type\": \"publicKey\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"ResetAllowedToken\",\n \"fields\": [\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"mintAccount\",\n \"type\": \"publicKey\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"Deposited\",\n \"fields\": [\n {\n \"name\": \"user\",\n \"type\": \"publicKey\",\n \"index\": false\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"Withdrawn\",\n \"fields\": [\n {\n \"name\": \"user\",\n \"type\": \"publicKey\",\n \"index\": false\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"VaultDeposited\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"userAddress\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"srcChainId\",\n \"type\": \"u128\",\n \"index\": false\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\",\n \"index\": false\n },\n {\n \"name\": \"srcChainDepositNonce\",\n \"type\": \"u64\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"VaultWithdrawn\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"sender\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"receiver\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\",\n \"index\": false\n },\n {\n \"name\": \"fee\",\n \"type\": \"u128\",\n \"index\": false\n },\n {\n \"name\": \"chainId\",\n \"type\": \"u128\",\n \"index\": false\n },\n {\n \"name\": \"withdrawNonce\",\n \"type\": \"u64\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"OAppSent\",\n \"fields\": [\n {\n \"name\": \"guid\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"OAppReceived\",\n \"fields\": [\n {\n \"name\": \"guid\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"srcEid\",\n \"type\": \"u32\",\n \"index\": false\n }\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"InsufficientFunds\",\n \"msg\": \"Deposited funds are insufficient for withdrawal\"\n },\n {\n \"code\": 6001,\n \"name\": \"UserInfoBelongsToAnotherUser\",\n \"msg\": \"User info pda belongs to another user\"\n },\n {\n \"code\": 6002,\n \"name\": \"BrokerNotAllowed\",\n \"msg\": \"Broker is not allowed\"\n },\n {\n \"code\": 6003,\n \"name\": \"TokenNotAllowed\",\n \"msg\": \"Token is not allowed\"\n },\n {\n \"code\": 6004,\n \"name\": \"InvalidAccountId\",\n \"msg\": \"AccountId is invalid\"\n },\n {\n \"code\": 6005,\n \"name\": \"InvalidVaultOwner\",\n \"msg\": \"Vault owner is not the same as the payer\"\n }\n ]\n};\n\nexport const IDL: SolanaVault = {\n \"version\": \"0.1.0\",\n \"name\": \"solana_vault\",\n \"instructions\": [\n {\n \"name\": \"initVault\",\n \"accounts\": [\n {\n \"name\": \"signer\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"InitVaultParams\"\n }\n }\n ]\n },\n {\n \"name\": \"deposit\",\n \"accounts\": [\n {\n \"name\": \"user\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"userTokenAccount\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultTokenAccount\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"depositToken\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"peer\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"enforcedOptions\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"allowedBroker\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"allowedToken\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"tokenProgram\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"associatedTokenProgram\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"depositParams\",\n \"type\": {\n \"defined\": \"DepositParams\"\n }\n },\n {\n \"name\": \"oappParams\",\n \"type\": {\n \"defined\": \"OAppSendParams\"\n }\n }\n ],\n \"returns\": {\n \"defined\": \"MessagingReceipt\"\n }\n },\n {\n \"name\": \"initOapp\",\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"lzReceiveTypes\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"InitOAppParams\"\n }\n }\n ]\n },\n {\n \"name\": \"resetOapp\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"reinitOapp\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"ReinitOAppParams\"\n }\n }\n ]\n },\n {\n \"name\": \"resetVault\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"reinitVault\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"ReinitVaultParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setBroker\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"allowedBroker\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetBrokerParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setToken\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"allowedToken\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"mintAccount\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetTokenParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setOrderDelivery\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetOrderDeliveryParams\"\n }\n }\n ]\n },\n {\n \"name\": \"oappQuote\",\n \"accounts\": [\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"peer\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"enforcedOptions\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"OAppQuoteParams\"\n }\n }\n ],\n \"returns\": {\n \"defined\": \"MessagingFee\"\n }\n },\n {\n \"name\": \"lzReceive\",\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"peer\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"user\",\n \"isMut\": false,\n \"isSigner\": false,\n \"docs\": [\n \"CHECK\"\n ]\n },\n {\n \"name\": \"userDepositWallet\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultDepositWallet\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"depositToken\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"tokenProgram\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"eventAuthority\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"program\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"OAppLzReceiveParams\"\n }\n }\n ]\n },\n {\n \"name\": \"lzReceiveTypes\",\n \"accounts\": [\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"OAppLzReceiveParams\"\n }\n }\n ],\n \"returns\": {\n \"vec\": {\n \"defined\": \"oapp::endpoint_cpi::LzAccount\"\n }\n }\n },\n {\n \"name\": \"setRateLimit\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": false,\n \"isSigner\": true\n },\n {\n \"name\": \"peer\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetRateLimitParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setDelegate\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": false,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetDelegateParams\"\n }\n }\n ]\n },\n {\n \"name\": \"transferAdmin\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": false,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"TransferAdminParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setPeer\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"peer\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetPeerParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setEnforcedOptions\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"enforcedOptions\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetEnforcedOptionsParams\"\n }\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"enforcedOptions\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"send\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"sendAndCall\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"oAppConfig\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"endpointProgram\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"admin\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"usdcHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"usdcMint\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"oAppLzReceiveTypesAccounts\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"oappConfig\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"peer\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"address\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"rateLimiter\",\n \"type\": {\n \"option\": {\n \"defined\": \"RateLimiter\"\n }\n }\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"allowedBroker\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"allowedToken\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"mintAccount\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenDecimals\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"vaultAuthority\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump seed for the vault authority PDA\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"depositNonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"orderDelivery\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"inboundNonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"solChainId\",\n \"type\": \"u128\"\n }\n ]\n }\n }\n ],\n \"types\": [\n {\n \"name\": \"VaultDepositParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"userAddress\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"srcChainId\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"srcChainDepositNonce\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"LzMessage\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"msgType\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"payload\",\n \"type\": \"bytes\"\n }\n ]\n }\n },\n {\n \"name\": \"InitOAppParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"admin\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"endpointProgram\",\n \"type\": {\n \"option\": \"publicKey\"\n }\n },\n {\n \"name\": \"usdcHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"usdcMint\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"OAppLzReceiveParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"srcEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"sender\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"nonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"guid\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"message\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"extraData\",\n \"type\": \"bytes\"\n }\n ]\n }\n },\n {\n \"name\": \"AccountWithdrawSol\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"sender\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"receiver\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"chainId\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"withdrawNonce\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"VaultWithdrawParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"sender\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"receiver\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"chainId\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"withdrawNonce\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"OAppQuoteParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"to\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"options\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"message\",\n \"type\": {\n \"option\": \"bytes\"\n }\n },\n {\n \"name\": \"payInLzToken\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"ReinitOAppParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"admin\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"endpointProgram\",\n \"type\": {\n \"option\": \"publicKey\"\n }\n },\n {\n \"name\": \"usdcHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"usdcMint\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"SetDelegateParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"delegate\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"SetEnforcedOptionsParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"send\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"sendAndCall\",\n \"type\": \"bytes\"\n }\n ]\n }\n },\n {\n \"name\": \"SetPeerParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"peer\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"SetRateLimitParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"refillPerSecond\",\n \"type\": {\n \"option\": \"u64\"\n }\n },\n {\n \"name\": \"capacity\",\n \"type\": {\n \"option\": \"u64\"\n }\n },\n {\n \"name\": \"enabled\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"TransferAdminParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"admin\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"DepositParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"userAddress\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"OAppSendParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nativeFee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"lzTokenFee\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"InitVaultParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"orderDelivery\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"solChainId\",\n \"type\": \"u128\"\n }\n ]\n }\n },\n {\n \"name\": \"ReinitVaultParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"depositNonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"orderDelivery\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"inboundNonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"solChainId\",\n \"type\": \"u128\"\n }\n ]\n }\n },\n {\n \"name\": \"SetBrokerParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"SetOrderDeliveryParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"orderDelivery\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"SetTokenParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"mintAccount\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"RateLimiter\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"capacity\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"refillPerSecond\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"lastRefillTime\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"OAppError\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Unauthorized\"\n },\n {\n \"name\": \"InvalidSender\"\n },\n {\n \"name\": \"InvalidOptions\"\n },\n {\n \"name\": \"InvalidEndpointProgram\"\n },\n {\n \"name\": \"RateLimitExceeded\"\n },\n {\n \"name\": \"WithdrawFailed\"\n },\n {\n \"name\": \"InvalidInboundNonce\"\n }\n ]\n }\n },\n {\n \"name\": \"MsgType\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Deposit\"\n },\n {\n \"name\": \"Withdraw\"\n },\n {\n \"name\": \"RebalanceBurn\"\n },\n {\n \"name\": \"RebalanceMint\"\n }\n ]\n }\n },\n {\n \"name\": \"MessagingFee\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nativeFee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"lzTokenFee\",\n \"type\": \"u64\"\n }\n ]\n }\n }\n ],\n \"events\": [\n {\n \"name\": \"SetAllowedBroker\",\n \"fields\": [\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"ResetAllowedBroker\",\n \"fields\": [\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"SetAllowedToken\",\n \"fields\": [\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"mintAccount\",\n \"type\": \"publicKey\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"ResetAllowedToken\",\n \"fields\": [\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"mintAccount\",\n \"type\": \"publicKey\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"Deposited\",\n \"fields\": [\n {\n \"name\": \"user\",\n \"type\": \"publicKey\",\n \"index\": false\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"Withdrawn\",\n \"fields\": [\n {\n \"name\": \"user\",\n \"type\": \"publicKey\",\n \"index\": false\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"VaultDeposited\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"userAddress\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"srcChainId\",\n \"type\": \"u128\",\n \"index\": false\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\",\n \"index\": false\n },\n {\n \"name\": \"srcChainDepositNonce\",\n \"type\": \"u64\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"VaultWithdrawn\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"sender\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"receiver\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\",\n \"index\": false\n },\n {\n \"name\": \"fee\",\n \"type\": \"u128\",\n \"index\": false\n },\n {\n \"name\": \"chainId\",\n \"type\": \"u128\",\n \"index\": false\n },\n {\n \"name\": \"withdrawNonce\",\n \"type\": \"u64\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"OAppSent\",\n \"fields\": [\n {\n \"name\": \"guid\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"OAppReceived\",\n \"fields\": [\n {\n \"name\": \"guid\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"srcEid\",\n \"type\": \"u32\",\n \"index\": false\n }\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"InsufficientFunds\",\n \"msg\": \"Deposited funds are insufficient for withdrawal\"\n },\n {\n \"code\": 6001,\n \"name\": \"UserInfoBelongsToAnotherUser\",\n \"msg\": \"User info pda belongs to another user\"\n },\n {\n \"code\": 6002,\n \"name\": \"BrokerNotAllowed\",\n \"msg\": \"Broker is not allowed\"\n },\n {\n \"code\": 6003,\n \"name\": \"TokenNotAllowed\",\n \"msg\": \"Token is not allowed\"\n },\n {\n \"code\": 6004,\n \"name\": \"InvalidAccountId\",\n \"msg\": \"AccountId is invalid\"\n },\n {\n \"code\": 6005,\n \"name\": \"InvalidVaultOwner\",\n \"msg\": \"Vault owner is not the same as the payer\"\n }\n ]\n};\n","import {Connection, PublicKey} from \"@solana/web3.js\";\nimport { getAssociatedTokenAddressSync } from \"@solana/spl-token\";\nimport {\n BROKER_SEED,\n DEV_LOOKUP_TABLE_ADDRESS,\n DEV_OAPP_PROGRAM_ID,\n DEV_PEER_ADDRESS,\n DVN_PROGRAM_ID,\n ENDPOINT_PROGRAM_ID,\n EXECUTOR_PROGRAM_ID,\n PRICE_FEED_PROGRAM_ID,\n QA_LOOKUP_TABLE_ADDRESS,\n QA_OAPP_PROGRAM_ID,\n QA_PEER_ADDRESS,\n RECEIVE_LIB_PROGRAM_ID,\n SEND_LIB_PROGRAM_ID,\n STAGING_LOOKUP_TABLE_ADDRESS,\n STAGING_OAPP_PROGRAM_ID, STAGING_PEER_ADDRESS,\n TOKEN_SEED,\n VAULT_AUTHORITY_SEED\n} from \"./constant\";\nimport {\n DVN_CONFIG_SEED,\n ENDPOINT_SEED,\n ENFORCED_OPTIONS_SEED, EVENT_SEED, EXECUTOR_CONFIG_SEED,\n LZ_RECEIVE_TYPES_SEED, MESSAGE_LIB_SEED, NONCE_SEED,\n OAPP_SEED,\n PEER_SEED, PRICE_FEED_SEED, SEND_CONFIG_SEED,\n SEND_LIBRARY_CONFIG_SEED, ULN_SEED\n} from \"@layerzerolabs/lz-solana-sdk-v2\";\n\nexport const getUSDCAccounts = (usdc: PublicKey, owner: PublicKey): PublicKey => {\n const usdcTokenAccount = getAssociatedTokenAddressSync(\n usdc,\n owner,\n true\n );\n return usdcTokenAccount;\n};\n\nexport function getVaultAuthorityPda(VAULT_PROGRAM_ID: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(VAULT_AUTHORITY_SEED, \"utf8\")],\n VAULT_PROGRAM_ID\n )[0];\n}\n\n\n\nexport function getBrokerPDA(programId: PublicKey, brokerHash: string): PublicKey {\n const hash = Array.from(Buffer.from( brokerHash.slice(2), \"hex\"));\n return PublicKey.findProgramAddressSync(\n [Buffer.from(BROKER_SEED, \"utf8\"),Buffer.from(hash)],\n programId\n )[0];\n}\n\nexport function getTokenPDA(programId: PublicKey, tokenHash: string): PublicKey {\n const hash = Array.from(Buffer.from( tokenHash.slice(2), \"hex\"));\n return PublicKey.findProgramAddressSync(\n [Buffer.from(TOKEN_SEED, \"utf8\"),Buffer.from(hash)],\n programId\n )[0];}\n\n\nexport function getOAppConfigPda(programId: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(OAPP_SEED, \"utf8\")],\n programId\n )[0];\n}\n\nexport function getLzReceiveTypesPda(programId: PublicKey, oappConfigPda: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(LZ_RECEIVE_TYPES_SEED, \"utf8\"), oappConfigPda.toBuffer()],\n programId\n )[0];\n}\n\nexport function getPeerPda(OAPP_PROGRAM_ID: PublicKey, oappConfigPda: PublicKey, dstEid: number): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n bufferDstEid.writeUInt32BE(dstEid);\n\n return PublicKey.findProgramAddressSync(\n [Buffer.from(PEER_SEED, \"utf8\"), oappConfigPda.toBuffer(), bufferDstEid],\n OAPP_PROGRAM_ID\n )[0];\n}\n\nexport function getEndorcedOptionsPda(OAPP_PROGRAM_ID: PublicKey, oappConfigPda: PublicKey, dstEid: number): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n bufferDstEid.writeUInt32BE(dstEid);\n\n return PublicKey.findProgramAddressSync(\n [Buffer.from(ENFORCED_OPTIONS_SEED, \"utf8\"), oappConfigPda.toBuffer(), bufferDstEid],\n OAPP_PROGRAM_ID\n )[0];\n}\n\nexport function getSendLibPda(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(MESSAGE_LIB_SEED, \"utf8\")],\n SEND_LIB_PROGRAM_ID\n )[0];\n}\n\n\nexport function getSendLibConfigPda(oappConfigPda: PublicKey, dstEid: number): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n bufferDstEid.writeUInt32BE(dstEid);\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEND_LIBRARY_CONFIG_SEED, \"utf8\"), oappConfigPda.toBuffer(), bufferDstEid],\n ENDPOINT_PROGRAM_ID\n )[0];\n}\n\nexport function getDefaultSendLibConfigPda(dstEid: number): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n bufferDstEid.writeUInt32BE(dstEid);\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEND_LIBRARY_CONFIG_SEED, \"utf8\"), bufferDstEid],\n ENDPOINT_PROGRAM_ID\n )[0];\n}\n\nexport function getSendLibInfoPda(sendLibPda: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(MESSAGE_LIB_SEED, \"utf8\"), sendLibPda.toBuffer()],\n ENDPOINT_PROGRAM_ID\n )[0];\n}\n\nexport function getEndpointSettingPda(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(ENDPOINT_SEED, \"utf8\")],\n ENDPOINT_PROGRAM_ID\n )[0];\n}\n\nexport function getPeerAddress(OAPP_PROGRAM_ID: PublicKey): Uint8Array{\n\n let peer_address = DEV_PEER_ADDRESS;\n if (OAPP_PROGRAM_ID.toBase58() === DEV_OAPP_PROGRAM_ID.toBase58()) {\n peer_address = DEV_PEER_ADDRESS;\n }\n if (OAPP_PROGRAM_ID.toBase58() === QA_OAPP_PROGRAM_ID.toBase58()) {\n peer_address = QA_PEER_ADDRESS;\n }\n if (OAPP_PROGRAM_ID.toBase58() === STAGING_OAPP_PROGRAM_ID.toBase58()) {\n peer_address = STAGING_PEER_ADDRESS;\n }\n return peer_address;\n}\n\nexport function getNoncePda(OAPP_PROGRAM_ID: PublicKey, oappConfigPda: PublicKey, dstEid: number): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n const peer_address = getPeerAddress(OAPP_PROGRAM_ID);\n\n bufferDstEid.writeUInt32BE(dstEid);\n return PublicKey.findProgramAddressSync(\n [Buffer.from(NONCE_SEED, \"utf8\"), oappConfigPda.toBuffer(), bufferDstEid, peer_address],\n ENDPOINT_PROGRAM_ID\n )[0];\n}\n\nexport function getEventAuthorityPda(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(EVENT_SEED, \"utf8\")],\n ENDPOINT_PROGRAM_ID\n )[0];\n}\n\nexport function getUlnSettingPda(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(ULN_SEED, \"utf8\")],\n SEND_LIB_PROGRAM_ID\n )[0];\n}\n\nexport function getSendConfigPda(oappConfigPda: PublicKey, dstEid: number): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n bufferDstEid.writeUInt32BE(dstEid);\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEND_CONFIG_SEED, \"utf8\"), bufferDstEid, oappConfigPda.toBuffer()],\n SEND_LIB_PROGRAM_ID\n )[0];\n}\n\n\nexport function getDefaultSendConfigPda(dstEid: number): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n bufferDstEid.writeUInt32BE(dstEid);\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEND_CONFIG_SEED, \"utf8\"), bufferDstEid],\n RECEIVE_LIB_PROGRAM_ID\n )[0];\n}\n\nexport function getUlnEventAuthorityPda(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(EVENT_SEED, \"utf8\")],\n SEND_LIB_PROGRAM_ID\n )[0];\n}\n\nexport function getExecutorConfigPda(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(EXECUTOR_CONFIG_SEED, \"utf8\")],\n EXECUTOR_PROGRAM_ID\n )[0];\n}\n\nexport function getPriceFeedPda(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(PRICE_FEED_SEED, \"utf8\")],\n PRICE_FEED_PROGRAM_ID\n )[0];\n}\n\nexport function getDvnConfigPda(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(DVN_CONFIG_SEED, \"utf8\")],\n DVN_PROGRAM_ID\n )[0];\n}\n\nexport function getLookupTableAddress( OAPP_PROGRAM_ID: PublicKey): PublicKey {\n if (OAPP_PROGRAM_ID.toBase58() === DEV_OAPP_PROGRAM_ID.toBase58()) {\n console.log(\"DEV_LOOKUP_TABLE_ADDRESS: \", DEV_LOOKUP_TABLE_ADDRESS.toBase58());\n return DEV_LOOKUP_TABLE_ADDRESS;\n }\n if (OAPP_PROGRAM_ID.toBase58() === QA_OAPP_PROGRAM_ID.toBase58()) {\n return QA_LOOKUP_TABLE_ADDRESS;\n }\n if (OAPP_PROGRAM_ID.toBase58() === STAGING_OAPP_PROGRAM_ID.toBase58()) {\n return STAGING_LOOKUP_TABLE_ADDRESS;\n }\n\n return DEV_LOOKUP_TABLE_ADDRESS\n}\n\nexport function getMessageLibPda(programId?: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(MESSAGE_LIB_SEED, \"utf8\")],\n programId ? programId : SEND_LIB_PROGRAM_ID\n )[0];\n}\n\nexport function getMessageLibInfoPda(msgLibPda: PublicKey, programId?: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(MESSAGE_LIB_SEED, \"utf8\"), msgLibPda.toBytes()],\n programId ? programId :ENDPOINT_PROGRAM_ID\n )[0];\n}\n\n\nexport async function getLookupTableAccount(connection: Connection, lookupTableAddress: PublicKey) {\n const lookupTableAccount = (\n await connection.getAddressLookupTable(lookupTableAddress)\n ).value;\n\n return lookupTableAccount;\n}","import { PublicKey } from \"@solana/web3.js\";\nimport { addressToBytes32 } from \"@layerzerolabs/lz-v2-utilities\";\n\n\nexport const ENDPOINT_PROGRAM_ID = new PublicKey(\"76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6\");\nexport const SEND_LIB_PROGRAM_ID = new PublicKey(\"7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH\");\nexport const EXECUTOR_PROGRAM_ID = new PublicKey(\"6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn\");\nexport const PRICE_FEED_PROGRAM_ID = new PublicKey(\"8ahPGPjEbpgGaZx2NV1iG5Shj7TDwvsjkEDcGWjt94TP\");\nexport const RECEIVE_LIB_PROGRAM_ID = SEND_LIB_PROGRAM_ID;\nexport const TREASURY_PROGRAM_ID = SEND_LIB_PROGRAM_ID;\nexport const DVN_PROGRAM_ID = new PublicKey(\"HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW\");\nexport const VAULT_AUTHORITY_SEED = \"VaultAuthority\";\nexport const BROKER_SEED = \"Broker\";\nexport const TOKEN_SEED = \"Token\";\n// fro dev\n// export const PEER_ADDRESS = addressToBytes32('0x9Dc724b24146BeDD2dA28b8C4B74126169B8f312');\n// for qa\nexport const DEV_PEER_ADDRESS = addressToBytes32(\"0x9Dc724b24146BeDD2dA28b8C4B74126169B8f312\");\nexport const QA_PEER_ADDRESS = addressToBytes32(\"0x45b6C6266A7A2170617d8A27A50C642fd68b91c4\");\nexport const STAGING_PEER_ADDRESS = addressToBytes32(\"0x5Bf771A65d057e778C5f0Ed52A0003316f94322D\");\n\nexport const DST_EID = 40200;\n\n\nexport const DEV_LOOKUP_TABLE_ADDRESS = new PublicKey(\"BWp8HaYYhiNHekt3zgQhqoCrRftneGxxfgKmCZ6svHN\");\nexport const QA_LOOKUP_TABLE_ADDRESS = new PublicKey(\"BswrQQoPKAFojTuJutZcBMtigAgTghEH4M8ofn3EG2X2\");\nexport const STAGING_LOOKUP_TABLE_ADDRESS = new PublicKey(\"BbGKfxuPwDmu58BjPpd7PMG69TqnZjSpKaLDMgf9E9Dr\");\n\n\nexport const DEV_OAPP_PROGRAM_ID = new PublicKey(\"EYJq9eU4GMRUriUJBgGoZ8YLQBXcWaciXuSsEXE7ieQS\");\nexport const QA_OAPP_PROGRAM_ID = new PublicKey(\"5zBjLor7vEraAt4zp2H82sy9MSqFoDnNa1Lx6EYKTYRZ\");\nexport const STAGING_OAPP_PROGRAM_ID = new PublicKey(\"9shwxWDUNhtwkHocsUAmrNAQfBH2DHh4njdAEdHZZkF2\");\n"],"mappings":"+rBAQG,OAAO,QAAW,cACjB,OAAO,oBAAsB,OAAO,qBAAuB,CAAC,EAC5D,OAAO,oBAAoB,yCAAyC,EAAI,SAG5E,IAAOA,GAAQ,QCZf,OAEE,qBAAAC,OACK,wBACP,OAAa,cAAAC,GAAY,kBAAAC,OAAqB,yBAC9C,UAAYC,OAAQ,iBACpB,OAAS,UAAUC,OAAwC,OCD3D,OAAQ,cAAAC,EAAY,cAAAC,MAAiB,8BACrC,OAAQ,YAAAC,EAAU,gBAAAC,GAAc,2BAAAC,MAA8B,SAC9D,OAAQ,aAAAC,MAAgB,+BACxB,OACI,wBAAAC,GAEA,aAAAC,EACA,iBAAAC,GACA,sBAAAC,GACA,wBAAAC,OACG,kBACP,OAAQ,MAAAC,GAAI,WAAAC,OAAc,oBCyxDnB,IAAMC,GAAmB,CAC9B,QAAW,QACX,KAAQ,eACR,aAAgB,CACd,CACE,KAAQ,YACR,SAAY,CACV,CACE,KAAQ,SACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,iBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,UACR,SAAY,CACV,CACE,KAAQ,OACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,mBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,oBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,eACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,OACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,kBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,eACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,eACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,yBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,gBACR,KAAQ,CACN,QAAW,eACb,CACF,EACA,CACE,KAAQ,aACR,KAAQ,CACN,QAAW,gBACb,CACF,CACF,EACA,QAAW,CACT,QAAW,kBACb,CACF,EACA,CACE,KAAQ,WACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,gBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,YACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CAAC,CACX,EACA,CACE,KAAQ,aACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,kBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,aACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CAAC,CACX,EACA,CACE,KAAQ,cACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,mBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,YACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,iBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,WACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,eACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,cACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,gBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,mBACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,wBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,YACR,SAAY,CACV,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,OACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,kBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,iBACb,CACF,CACF,EACA,QAAW,CACT,QAAW,cACb,CACF,EACA,CACE,KAAQ,YACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,OACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,OACR,MAAS,GACT,SAAY,GACZ,KAAQ,CACN,OACF,CACF,EACA,CACE,KAAQ,oBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,qBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,eACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,eACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,UACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,qBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,iBACR,SAAY,CACV,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,qBACb,CACF,CACF,EACA,QAAW,CACT,IAAO,CACL,QAAW,+BACb,CACF,CACF,EACA,CACE,KAAQ,eACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,OACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,oBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,cACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,mBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,gBACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,qBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,UACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA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,CACE,KAAQ,iBACR,KAAQ,CACN,KAAQ,SACR,OAAU,CACR,CACE,KAAQ,QACR,KAAQ,WACV,EACA,CACE,KAAQ,kBACR,KAAQ,CACN,OAAU,WACZ,CACF,EACA,CACE,KAAQ,WACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,WACR,KAAQ,WACV,CACF,CACF,CACF,EACA,CACE,KAAQ,sBACR,KAAQ,CACN,KAAQ,SACR,OAAU,CACR,CACE,KAAQ,SACR,KAAQ,KACV,EACA,CACE,KAAQ,SACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,QACR,KAAQ,KACV,EACA,CACE,KAAQ,OACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,UACR,KAAQ,OACV,EACA,CACE,KAAQ,YACR,KAAQ,OACV,CACF,CACF,CACF,EACA,CACE,KAAQ,qBACR,KAAQ,CACN,KAAQ,SACR,OAAU,CACR,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,SACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,WACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,aACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,cACR,KAAQ,KACV,EACA,CACE,KAAQ,MACR,KAAQ,KACV,EACA,CACE,KAAQ,UACR,KAAQ,KACV,EACA,CACE,KAAQ,gBACR,KAAQ,KACV,CACF,CACF,CACF,EACA,CACE,KAAQ,sBACR,KAAQ,CACN,KAAQ,SACR,OAAU,CACR,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,SACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,WACR,KAAQ,CAC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,KAAQ,aACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,CACF,CACF,EACA,CACE,KAAQ,kBACR,OAAU,CACR,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,cACR,KAAQ,YACR,MAAS,EACX,CACF,CACF,EACA,CACE,KAAQ,oBACR,OAAU,CACR,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,cACR,KAAQ,YACR,MAAS,EACX,CACF,CACF,EACA,CACE,KAAQ,YACR,OAAU,CACR,CACE,KAAQ,OACR,KAAQ,YACR,MAAS,EACX,EACA,CACE,KAAQ,SACR,KAAQ,MACR,MAAS,EACX,CACF,CACF,EACA,CACE,KAAQ,YACR,OAAU,CACR,CACE,KAAQ,OACR,KAAQ,YACR,MAAS,EACX,EACA,CACE,KAAQ,SACR,KAAQ,MACR,MAAS,EACX,CACF,CACF,EACA,CACE,KAAQ,iBACR,OAAU,CACR,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,aACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,cACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,aACR,KAAQ,OACR,MAAS,EACX,EACA,CACE,KAAQ,cACR,KAAQ,MACR,MAAS,EACX,EACA,CACE,KAAQ,uBACR,KAAQ,MACR,MAAS,EACX,CACF,CACF,EACA,CACE,KAAQ,iBACR,OAAU,CACR,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,SACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA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","names":["version_default","BaseWalletAdapter","MaxUint256","ChainNamespace","ed","bs58encode","bytesToHex","hexToBytes","AbiCoder","decodeBase58","solidityPackedKeccak256","keccak256","ComputeBudgetProgram","PublicKey","SystemProgram","TransactionMessage","VersionedTransaction","BN","Program","IDL","PublicKey","getAssociatedTokenAddressSync","PublicKey","addressToBytes32","ENDPOINT_PROGRAM_ID","SEND_LIB_PROGRAM_ID","EXECUTOR_PROGRAM_ID","PRICE_FEED_PROGRAM_ID","RECEIVE_LIB_PROGRAM_ID","TREASURY_PROGRAM_ID","DVN_PROGRAM_ID","VAULT_AUTHORITY_SEED","BROKER_SEED","TOKEN_SEED","DEV_PEER_ADDRESS","QA_PEER_ADDRESS","STAGING_PEER_ADDRESS","DST_EID","DEV_LOOKUP_TABLE_ADDRESS","QA_LOOKUP_TABLE_ADDRESS","STAGING_LOOKUP_TABLE_ADDRESS","DEV_OAPP_PROGRAM_ID","QA_OAPP_PROGRAM_ID","STAGING_OAPP_PROGRAM_ID","DVN_CONFIG_SEED","ENDPOINT_SEED","ENFORCED_OPTIONS_SEED","EVENT_SEED","EXECUTOR_CONFIG_SEED","LZ_RECEIVE_TYPES_SEED","MESSAGE_LIB_SEED","NONCE_SEED","OAPP_SEED","PEER_SEED","PRICE_FEED_SEED","SEND_CONFIG_SEED","SEND_LIBRARY_CONFIG_SEED","ULN_SEED","getUSDCAccounts","usdc","owner","getAssociatedTokenAddressSync","getVaultAuthorityPda","VAULT_PROGRAM_ID","PublicKey","VAULT_AUTHORITY_SEED","getBrokerPDA","programId","brokerHash","hash","BROKER_SEED","getTokenPDA","tokenHash","TOKEN_SEED","getOAppConfigPda","OAPP_SEED","getPeerPda","OAPP_PROGRAM_ID","oappConfigPda","dstEid","bufferDstEid","PublicKey","PEER_SEED","getEndorcedOptionsPda","ENFORCED_OPTIONS_SEED","getSendLibPda","MESSAGE_LIB_SEED","SEND_LIB_PROGRAM_ID","getSendLibConfigPda","SEND_LIBRARY_CONFIG_SEED","ENDPOINT_PROGRAM_ID","getDefaultSendLibConfigPda","getSendLibInfoPda","sendLibPda","getEndpointSettingPda","ENDPOINT_SEED","getPeerAddress","peer_address","DEV_PEER_ADDRESS","DEV_OAPP_PROGRAM_ID","QA_OAPP_PROGRAM_ID","QA_PEER_ADDRESS","STAGING_OAPP_PROGRAM_ID","STAGING_PEER_ADDRESS","getNoncePda","NONCE_SEED","getEventAuthorityPda","EVENT_SEED","getUlnSettingPda","ULN_SEED","getSendConfigPda","SEND_CONFIG_SEED","getDefaultSendConfigPda","RECEIVE_LIB_PROGRAM_ID","getUlnEventAuthorityPda","getExecutorConfigPda","EXECUTOR_CONFIG_SEED","EXECUTOR_PROGRAM_ID","getPriceFeedPda","PRICE_FEED_SEED","PRICE_FEED_PROGRAM_ID","getDvnConfigPda","DVN_CONFIG_SEED","DVN_PROGRAM_ID","getLookupTableAddress","DEV_LOOKUP_TABLE_ADDRESS","QA_LOOKUP_TABLE_ADDRESS","STAGING_LOOKUP_TABLE_ADDRESS","getMessageLibPda","programId","getMessageLibInfoPda","msgLibPda","getLookupTableAccount","connection","lookupTableAddress","__async","addOrderlyKeyMessage","inputs","publicKey","brokerId","expiration","timestamp","scope","tag","chainId","message","__spreadProps","__spreadValues","brokerIdHash","solidityPackedKeccak256","orderlyKeyHash","scopeHash","abicoder","AbiCoder","msgToSign","keccak256","hexToBytes","msgToSignHex","bytesToHex","msgToSignTextEncoded","registerAccountMessage","registrationNonce","withdrawMessage","receiver","token","amount","nonce","tokenSymbolHash","salt","decodeBase58","settleMessage","settlePnlNonce","encodeLzMessage","message","msgTypeBuffer","getDepositQuoteFee","_0","__async","vaultAddress","userAddress","connection","appProgramId","PublicKey","program","Program","IDL","userPublicKey","oappConfigPDA","getOAppConfigPda","peerPDA","getPeerPda","DST_EID","endorcedPDA","getEndorcedOptionsPda","sendLibConfigPDA","getSendLibConfigPda","defaultSendLibPDA","getDefaultSendLibConfigPda","endpointSettingPDA","getEndpointSettingPda","noncePDA","getNoncePda","sendConfigPDA","getSendConfigPda","defaultSendConfigPDA","getDefaultSendConfigPda","executorConfigPDA","getExecutorConfigPda","priceFeedPDA","getPriceFeedPda","dvnConfigPDA","getDvnConfigPda","messageLibPDA","getMessageLibPda","SEND_LIB_PROGRAM_ID","messageLibInfoPDA","getMessageLibInfoPda","depositMsg","lzMessage","quoteParams","getPeerAddress","quoteFee","ENDPOINT_PROGRAM_ID","EXECUTOR_PROGRAM_ID","PRICE_FEED_PROGRAM_ID","DVN_PROGRAM_ID","lastBlockHash","lookupTableAddress","getLookupTableAddress","lookupTableAccount","getLookupTableAccount","feeMsg","TransactionMessage","feeTx","VersionedTransaction","feeRes","returnPrefix","returnLogEntry","log","encodedReturnData","decodedBuffer","deposit","sendTransaction","depositData","usdc","userUSDCAccount","getUSDCAccounts","vaultAuthorityPda","getVaultAuthorityPda","vaultUSDCAccount","brokerHash","codedBrokerHash","tokenHash","codedTokenHash","solAccountId","codedAccountId","allowedBrokerPDA","getBrokerPDA","allowedTokenPDA","getTokenPDA","sendLibPDA","getSendLibPda","sendLibInfoPDA","getSendLibInfoPda","eventAuthorityPDA","getEventAuthorityPda","ulnSettingPDA","getUlnSettingPda","ulnEventAuthorityPDA","getUlnEventAuthorityPda","vaultDepositParams","BN","fee","sendParam","ixDepositEntry","TREASURY_PROGRAM_ID","SystemProgram","ixAddComputeBudget","ComputeBudgetProgram","msg","tx","res","bytesToHex","getAccount","PublicKey","DefaultSolanaWalletAdapter","BaseWalletAdapter","__publicField","ChainNamespace","chainId","config","name","data","privKey","secretKey","bs58encode","inputs","__async","message","toSignatureMessage","registerAccountMessage","__spreadProps","__spreadValues","signRes","signature","bytesToHex","withdrawMessage","addOrderlyKeyMessage","res","settleMessage","address","method","params","options","usdcPublicKey","PublicKey","userPublicKey","userUSDCAccount","getUSDCAccounts","getAccount","MaxUint256","contractAddress","payload","deposit","chain","getDepositQuoteFee","txHash","baseInterval","maxInterval","maxRetries"]}
|
|
1
|
+
{"version":3,"sources":["../src/version.ts","../src/walletAdapter.ts","../src/helper.ts","../src/idl/solana_vault.ts","../src/solana.util.ts","../src/constant.ts"],"sourcesContent":["\ndeclare global {\n interface Window {\n __ORDERLY_VERSION__?: {\n [key: string]: string;\n };\n }\n}\nif(typeof window !== 'undefined') {\n window.__ORDERLY_VERSION__ = window.__ORDERLY_VERSION__ || {};\n window.__ORDERLY_VERSION__[\"@orderly.network/default-solana-adapter\"] = \"2.0.1-alpha.0\";\n};\n\nexport default \"2.0.1-alpha.0\";\n","import { SolanaAdapterOption, SolanaWalletProvider } from \"./types\";\nimport {\n AddOrderlyKeyInputs,\n BaseWalletAdapter, Message, RegisterAccountInputs, SettleInputs, SignatureDomain, WithdrawInputs\n} from \"@orderly.network/core\";\nimport {API, MaxUint256, ChainNamespace} from \"@orderly.network/types\";\nimport * as ed from \"@noble/ed25519\";\nimport { encode as bs58encode, decode as bs58Decode } from \"bs58\";\nimport {\n addOrderlyKeyMessage, deposit,\n encodeLzMessage, getDepositQuoteFee,\n MsgType,\n registerAccountMessage,\n settleMessage,\n withdrawMessage\n} from \"./helper\";\nimport { bytesToHex } from \"ethereum-cryptography/utils\";\nimport { getAccount } from \"@solana/spl-token\";\nimport {\n getBrokerPDA,\n getDefaultSendConfigPda,\n getDefaultSendLibConfigPda,\n getDvnConfigPda,\n getEndorcedOptionsPda,\n getEndpointSettingPda,\n getEventAuthorityPda,\n getExecutorConfigPda,\n getLookupTableAccount,\n getLookupTableAddress,\n getMessageLibInfoPda,\n getMessageLibPda,\n getNoncePda,\n getOAppConfigPda, getPeerAddress,\n getPeerPda,\n getPriceFeedPda,\n getSendConfigPda,\n getSendLibConfigPda,\n getSendLibInfoPda,\n getSendLibPda,\n getTokenPDA,\n getUlnEventAuthorityPda,\n getUlnSettingPda,\n getUSDCAccounts,\n getVaultAuthorityPda\n} from \"./solana.util\";\nimport {\n ComputeBudgetProgram,\n PublicKey,\n SystemProgram,\n TransactionMessage,\n VersionedTransaction\n} from \"@solana/web3.js\";\nimport {BN, Program} from \"@coral-xyz/anchor\";\nimport {SolanaVault, IDL as VaultIDL} from \"./idl/solana_vault\";\nimport {\n DST_EID, DVN_PROGRAM_ID,\n ENDPOINT_PROGRAM_ID,\n EXECUTOR_PROGRAM_ID,\n PRICE_FEED_PROGRAM_ID,\n SEND_LIB_PROGRAM_ID,\n TREASURY_PROGRAM_ID\n} from \"./constant\";\n\nclass DefaultSolanaWalletAdapter extends BaseWalletAdapter<SolanaAdapterOption> {\n chainNamespace: ChainNamespace = ChainNamespace.solana;\n\n\n private _address!: string;\n private _chainId!: number;\n private _provider!: SolanaWalletProvider;\n\n constructor() {\n super();\n }\n\n get address(): string {\n return this._address;\n }\n\n get chainId(): number {\n return this._chainId;\n }\n\n set chainId(chainId: number) {\n this._chainId = chainId;\n }\n\n private setConfig(config: SolanaAdapterOption) {\n this._address = config.address;\n this._chainId = config.chain.id;\n if (config.provider) {\n this._provider = config.provider;\n }\n }\n\n private lifecycleName(name: string, data: any) {\n console.log(\"lifecycle\", name, data);\n }\n\n active(config: SolanaAdapterOption): void {\n this.setConfig(config);\n this.lifecycleName(\"active\", config);\n }\n\n deactivate(): void {\n this.lifecycleName(\"deactivate\", {});\n }\n\n update(config: SolanaAdapterOption): void {\n this.lifecycleName(\"update\", config);\n this.setConfig(config);\n }\n\n generateSecretKey(): string {\n let privKey, secretKey;\n do {\n privKey = ed.utils.randomPrivateKey();\n secretKey = bs58encode(privKey);\n } while (secretKey.length !== 44);\n\n return secretKey;\n }\n\n async generateRegisterAccountMessage(inputs: RegisterAccountInputs): Promise<Message> {\n const [message, toSignatureMessage] = registerAccountMessage({\n ...inputs,\n chainId: this.chainId,\n });\n const signRes = await this._provider.signMessage(toSignatureMessage as Uint8Array);\n const signature = '0x' + bytesToHex(signRes);\n\n return {\n message: {\n ...message,\n chainType: \"SOL\"\n },\n signatured: signature,\n };\n }\n\n async generateWithdrawMessage(inputs: WithdrawInputs): Promise<Message & {domain: SignatureDomain}> {\n const [message, toSignatureMessage] =withdrawMessage({\n ...inputs,\n chainId: this.chainId,\n });\n const signRes = await this._provider.signMessage(toSignatureMessage as Uint8Array);\n const signature = '0x' + bytesToHex(signRes);\n console.log('-- verify contract', inputs.verifyContract);\n\n\n\n return {\n message: {\n ...message,\n chainType: \"SOL\"\n },\n domain: {\n name:'',\n version:'',\n chainId:this.chainId,\n verifyingContract:inputs.verifyContract!,\n },\n signatured: signature,\n };\n }\n\n async generateAddOrderlyKeyMessage(inputs: AddOrderlyKeyInputs): Promise<Message> {\n const [message, toSignatureMessage] = addOrderlyKeyMessage({\n ...inputs,\n chainId: this.chainId,\n });\n const res = await this._provider.signMessage(toSignatureMessage as Uint8Array);\n\n\n const signature = '0x' + bytesToHex(res);\n\n return {\n message: {\n ...message,\n chainType: \"SOL\"\n },\n signatured: signature,\n };\n }\n\n async generateSettleMessage(inputs: SettleInputs): Promise<Message & {domain: SignatureDomain}> {\n const [message, toSignatureMessage] = await settleMessage({\n ...inputs,\n chainId: this.chainId,\n });\n const res = await this._provider.signMessage(toSignatureMessage as Uint8Array);\n const signature = '0x' + bytesToHex(res);\n return {\n message: {\n ...message,\n chainType: \"SOL\"\n },\n domain: {\n name:'',\n version:'',\n chainId: this.chainId,\n verifyingContract:inputs.verifyContract!,\n },\n signatured: signature,\n };\n }\n\n async getBalance(): Promise<bigint> {\n return BigInt(0);\n }\n\n async call(address: string,\n method: string,\n params: any[],\n options?: {\n abi: any;\n }) {\n // console.log('-- solanan call', {\n // address,\n // method,\n // params,\n // options,\n // })\n if (method === 'balanceOf') {\n\n const usdcPublicKey = new PublicKey(address);\n const userPublicKey = new PublicKey(this._address);\n const userUSDCAccount = getUSDCAccounts(usdcPublicKey,userPublicKey);\n const usdcamount = await getAccount(this._provider.connection,userUSDCAccount, 'confirmed');\n return usdcamount.amount;\n }\n if (method === 'allowance') {\n return MaxUint256;\n }\n return BigInt(0)\n\n\n }\n \n async sendTransaction( contractAddress: string,\n method: string,\n payload: {\n from: string;\n to?: string;\n data: any[];\n value?: bigint;\n },\n options: {\n abi: any;\n }) {\n console.log('-- solanan sendTransaction', {\n contractAddress,\n method,\n payload,\n options,\n })\n if (method === 'deposit') {\n return deposit({\n vaultAddress: contractAddress,\n userAddress: this._address,\n connection: this._provider.connection,\n depositData: payload.data[0],\n sendTransaction: this._provider.sendTransaction,\n\n })\n\n }\n \n }\n\n async callOnChain(\n chain: API.NetworkInfos,\n address: string,\n method: string,\n params: any[],\n options: {\n abi: any;\n }\n ): Promise<any> {\n console.log('-- params ', {\n chain,\n address,\n method,\n params,\n })\n if (method === 'getDepositFee') {\n return getDepositQuoteFee({\n vaultAddress: address,\n userAddress: this._address,\n connection: this._provider.connection,\n depositData: params[1]\n })\n\n\n }\n return 0;\n \n }\n async pollTransactionReceiptWithBackoff(\n txHash: string,\n baseInterval?: number,\n maxInterval?: number,\n maxRetries?: number\n ): Promise<any> {\n \n }\n}\n\nexport { DefaultSolanaWalletAdapter };","import {\n AddOrderlyKeyInputs,\n RegisterAccountInputs,\n type SettleInputs,\n type SignatureDomain,\n type WithdrawInputs,\n} from \"@orderly.network/core\";\nimport { bytesToHex, hexToBytes } from \"ethereum-cryptography/utils\";\nimport { AbiCoder, decodeBase58, solidityPackedKeccak256 } from \"ethers\";\nimport { keccak256 } from \"ethereum-cryptography/keccak\";\nimport {\n ComputeBudgetProgram,\n Connection,\n PublicKey,\n SystemProgram,\n TransactionMessage,\n VersionedTransaction,\n} from \"@solana/web3.js\";\nimport { BN, Program } from \"@coral-xyz/anchor\";\nimport { IDL as VaultIDL, SolanaVault } from \"./idl/solana_vault\";\nimport {\n getBrokerPDA,\n getDefaultSendConfigPda,\n getDefaultSendLibConfigPda,\n getDvnConfigPda,\n getEndorcedOptionsPda,\n getEndpointSettingPda,\n getEventAuthorityPda,\n getExecutorConfigPda,\n getLookupTableAccount,\n getLookupTableAddress,\n getMessageLibInfoPda,\n getMessageLibPda,\n getNoncePda,\n getOAppConfigPda,\n getPeerAddress,\n getPeerPda,\n getPriceFeedPda,\n getSendConfigPda,\n getSendLibConfigPda,\n getSendLibInfoPda,\n getSendLibPda,\n getTokenPDA,\n getUlnEventAuthorityPda,\n getUlnSettingPda,\n getUSDCAccounts,\n getVaultAuthorityPda,\n} from \"./solana.util\";\nimport {\n DST_EID,\n DVN_PROGRAM_ID,\n ENDPOINT_PROGRAM_ID,\n EXECUTOR_PROGRAM_ID,\n PRICE_FEED_PROGRAM_ID,\n SEND_LIB_PROGRAM_ID,\n TREASURY_PROGRAM_ID,\n} from \"./constant\";\nimport type { WalletAdapterProps } from \"@solana/wallet-adapter-base\";\n\nexport function addOrderlyKeyMessage(\n inputs: AddOrderlyKeyInputs & { chainId: number }\n) {\n const {\n publicKey,\n brokerId,\n expiration = 365,\n timestamp = Date.now(),\n scope,\n tag,\n chainId,\n } = inputs;\n const message = {\n brokerId: brokerId,\n chainType: \"SOL\",\n orderlyKey: publicKey,\n scope: scope || \"read,trading\",\n chainId,\n timestamp,\n ...(typeof tag !== \"undefined\" ? { tag } : {}),\n\n expiration: timestamp + 1000 * 60 * 60 * 24 * expiration,\n };\n\n const brokerIdHash = solidityPackedKeccak256([\"string\"], [message.brokerId]);\n\n const orderlyKeyHash = solidityPackedKeccak256(\n [\"string\"],\n [message.orderlyKey]\n );\n const scopeHash = solidityPackedKeccak256([\"string\"], [message.scope]);\n const abicoder = AbiCoder.defaultAbiCoder();\n const msgToSign = keccak256(\n hexToBytes(\n abicoder.encode(\n [\"bytes32\", \"bytes32\", \"bytes32\", \"uint256\", \"uint256\", \"uint256\"],\n [\n brokerIdHash,\n orderlyKeyHash,\n scopeHash,\n message.chainId,\n message.timestamp,\n message.expiration,\n ]\n )\n )\n );\n const msgToSignHex = bytesToHex(msgToSign);\n const msgToSignTextEncoded: Uint8Array = new TextEncoder().encode(\n msgToSignHex\n );\n return [message, msgToSignTextEncoded];\n}\n\nexport function registerAccountMessage(\n inputs: RegisterAccountInputs & {\n chainId: number;\n }\n) {\n const { chainId, registrationNonce, brokerId, timestamp } = inputs;\n\n const message = {\n brokerId,\n chainId,\n timestamp,\n registrationNonce,\n };\n const brokerIdHash = solidityPackedKeccak256([\"string\"], [message.brokerId]);\n const abicoder = AbiCoder.defaultAbiCoder();\n const msgToSign = keccak256(\n hexToBytes(\n abicoder.encode(\n [\"bytes32\", \"uint256\", \"uint256\", \"uint256\"],\n [\n brokerIdHash,\n message.chainId,\n message.timestamp,\n message.registrationNonce,\n ]\n )\n )\n );\n const msgToSignHex = bytesToHex(msgToSign);\n const msgToSignTextEncoded: Uint8Array = new TextEncoder().encode(\n msgToSignHex\n );\n return [message, msgToSignTextEncoded];\n}\n\nexport function withdrawMessage(\n inputs: WithdrawInputs & {\n chainId: number;\n }\n) {\n const { chainId, receiver, token, amount, nonce, brokerId } = inputs;\n const timestamp = Date.now();\n\n const message = {\n brokerId,\n chainId,\n receiver,\n token: token,\n amount: amount,\n withdrawNonce: nonce,\n timestamp,\n chainType: \"SOL\",\n };\n\n const brokerIdHash = solidityPackedKeccak256([\"string\"], [message.brokerId]);\n const tokenSymbolHash = solidityPackedKeccak256([\"string\"], [message.token]);\n const salt = keccak256(Buffer.from(\"Orderly Network\"));\n const abicoder = AbiCoder.defaultAbiCoder();\n const msgToSign = keccak256(\n hexToBytes(\n abicoder.encode(\n [\n \"bytes32\",\n \"bytes32\",\n \"uint256\",\n \"bytes32\",\n \"uint256\",\n \"uint64\",\n \"uint64\",\n \"bytes32\",\n ],\n [\n brokerIdHash,\n tokenSymbolHash,\n chainId,\n hexToBytes(decodeBase58(message.receiver).toString(16)),\n message.amount,\n message.withdrawNonce,\n timestamp,\n salt,\n ]\n )\n )\n );\n const msgToSignHex = bytesToHex(msgToSign);\n const msgToSignTextEncoded: Uint8Array = new TextEncoder().encode(\n msgToSignHex\n );\n return [message, msgToSignTextEncoded];\n}\n\nexport function settleMessage(\n inputs: SettleInputs & {\n chainId: number;\n }\n) {\n const { settlePnlNonce, brokerId, chainId, timestamp } = inputs;\n\n const message = {\n brokerId: brokerId,\n chainId: chainId,\n timestamp: timestamp,\n chainType: \"SOL\",\n settleNonce: settlePnlNonce,\n };\n const brokerIdHash = solidityPackedKeccak256([\"string\"], [brokerId]);\n\n const abicoder = AbiCoder.defaultAbiCoder();\n const msgToSign = keccak256(\n hexToBytes(\n abicoder.encode(\n [\"bytes32\", \"uint256\", \"uint64\", \"uint64\"],\n [brokerIdHash, message.chainId, message.settleNonce, message.timestamp]\n )\n )\n );\n const msgToSignHex = bytesToHex(msgToSign);\n const msgToSignTextEncoded: Uint8Array = new TextEncoder().encode(\n msgToSignHex\n );\n return [message, msgToSignTextEncoded];\n}\n\nexport enum MsgType {\n Deposit = 0,\n // Add other message types if needed\n}\n\nexport interface LzMessage {\n msgType: MsgType;\n payload: Buffer;\n}\n\nexport function encodeLzMessage(message: LzMessage): Buffer {\n const msgTypeBuffer = Buffer.alloc(1);\n msgTypeBuffer.writeUInt8(message.msgType);\n return Buffer.concat([msgTypeBuffer, message.payload]);\n}\n\nexport async function getDepositQuoteFee({\n vaultAddress,\n userAddress,\n connection,\n depositData,\n}: {\n vaultAddress: string;\n userAddress: string;\n connection: Connection;\n depositData: {\n tokenHash: string;\n brokerHash: string;\n accountId: string;\n USDCAddress: string;\n tokenAmount: string;\n }\n}) {\n console.log(\"-- vaultAddress\", vaultAddress);\n const appProgramId = new PublicKey(vaultAddress);\n const program = new Program<SolanaVault>(VaultIDL, appProgramId, {\n connection,\n });\n const userPublicKey = new PublicKey(userAddress);\n\n const oappConfigPDA = getOAppConfigPda(appProgramId);\n const peerPDA = getPeerPda(appProgramId, oappConfigPDA, DST_EID);\n const endorcedPDA = getEndorcedOptionsPda(\n appProgramId,\n oappConfigPDA,\n DST_EID\n );\n const sendLibConfigPDA = getSendLibConfigPda(oappConfigPDA, DST_EID);\n const defaultSendLibPDA = getDefaultSendLibConfigPda(DST_EID);\n\n const endpointSettingPDA = getEndpointSettingPda();\n const noncePDA = getNoncePda(appProgramId, oappConfigPDA, DST_EID);\n const sendConfigPDA = getSendConfigPda(oappConfigPDA, DST_EID);\n const defaultSendConfigPDA = getDefaultSendConfigPda(DST_EID);\n const executorConfigPDA = getExecutorConfigPda();\n const priceFeedPDA = getPriceFeedPda();\n const dvnConfigPDA = getDvnConfigPda();\n\n const messageLibPDA = getMessageLibPda(SEND_LIB_PROGRAM_ID);\n const messageLibInfoPDA = getMessageLibInfoPda(messageLibPDA);\n const vaultAuthorityPDA = getVaultAuthorityPda(appProgramId);\n\n const depositParams = getDepositParams(userAddress, depositData)\n\n // deposit fee\n const quoteFee = await program.methods\n .oappQuote(depositParams)\n .accounts({\n oappConfig: oappConfigPDA,\n peer: peerPDA,\n enforcedOptions: endorcedPDA,\n vaultAuthority: vaultAuthorityPDA,\n })\n .remainingAccounts([\n // ENDPOINT solana/programs/programs/uln/src/instructions/endpoint/send.rs\n {\n pubkey: ENDPOINT_PROGRAM_ID,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: SEND_LIB_PROGRAM_ID,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: sendLibConfigPDA, // send_library_config\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: defaultSendLibPDA, // default_send_library_config\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: messageLibInfoPDA, // send_library_info\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: endpointSettingPDA, // endpoint settings\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: noncePDA, // nonce\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: messageLibPDA,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: sendConfigPDA,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: defaultSendConfigPDA,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: EXECUTOR_PROGRAM_ID,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: executorConfigPDA,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: PRICE_FEED_PROGRAM_ID,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: priceFeedPDA,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: DVN_PROGRAM_ID,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: dvnConfigPDA,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: PRICE_FEED_PROGRAM_ID,\n isWritable: false,\n isSigner: false,\n },\n {\n pubkey: priceFeedPDA,\n isWritable: false,\n isSigner: false,\n },\n ])\n .instruction();\n\n const lastBlockHash = await connection.getLatestBlockhash();\n\n const lookupTableAddress = getLookupTableAddress(appProgramId);\n const lookupTableAccount = await getLookupTableAccount(\n connection,\n lookupTableAddress\n );\n if (!lookupTableAccount) {\n console.log(\"-- lookup table account error\");\n throw new Error(\"-- lookup table account error\");\n }\n const feeMsg = new TransactionMessage({\n payerKey: userPublicKey,\n recentBlockhash: lastBlockHash.blockhash,\n instructions: [quoteFee],\n }).compileToV0Message([lookupTableAccount]);\n\n const feeTx = new VersionedTransaction(feeMsg);\n\n const feeRes = await connection.simulateTransaction(feeTx);\n\n // console.log('-- feeRes', feeRes);\n const returnPrefix = `Program return: ${program.programId} `;\n const returnLogEntry = feeRes.value.logs!.find((log) =>\n log.startsWith(returnPrefix)\n );\n if (!returnLogEntry) {\n throw new Error(\"get deposit fee error\");\n }\n\n // Slice out the prefix to get the base64 return data\n const encodedReturnData = returnLogEntry.slice(returnPrefix.length);\n\n // Convert the Base64 return data\n const decodedBuffer = Buffer.from(encodedReturnData, \"base64\");\n console.log(\n decodedBuffer.readBigUInt64LE(0),\n decodedBuffer.readBigUInt64LE(1)\n );\n return decodedBuffer.readBigUInt64LE(0);\n}\nconst getDepositParams = (userAddress: string, depositData: {\n tokenHash: string;\n brokerHash: string;\n accountId: string;\n USDCAddress: string;\n tokenAmount: string;\n}) => {\n const brokerHash = depositData.brokerHash;\n const codedBrokerHash = Array.from(Buffer.from(brokerHash.slice(2), \"hex\"));\n\n const tokenHash = depositData.tokenHash;\n const codedTokenHash = Array.from(Buffer.from(tokenHash.slice(2), \"hex\"));\n\n const solAccountId = depositData.accountId;\n const codedAccountId = Array.from(Buffer.from(solAccountId.slice(2), \"hex\"));\n const userPublicKey = new PublicKey(userAddress);\n\n\n return {\n accountId: codedAccountId,\n brokerHash: codedBrokerHash,\n tokenHash: codedTokenHash,\n userAddress: Array.from(userPublicKey.toBuffer()),\n tokenAmount: new BN(depositData.tokenAmount),\n };\n}\n\nexport async function deposit({\n vaultAddress,\n userAddress,\n connection,\n sendTransaction,\n depositData,\n}: {\n vaultAddress: string;\n userAddress: string;\n connection: Connection;\n sendTransaction: WalletAdapterProps[\"sendTransaction\"];\n depositData: {\n tokenHash: string;\n brokerHash: string;\n accountId: string;\n USDCAddress: string;\n tokenAmount: string;\n };\n}) {\n const brokerHash = depositData.brokerHash;\n const tokenHash = depositData.tokenHash;\n\n const appProgramId = new PublicKey(vaultAddress);\n const program = new Program<SolanaVault>(VaultIDL, appProgramId, {\n connection,\n });\n const usdc = new PublicKey(depositData.USDCAddress);\n const userPublicKey = new PublicKey(userAddress);\n const userUSDCAccount = getUSDCAccounts(usdc, userPublicKey);\n const vaultAuthorityPda = getVaultAuthorityPda(appProgramId);\n const vaultUSDCAccount = getUSDCAccounts(usdc, vaultAuthorityPda);\n const allowedBrokerPDA = getBrokerPDA(appProgramId, brokerHash);\n const allowedTokenPDA = getTokenPDA(appProgramId, tokenHash);\n const oappConfigPDA = getOAppConfigPda(appProgramId);\n console.log(\"-- oappconfig pda\", oappConfigPDA.toBase58());\n // const lzPDA = getLzReceiveTypesPda(appProgramId, oappConfigPDA);\n const peerPDA = getPeerPda(appProgramId, oappConfigPDA, DST_EID);\n const endorcedPDA = getEndorcedOptionsPda(\n appProgramId,\n oappConfigPDA,\n DST_EID\n );\n const sendLibPDA = getSendLibPda();\n const sendLibConfigPDA = getSendLibConfigPda(oappConfigPDA, DST_EID);\n const defaultSendLibPDA = getDefaultSendLibConfigPda(DST_EID);\n const sendLibInfoPDA = getSendLibInfoPda(sendLibPDA);\n\n const endpointSettingPDA = getEndpointSettingPda();\n const noncePDA = getNoncePda(appProgramId, oappConfigPDA, DST_EID);\n const eventAuthorityPDA = getEventAuthorityPda();\n const ulnSettingPDA = getUlnSettingPda();\n const sendConfigPDA = getSendConfigPda(oappConfigPDA, DST_EID);\n const defaultSendConfigPDA = getDefaultSendConfigPda(DST_EID);\n const ulnEventAuthorityPDA = getUlnEventAuthorityPda();\n const executorConfigPDA = getExecutorConfigPda();\n const priceFeedPDA = getPriceFeedPda();\n const dvnConfigPDA = getDvnConfigPda();\n\n const vaultDepositParams = getDepositParams(userAddress, depositData);\n\n const fee = await getDepositQuoteFee({\n vaultAddress,\n userAddress,\n connection,\n depositData,\n });\n\n const sendParam = {\n nativeFee: new BN(fee.toString()),\n lzTokenFee: new BN(0),\n };\n\n // const sendParam = {\n // nativeFee: new BN(1_000_000_000),\n // lzTokenFee:new BN(0),\n //\n // }\n console.log(\"--- value params\", {\n vaultDepositParams,\n sendParam,\n });\n const ixDepositEntry = await program.methods\n .deposit(vaultDepositParams, sendParam)\n .accounts({\n userTokenAccount: userUSDCAccount,\n vaultAuthority: vaultAuthorityPda,\n vaultTokenAccount: vaultUSDCAccount,\n depositToken: usdc,\n user: userPublicKey,\n peer: peerPDA,\n enforcedOptions: endorcedPDA,\n oappConfig: oappConfigPDA,\n allowedBroker: allowedBrokerPDA,\n allowedToken: allowedTokenPDA,\n })\n .remainingAccounts([\n // ENDPOINT solana/programs/programs/uln/src/instructions/endpoint/send.rs\n {\n isSigner: false,\n isWritable: false,\n pubkey: ENDPOINT_PROGRAM_ID,\n },\n {\n isSigner: false,\n isWritable: false,\n // 0\n pubkey: oappConfigPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n pubkey: SEND_LIB_PROGRAM_ID,\n },\n {\n isSigner: false,\n isWritable: false,\n // 7\n pubkey: sendLibConfigPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n // 9\n pubkey: defaultSendLibPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n // 8\n pubkey: sendLibInfoPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n // 14\n pubkey: endpointSettingPDA,\n },\n {\n isSigner: false,\n isWritable: true,\n // 15\n pubkey: noncePDA,\n },\n {\n isSigner: false,\n isWritable: false,\n // 3\n pubkey: eventAuthorityPDA,\n },\n // ULN solana/programs/programs/uln/src/instructions/endpoint/send.rs\n {\n isSigner: false,\n isWritable: false,\n pubkey: ENDPOINT_PROGRAM_ID,\n },\n {\n isSigner: false,\n isWritable: false,\n // 13\n pubkey: ulnSettingPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n // 10\n pubkey: sendConfigPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n // 11\n pubkey: defaultSendConfigPDA,\n },\n {\n isSigner: true,\n isWritable: false,\n pubkey: userPublicKey,\n },\n {\n isSigner: false,\n isWritable: false,\n pubkey: TREASURY_PROGRAM_ID,\n },\n {\n isSigner: false,\n isWritable: false,\n pubkey: SystemProgram.programId,\n },\n {\n isSigner: false,\n isWritable: false,\n // 12\n pubkey: ulnEventAuthorityPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n pubkey: SEND_LIB_PROGRAM_ID,\n },\n {\n isSigner: false,\n isWritable: false,\n pubkey: EXECUTOR_PROGRAM_ID,\n },\n {\n isSigner: false,\n isWritable: true,\n // 16\n pubkey: executorConfigPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n pubkey: PRICE_FEED_PROGRAM_ID,\n },\n {\n isSigner: false,\n isWritable: false,\n // 17\n pubkey: priceFeedPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n pubkey: DVN_PROGRAM_ID,\n },\n {\n isSigner: false,\n isWritable: true,\n // 18\n pubkey: dvnConfigPDA,\n },\n {\n isSigner: false,\n isWritable: false,\n pubkey: PRICE_FEED_PROGRAM_ID,\n },\n {\n isSigner: false,\n isWritable: false,\n // 17\n pubkey: priceFeedPDA,\n },\n ])\n .instruction();\n\n const lookupTableAddress = getLookupTableAddress(appProgramId);\n const lookupTableAccount = await getLookupTableAccount(\n connection,\n lookupTableAddress\n );\n if (!lookupTableAccount) {\n console.log(\"-- lookup table account error\");\n return;\n }\n\n const ixAddComputeBudget = ComputeBudgetProgram.setComputeUnitLimit({\n units: 400_000,\n });\n\n const lastBlockHash = await connection.getLatestBlockhash();\n const msg = new TransactionMessage({\n payerKey: userPublicKey,\n recentBlockhash: lastBlockHash.blockhash,\n instructions: [ixDepositEntry, ixAddComputeBudget],\n }).compileToV0Message([lookupTableAccount]);\n\n const tx = new VersionedTransaction(msg);\n\n const res = await sendTransaction(tx, connection);\n console.log(\"res\", res);\n return res;\n}\n","export type SolanaVault = {\n \"version\": \"0.1.0\",\n \"name\": \"solana_vault\",\n \"instructions\": [\n {\n \"name\": \"initVault\",\n \"accounts\": [\n {\n \"name\": \"signer\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"InitVaultParams\"\n }\n }\n ]\n },\n {\n \"name\": \"deposit\",\n \"accounts\": [\n {\n \"name\": \"user\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"userTokenAccount\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultTokenAccount\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"depositToken\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"peer\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"enforcedOptions\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"allowedBroker\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"allowedToken\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"tokenProgram\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"associatedTokenProgram\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"depositParams\",\n \"type\": {\n \"defined\": \"DepositParams\"\n }\n },\n {\n \"name\": \"oappParams\",\n \"type\": {\n \"defined\": \"OAppSendParams\"\n }\n }\n ],\n \"returns\": {\n \"defined\": \"MessagingReceipt\"\n }\n },\n {\n \"name\": \"initOapp\",\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"lzReceiveTypes\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"InitOAppParams\"\n }\n }\n ]\n },\n {\n \"name\": \"resetOapp\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"reinitOapp\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"ReinitOAppParams\"\n }\n }\n ]\n },\n {\n \"name\": \"resetVault\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"reinitVault\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"ReinitVaultParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setBroker\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"allowedBroker\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetBrokerParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setToken\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"allowedToken\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"mintAccount\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetTokenParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setOrderDelivery\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetOrderDeliveryParams\"\n }\n }\n ]\n },\n {\n \"name\": \"oappQuote\",\n \"accounts\": [\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"peer\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"enforcedOptions\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"DepositParams\"\n }\n }\n ],\n \"returns\": {\n \"defined\": \"MessagingFee\"\n }\n },\n {\n \"name\": \"lzReceive\",\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"peer\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"user\",\n \"isMut\": false,\n \"isSigner\": false,\n \"docs\": [\n \"CHECK\"\n ]\n },\n {\n \"name\": \"userDepositWallet\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultDepositWallet\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"depositToken\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"tokenProgram\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"eventAuthority\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"program\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"OAppLzReceiveParams\"\n }\n }\n ]\n },\n {\n \"name\": \"lzReceiveTypes\",\n \"accounts\": [\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"OAppLzReceiveParams\"\n }\n }\n ],\n \"returns\": {\n \"vec\": {\n \"defined\": \"oapp::endpoint_cpi::LzAccount\"\n }\n }\n },\n {\n \"name\": \"setRateLimit\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": false,\n \"isSigner\": true\n },\n {\n \"name\": \"peer\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetRateLimitParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setDelegate\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": false,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetDelegateParams\"\n }\n }\n ]\n },\n {\n \"name\": \"transferAdmin\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": false,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"TransferAdminParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setPeer\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"peer\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetPeerParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setEnforcedOptions\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"enforcedOptions\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetEnforcedOptionsParams\"\n }\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"enforcedOptions\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"send\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"sendAndCall\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"oAppConfig\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"endpointProgram\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"admin\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"usdcHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"usdcMint\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"oAppLzReceiveTypesAccounts\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"oappConfig\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"peer\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"address\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"rateLimiter\",\n \"type\": {\n \"option\": {\n \"defined\": \"RateLimiter\"\n }\n }\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"allowedBroker\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"allowedToken\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"mintAccount\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenDecimals\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"vaultAuthority\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump seed for the vault authority PDA\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"depositNonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"orderDelivery\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"inboundNonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"solChainId\",\n \"type\": \"u128\"\n }\n ]\n }\n }\n ],\n \"types\": [\n {\n \"name\": \"VaultDepositParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"userAddress\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"srcChainId\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"srcChainDepositNonce\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"LzMessage\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"msgType\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"payload\",\n \"type\": \"bytes\"\n }\n ]\n }\n },\n {\n \"name\": \"InitOAppParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"admin\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"endpointProgram\",\n \"type\": {\n \"option\": \"publicKey\"\n }\n },\n {\n \"name\": \"usdcHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"usdcMint\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"OAppLzReceiveParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"srcEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"sender\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"nonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"guid\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"message\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"extraData\",\n \"type\": \"bytes\"\n }\n ]\n }\n },\n {\n \"name\": \"AccountWithdrawSol\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"sender\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"receiver\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"chainId\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"withdrawNonce\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"VaultWithdrawParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"sender\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"receiver\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"chainId\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"withdrawNonce\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"MessagingFee\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nativeFee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"lzTokenFee\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"ReinitOAppParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"admin\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"endpointProgram\",\n \"type\": {\n \"option\": \"publicKey\"\n }\n },\n {\n \"name\": \"usdcHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"usdcMint\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"SetDelegateParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"delegate\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"SetEnforcedOptionsParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"send\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"sendAndCall\",\n \"type\": \"bytes\"\n }\n ]\n }\n },\n {\n \"name\": \"SetPeerParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"peer\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"SetRateLimitParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"refillPerSecond\",\n \"type\": {\n \"option\": \"u64\"\n }\n },\n {\n \"name\": \"capacity\",\n \"type\": {\n \"option\": \"u64\"\n }\n },\n {\n \"name\": \"enabled\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"TransferAdminParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"admin\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"DepositParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"userAddress\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"OAppSendParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nativeFee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"lzTokenFee\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"InitVaultParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"orderDelivery\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"solChainId\",\n \"type\": \"u128\"\n }\n ]\n }\n },\n {\n \"name\": \"ReinitVaultParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"depositNonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"orderDelivery\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"inboundNonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"solChainId\",\n \"type\": \"u128\"\n }\n ]\n }\n },\n {\n \"name\": \"SetBrokerParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"SetOrderDeliveryParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"orderDelivery\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"SetTokenParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"mintAccount\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"RateLimiter\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"capacity\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"refillPerSecond\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"lastRefillTime\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"OAppError\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Unauthorized\"\n },\n {\n \"name\": \"InvalidSender\"\n },\n {\n \"name\": \"InvalidOptions\"\n },\n {\n \"name\": \"InvalidEndpointProgram\"\n },\n {\n \"name\": \"RateLimitExceeded\"\n },\n {\n \"name\": \"WithdrawFailed\"\n },\n {\n \"name\": \"InvalidInboundNonce\"\n }\n ]\n }\n },\n {\n \"name\": \"MsgType\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Deposit\"\n },\n {\n \"name\": \"Withdraw\"\n },\n {\n \"name\": \"RebalanceBurn\"\n },\n {\n \"name\": \"RebalanceMint\"\n }\n ]\n }\n }\n ],\n \"events\": [\n {\n \"name\": \"SetAllowedBroker\",\n \"fields\": [\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"ResetAllowedBroker\",\n \"fields\": [\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"SetAllowedToken\",\n \"fields\": [\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"mintAccount\",\n \"type\": \"publicKey\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"ResetAllowedToken\",\n \"fields\": [\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"mintAccount\",\n \"type\": \"publicKey\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"Deposited\",\n \"fields\": [\n {\n \"name\": \"user\",\n \"type\": \"publicKey\",\n \"index\": false\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"Withdrawn\",\n \"fields\": [\n {\n \"name\": \"user\",\n \"type\": \"publicKey\",\n \"index\": false\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"VaultDeposited\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"userAddress\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"srcChainId\",\n \"type\": \"u128\",\n \"index\": false\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\",\n \"index\": false\n },\n {\n \"name\": \"srcChainDepositNonce\",\n \"type\": \"u64\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"VaultWithdrawn\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"sender\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"receiver\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\",\n \"index\": false\n },\n {\n \"name\": \"fee\",\n \"type\": \"u128\",\n \"index\": false\n },\n {\n \"name\": \"chainId\",\n \"type\": \"u128\",\n \"index\": false\n },\n {\n \"name\": \"withdrawNonce\",\n \"type\": \"u64\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"OAppSent\",\n \"fields\": [\n {\n \"name\": \"guid\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"OAppReceived\",\n \"fields\": [\n {\n \"name\": \"guid\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"srcEid\",\n \"type\": \"u32\",\n \"index\": false\n }\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"InsufficientFunds\",\n \"msg\": \"Deposited funds are insufficient for withdrawal\"\n },\n {\n \"code\": 6001,\n \"name\": \"UserInfoBelongsToAnotherUser\",\n \"msg\": \"User info pda belongs to another user\"\n },\n {\n \"code\": 6002,\n \"name\": \"BrokerNotAllowed\",\n \"msg\": \"Broker is not allowed\"\n },\n {\n \"code\": 6003,\n \"name\": \"TokenNotAllowed\",\n \"msg\": \"Token is not allowed\"\n },\n {\n \"code\": 6004,\n \"name\": \"InvalidAccountId\",\n \"msg\": \"AccountId is invalid\"\n },\n {\n \"code\": 6005,\n \"name\": \"InvalidVaultOwner\",\n \"msg\": \"Vault owner is not the same as the payer\"\n }\n ]\n};\n\nexport const IDL: SolanaVault = {\n \"version\": \"0.1.0\",\n \"name\": \"solana_vault\",\n \"instructions\": [\n {\n \"name\": \"initVault\",\n \"accounts\": [\n {\n \"name\": \"signer\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"InitVaultParams\"\n }\n }\n ]\n },\n {\n \"name\": \"deposit\",\n \"accounts\": [\n {\n \"name\": \"user\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"userTokenAccount\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultTokenAccount\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"depositToken\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"peer\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"enforcedOptions\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"allowedBroker\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"allowedToken\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"tokenProgram\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"associatedTokenProgram\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"depositParams\",\n \"type\": {\n \"defined\": \"DepositParams\"\n }\n },\n {\n \"name\": \"oappParams\",\n \"type\": {\n \"defined\": \"OAppSendParams\"\n }\n }\n ],\n \"returns\": {\n \"defined\": \"MessagingReceipt\"\n }\n },\n {\n \"name\": \"initOapp\",\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"lzReceiveTypes\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"InitOAppParams\"\n }\n }\n ]\n },\n {\n \"name\": \"resetOapp\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"reinitOapp\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"ReinitOAppParams\"\n }\n }\n ]\n },\n {\n \"name\": \"resetVault\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"reinitVault\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"ReinitVaultParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setBroker\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"allowedBroker\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetBrokerParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setToken\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"allowedToken\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"mintAccount\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetTokenParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setOrderDelivery\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetOrderDeliveryParams\"\n }\n }\n ]\n },\n {\n \"name\": \"oappQuote\",\n \"accounts\": [\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"peer\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"enforcedOptions\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"DepositParams\"\n }\n }\n ],\n \"returns\": {\n \"defined\": \"MessagingFee\"\n }\n },\n {\n \"name\": \"lzReceive\",\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"peer\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"user\",\n \"isMut\": false,\n \"isSigner\": false,\n \"docs\": [\n \"CHECK\"\n ]\n },\n {\n \"name\": \"userDepositWallet\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultAuthority\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"vaultDepositWallet\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"depositToken\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"tokenProgram\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"eventAuthority\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"program\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"OAppLzReceiveParams\"\n }\n }\n ]\n },\n {\n \"name\": \"lzReceiveTypes\",\n \"accounts\": [\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"OAppLzReceiveParams\"\n }\n }\n ],\n \"returns\": {\n \"vec\": {\n \"defined\": \"oapp::endpoint_cpi::LzAccount\"\n }\n }\n },\n {\n \"name\": \"setRateLimit\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": false,\n \"isSigner\": true\n },\n {\n \"name\": \"peer\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetRateLimitParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setDelegate\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": false,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetDelegateParams\"\n }\n }\n ]\n },\n {\n \"name\": \"transferAdmin\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": false,\n \"isSigner\": true\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": true,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"TransferAdminParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setPeer\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"peer\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetPeerParams\"\n }\n }\n ]\n },\n {\n \"name\": \"setEnforcedOptions\",\n \"accounts\": [\n {\n \"name\": \"admin\",\n \"isMut\": true,\n \"isSigner\": true\n },\n {\n \"name\": \"enforcedOptions\",\n \"isMut\": true,\n \"isSigner\": false\n },\n {\n \"name\": \"oappConfig\",\n \"isMut\": false,\n \"isSigner\": false\n },\n {\n \"name\": \"systemProgram\",\n \"isMut\": false,\n \"isSigner\": false\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": \"SetEnforcedOptionsParams\"\n }\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"enforcedOptions\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"send\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"sendAndCall\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"oAppConfig\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"endpointProgram\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"admin\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"usdcHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"usdcMint\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"oAppLzReceiveTypesAccounts\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"oappConfig\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"peer\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"address\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"rateLimiter\",\n \"type\": {\n \"option\": {\n \"defined\": \"RateLimiter\"\n }\n }\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"allowedBroker\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"allowedToken\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"mintAccount\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenDecimals\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"vaultAuthority\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump seed for the vault authority PDA\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"depositNonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"orderDelivery\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"inboundNonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"solChainId\",\n \"type\": \"u128\"\n }\n ]\n }\n }\n ],\n \"types\": [\n {\n \"name\": \"VaultDepositParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"userAddress\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"srcChainId\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"srcChainDepositNonce\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"LzMessage\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"msgType\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"payload\",\n \"type\": \"bytes\"\n }\n ]\n }\n },\n {\n \"name\": \"InitOAppParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"admin\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"endpointProgram\",\n \"type\": {\n \"option\": \"publicKey\"\n }\n },\n {\n \"name\": \"usdcHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"usdcMint\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"OAppLzReceiveParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"srcEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"sender\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"nonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"guid\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"message\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"extraData\",\n \"type\": \"bytes\"\n }\n ]\n }\n },\n {\n \"name\": \"AccountWithdrawSol\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"sender\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"receiver\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"chainId\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"withdrawNonce\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"VaultWithdrawParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"sender\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"receiver\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"fee\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"chainId\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"withdrawNonce\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"MessagingFee\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nativeFee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"lzTokenFee\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"ReinitOAppParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"admin\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"endpointProgram\",\n \"type\": {\n \"option\": \"publicKey\"\n }\n },\n {\n \"name\": \"usdcHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"usdcMint\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"SetDelegateParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"delegate\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"SetEnforcedOptionsParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"send\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"sendAndCall\",\n \"type\": \"bytes\"\n }\n ]\n }\n },\n {\n \"name\": \"SetPeerParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"peer\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"SetRateLimitParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"refillPerSecond\",\n \"type\": {\n \"option\": \"u64\"\n }\n },\n {\n \"name\": \"capacity\",\n \"type\": {\n \"option\": \"u64\"\n }\n },\n {\n \"name\": \"enabled\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"TransferAdminParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"admin\",\n \"type\": \"publicKey\"\n }\n ]\n }\n },\n {\n \"name\": \"DepositParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"userAddress\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"OAppSendParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"nativeFee\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"lzTokenFee\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"InitVaultParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"orderDelivery\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"solChainId\",\n \"type\": \"u128\"\n }\n ]\n }\n },\n {\n \"name\": \"ReinitVaultParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"owner\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"depositNonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"orderDelivery\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"inboundNonce\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"solChainId\",\n \"type\": \"u128\"\n }\n ]\n }\n },\n {\n \"name\": \"SetBrokerParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"SetOrderDeliveryParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"orderDelivery\",\n \"type\": \"bool\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"SetTokenParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"mintAccount\",\n \"type\": \"publicKey\"\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"allowed\",\n \"type\": \"bool\"\n }\n ]\n }\n },\n {\n \"name\": \"RateLimiter\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"capacity\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"refillPerSecond\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"lastRefillTime\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"OAppError\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Unauthorized\"\n },\n {\n \"name\": \"InvalidSender\"\n },\n {\n \"name\": \"InvalidOptions\"\n },\n {\n \"name\": \"InvalidEndpointProgram\"\n },\n {\n \"name\": \"RateLimitExceeded\"\n },\n {\n \"name\": \"WithdrawFailed\"\n },\n {\n \"name\": \"InvalidInboundNonce\"\n }\n ]\n }\n },\n {\n \"name\": \"MsgType\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Deposit\"\n },\n {\n \"name\": \"Withdraw\"\n },\n {\n \"name\": \"RebalanceBurn\"\n },\n {\n \"name\": \"RebalanceMint\"\n }\n ]\n }\n }\n ],\n \"events\": [\n {\n \"name\": \"SetAllowedBroker\",\n \"fields\": [\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"ResetAllowedBroker\",\n \"fields\": [\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"SetAllowedToken\",\n \"fields\": [\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"mintAccount\",\n \"type\": \"publicKey\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"ResetAllowedToken\",\n \"fields\": [\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"mintAccount\",\n \"type\": \"publicKey\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"Deposited\",\n \"fields\": [\n {\n \"name\": \"user\",\n \"type\": \"publicKey\",\n \"index\": false\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"Withdrawn\",\n \"fields\": [\n {\n \"name\": \"user\",\n \"type\": \"publicKey\",\n \"index\": false\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"VaultDeposited\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"userAddress\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"srcChainId\",\n \"type\": \"u128\",\n \"index\": false\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\",\n \"index\": false\n },\n {\n \"name\": \"srcChainDepositNonce\",\n \"type\": \"u64\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"VaultWithdrawn\",\n \"fields\": [\n {\n \"name\": \"accountId\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"sender\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"receiver\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"brokerHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"tokenHash\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"tokenAmount\",\n \"type\": \"u64\",\n \"index\": false\n },\n {\n \"name\": \"fee\",\n \"type\": \"u128\",\n \"index\": false\n },\n {\n \"name\": \"chainId\",\n \"type\": \"u128\",\n \"index\": false\n },\n {\n \"name\": \"withdrawNonce\",\n \"type\": \"u64\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"OAppSent\",\n \"fields\": [\n {\n \"name\": \"guid\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"dstEid\",\n \"type\": \"u32\",\n \"index\": false\n }\n ]\n },\n {\n \"name\": \"OAppReceived\",\n \"fields\": [\n {\n \"name\": \"guid\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n },\n \"index\": false\n },\n {\n \"name\": \"srcEid\",\n \"type\": \"u32\",\n \"index\": false\n }\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"InsufficientFunds\",\n \"msg\": \"Deposited funds are insufficient for withdrawal\"\n },\n {\n \"code\": 6001,\n \"name\": \"UserInfoBelongsToAnotherUser\",\n \"msg\": \"User info pda belongs to another user\"\n },\n {\n \"code\": 6002,\n \"name\": \"BrokerNotAllowed\",\n \"msg\": \"Broker is not allowed\"\n },\n {\n \"code\": 6003,\n \"name\": \"TokenNotAllowed\",\n \"msg\": \"Token is not allowed\"\n },\n {\n \"code\": 6004,\n \"name\": \"InvalidAccountId\",\n \"msg\": \"AccountId is invalid\"\n },\n {\n \"code\": 6005,\n \"name\": \"InvalidVaultOwner\",\n \"msg\": \"Vault owner is not the same as the payer\"\n }\n ]\n};\n","import {Connection, PublicKey} from \"@solana/web3.js\";\nimport { getAssociatedTokenAddressSync } from \"@solana/spl-token\";\nimport {\n BROKER_SEED,\n DEV_LOOKUP_TABLE_ADDRESS,\n DEV_OAPP_PROGRAM_ID,\n DEV_PEER_ADDRESS,\n DVN_PROGRAM_ID,\n ENDPOINT_PROGRAM_ID,\n EXECUTOR_PROGRAM_ID,\n PRICE_FEED_PROGRAM_ID,\n QA_LOOKUP_TABLE_ADDRESS,\n QA_OAPP_PROGRAM_ID,\n QA_PEER_ADDRESS,\n RECEIVE_LIB_PROGRAM_ID,\n SEND_LIB_PROGRAM_ID,\n STAGING_LOOKUP_TABLE_ADDRESS,\n STAGING_OAPP_PROGRAM_ID, STAGING_PEER_ADDRESS,\n TOKEN_SEED,\n VAULT_AUTHORITY_SEED\n} from \"./constant\";\nimport {\n DVN_CONFIG_SEED,\n ENDPOINT_SEED,\n ENFORCED_OPTIONS_SEED, EVENT_SEED, EXECUTOR_CONFIG_SEED,\n LZ_RECEIVE_TYPES_SEED, MESSAGE_LIB_SEED, NONCE_SEED,\n OAPP_SEED,\n PEER_SEED, PRICE_FEED_SEED, SEND_CONFIG_SEED,\n SEND_LIBRARY_CONFIG_SEED, ULN_SEED\n} from \"@layerzerolabs/lz-solana-sdk-v2\";\n\nexport const getUSDCAccounts = (usdc: PublicKey, owner: PublicKey): PublicKey => {\n const usdcTokenAccount = getAssociatedTokenAddressSync(\n usdc,\n owner,\n true\n );\n return usdcTokenAccount;\n};\n\nexport function getVaultAuthorityPda(VAULT_PROGRAM_ID: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(VAULT_AUTHORITY_SEED, \"utf8\")],\n VAULT_PROGRAM_ID\n )[0];\n}\n\n\n\nexport function getBrokerPDA(programId: PublicKey, brokerHash: string): PublicKey {\n const hash = Array.from(Buffer.from( brokerHash.slice(2), \"hex\"));\n return PublicKey.findProgramAddressSync(\n [Buffer.from(BROKER_SEED, \"utf8\"),Buffer.from(hash)],\n programId\n )[0];\n}\n\nexport function getTokenPDA(programId: PublicKey, tokenHash: string): PublicKey {\n const hash = Array.from(Buffer.from( tokenHash.slice(2), \"hex\"));\n return PublicKey.findProgramAddressSync(\n [Buffer.from(TOKEN_SEED, \"utf8\"),Buffer.from(hash)],\n programId\n )[0];}\n\n\nexport function getOAppConfigPda(programId: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(OAPP_SEED, \"utf8\")],\n programId\n )[0];\n}\n\nexport function getLzReceiveTypesPda(programId: PublicKey, oappConfigPda: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(LZ_RECEIVE_TYPES_SEED, \"utf8\"), oappConfigPda.toBuffer()],\n programId\n )[0];\n}\n\nexport function getPeerPda(OAPP_PROGRAM_ID: PublicKey, oappConfigPda: PublicKey, dstEid: number): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n bufferDstEid.writeUInt32BE(dstEid);\n\n return PublicKey.findProgramAddressSync(\n [Buffer.from(PEER_SEED, \"utf8\"), oappConfigPda.toBuffer(), bufferDstEid],\n OAPP_PROGRAM_ID\n )[0];\n}\n\nexport function getEndorcedOptionsPda(OAPP_PROGRAM_ID: PublicKey, oappConfigPda: PublicKey, dstEid: number): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n bufferDstEid.writeUInt32BE(dstEid);\n\n return PublicKey.findProgramAddressSync(\n [Buffer.from(ENFORCED_OPTIONS_SEED, \"utf8\"), oappConfigPda.toBuffer(), bufferDstEid],\n OAPP_PROGRAM_ID\n )[0];\n}\n\nexport function getSendLibPda(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(MESSAGE_LIB_SEED, \"utf8\")],\n SEND_LIB_PROGRAM_ID\n )[0];\n}\n\n\nexport function getSendLibConfigPda(oappConfigPda: PublicKey, dstEid: number): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n bufferDstEid.writeUInt32BE(dstEid);\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEND_LIBRARY_CONFIG_SEED, \"utf8\"), oappConfigPda.toBuffer(), bufferDstEid],\n ENDPOINT_PROGRAM_ID\n )[0];\n}\n\nexport function getDefaultSendLibConfigPda(dstEid: number): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n bufferDstEid.writeUInt32BE(dstEid);\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEND_LIBRARY_CONFIG_SEED, \"utf8\"), bufferDstEid],\n ENDPOINT_PROGRAM_ID\n )[0];\n}\n\nexport function getSendLibInfoPda(sendLibPda: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(MESSAGE_LIB_SEED, \"utf8\"), sendLibPda.toBuffer()],\n ENDPOINT_PROGRAM_ID\n )[0];\n}\n\nexport function getEndpointSettingPda(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(ENDPOINT_SEED, \"utf8\")],\n ENDPOINT_PROGRAM_ID\n )[0];\n}\n\nexport function getPeerAddress(OAPP_PROGRAM_ID: PublicKey): Uint8Array{\n\n let peer_address = DEV_PEER_ADDRESS;\n if (OAPP_PROGRAM_ID.toBase58() === DEV_OAPP_PROGRAM_ID.toBase58()) {\n peer_address = DEV_PEER_ADDRESS;\n }\n if (OAPP_PROGRAM_ID.toBase58() === QA_OAPP_PROGRAM_ID.toBase58()) {\n peer_address = QA_PEER_ADDRESS;\n }\n if (OAPP_PROGRAM_ID.toBase58() === STAGING_OAPP_PROGRAM_ID.toBase58()) {\n peer_address = STAGING_PEER_ADDRESS;\n }\n return peer_address;\n}\n\nexport function getNoncePda(OAPP_PROGRAM_ID: PublicKey, oappConfigPda: PublicKey, dstEid: number): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n const peer_address = getPeerAddress(OAPP_PROGRAM_ID);\n\n bufferDstEid.writeUInt32BE(dstEid);\n return PublicKey.findProgramAddressSync(\n [Buffer.from(NONCE_SEED, \"utf8\"), oappConfigPda.toBuffer(), bufferDstEid, peer_address],\n ENDPOINT_PROGRAM_ID\n )[0];\n}\n\nexport function getEventAuthorityPda(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(EVENT_SEED, \"utf8\")],\n ENDPOINT_PROGRAM_ID\n )[0];\n}\n\nexport function getUlnSettingPda(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(ULN_SEED, \"utf8\")],\n SEND_LIB_PROGRAM_ID\n )[0];\n}\n\nexport function getSendConfigPda(oappConfigPda: PublicKey, dstEid: number): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n bufferDstEid.writeUInt32BE(dstEid);\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEND_CONFIG_SEED, \"utf8\"), bufferDstEid, oappConfigPda.toBuffer()],\n SEND_LIB_PROGRAM_ID\n )[0];\n}\n\n\nexport function getDefaultSendConfigPda(dstEid: number): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n bufferDstEid.writeUInt32BE(dstEid);\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEND_CONFIG_SEED, \"utf8\"), bufferDstEid],\n RECEIVE_LIB_PROGRAM_ID\n )[0];\n}\n\nexport function getUlnEventAuthorityPda(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(EVENT_SEED, \"utf8\")],\n SEND_LIB_PROGRAM_ID\n )[0];\n}\n\nexport function getExecutorConfigPda(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(EXECUTOR_CONFIG_SEED, \"utf8\")],\n EXECUTOR_PROGRAM_ID\n )[0];\n}\n\nexport function getPriceFeedPda(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(PRICE_FEED_SEED, \"utf8\")],\n PRICE_FEED_PROGRAM_ID\n )[0];\n}\n\nexport function getDvnConfigPda(): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(DVN_CONFIG_SEED, \"utf8\")],\n DVN_PROGRAM_ID\n )[0];\n}\n\nexport function getLookupTableAddress( OAPP_PROGRAM_ID: PublicKey): PublicKey {\n if (OAPP_PROGRAM_ID.toBase58() === DEV_OAPP_PROGRAM_ID.toBase58()) {\n console.log(\"DEV_LOOKUP_TABLE_ADDRESS: \", DEV_LOOKUP_TABLE_ADDRESS.toBase58());\n return DEV_LOOKUP_TABLE_ADDRESS;\n }\n if (OAPP_PROGRAM_ID.toBase58() === QA_OAPP_PROGRAM_ID.toBase58()) {\n return QA_LOOKUP_TABLE_ADDRESS;\n }\n if (OAPP_PROGRAM_ID.toBase58() === STAGING_OAPP_PROGRAM_ID.toBase58()) {\n return STAGING_LOOKUP_TABLE_ADDRESS;\n }\n\n return DEV_LOOKUP_TABLE_ADDRESS\n}\n\nexport function getMessageLibPda(programId?: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(MESSAGE_LIB_SEED, \"utf8\")],\n programId ? programId : SEND_LIB_PROGRAM_ID\n )[0];\n}\n\nexport function getMessageLibInfoPda(msgLibPda: PublicKey, programId?: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(MESSAGE_LIB_SEED, \"utf8\"), msgLibPda.toBytes()],\n programId ? programId :ENDPOINT_PROGRAM_ID\n )[0];\n}\n\n\nexport async function getLookupTableAccount(connection: Connection, lookupTableAddress: PublicKey) {\n const lookupTableAccount = (\n await connection.getAddressLookupTable(lookupTableAddress)\n ).value;\n\n return lookupTableAccount;\n}","import { PublicKey } from \"@solana/web3.js\";\nimport { addressToBytes32 } from \"@layerzerolabs/lz-v2-utilities\";\n\n\nexport const ENDPOINT_PROGRAM_ID = new PublicKey(\"76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6\");\nexport const SEND_LIB_PROGRAM_ID = new PublicKey(\"7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH\");\nexport const EXECUTOR_PROGRAM_ID = new PublicKey(\"6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn\");\nexport const PRICE_FEED_PROGRAM_ID = new PublicKey(\"8ahPGPjEbpgGaZx2NV1iG5Shj7TDwvsjkEDcGWjt94TP\");\nexport const RECEIVE_LIB_PROGRAM_ID = SEND_LIB_PROGRAM_ID;\nexport const TREASURY_PROGRAM_ID = SEND_LIB_PROGRAM_ID;\nexport const DVN_PROGRAM_ID = new PublicKey(\"HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW\");\nexport const VAULT_AUTHORITY_SEED = \"VaultAuthority\";\nexport const BROKER_SEED = \"Broker\";\nexport const TOKEN_SEED = \"Token\";\n// fro dev\n// export const PEER_ADDRESS = addressToBytes32('0x9Dc724b24146BeDD2dA28b8C4B74126169B8f312');\n// for qa\nexport const DEV_PEER_ADDRESS = addressToBytes32(\"0x9Dc724b24146BeDD2dA28b8C4B74126169B8f312\");\nexport const QA_PEER_ADDRESS = addressToBytes32(\"0x45b6C6266A7A2170617d8A27A50C642fd68b91c4\");\nexport const STAGING_PEER_ADDRESS = addressToBytes32(\"0x5Bf771A65d057e778C5f0Ed52A0003316f94322D\");\n\nexport const DST_EID = 40200;\n\n\nexport const DEV_LOOKUP_TABLE_ADDRESS = new PublicKey(\"BWp8HaYYhiNHekt3zgQhqoCrRftneGxxfgKmCZ6svHN\");\nexport const QA_LOOKUP_TABLE_ADDRESS = new PublicKey(\"BswrQQoPKAFojTuJutZcBMtigAgTghEH4M8ofn3EG2X2\");\nexport const STAGING_LOOKUP_TABLE_ADDRESS = new PublicKey(\"BbGKfxuPwDmu58BjPpd7PMG69TqnZjSpKaLDMgf9E9Dr\");\n\n\nexport const DEV_OAPP_PROGRAM_ID = new PublicKey(\"EYJq9eU4GMRUriUJBgGoZ8YLQBXcWaciXuSsEXE7ieQS\");\nexport const QA_OAPP_PROGRAM_ID = new PublicKey(\"5zBjLor7vEraAt4zp2H82sy9MSqFoDnNa1Lx6EYKTYRZ\");\nexport const STAGING_OAPP_PROGRAM_ID = new PublicKey(\"9shwxWDUNhtwkHocsUAmrNAQfBH2DHh4njdAEdHZZkF2\");\n"],"mappings":"+rBAQG,OAAO,QAAW,cACjB,OAAO,oBAAsB,OAAO,qBAAuB,CAAC,EAC5D,OAAO,oBAAoB,yCAAyC,EAAI,iBAG5E,IAAOA,GAAQ,gBCZf,OAEE,qBAAAC,OACK,wBACP,OAAa,cAAAC,GAAY,kBAAAC,OAAqB,yBAC9C,UAAYC,OAAQ,iBACpB,OAAS,UAAUC,OAAwC,OCA3D,OAAS,cAAAC,EAAY,cAAAC,MAAkB,8BACvC,OAAS,YAAAC,EAAU,gBAAAC,GAAc,2BAAAC,MAA+B,SAChE,OAAS,aAAAC,MAAiB,+BAC1B,OACE,wBAAAC,GAEA,aAAAC,EACA,iBAAAC,GACA,sBAAAC,GACA,wBAAAC,OACK,kBACP,OAAS,MAAAC,GAAI,WAAAC,OAAe,oBC0vDrB,IAAMC,GAAmB,CAC9B,QAAW,QACX,KAAQ,eACR,aAAgB,CACd,CACE,KAAQ,YACR,SAAY,CACV,CACE,KAAQ,SACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,iBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,UACR,SAAY,CACV,CACE,KAAQ,OACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,mBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,oBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,eACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,OACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,kBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,eACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,eACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,yBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,gBACR,KAAQ,CACN,QAAW,eACb,CACF,EACA,CACE,KAAQ,aACR,KAAQ,CACN,QAAW,gBACb,CACF,CACF,EACA,QAAW,CACT,QAAW,kBACb,CACF,EACA,CACE,KAAQ,WACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,gBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,YACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CAAC,CACX,EACA,CACE,KAAQ,aACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,kBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,aACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CAAC,CACX,EACA,CACE,KAAQ,cACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,mBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,YACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,iBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,WACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,eACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,cACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,gBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,mBACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,wBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,YACR,SAAY,CACV,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,OACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,kBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,eACb,CACF,CACF,EACA,QAAW,CACT,QAAW,cACb,CACF,EACA,CACE,KAAQ,YACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,OACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,OACR,MAAS,GACT,SAAY,GACZ,KAAQ,CACN,OACF,CACF,EACA,CACE,KAAQ,oBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,qBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,eACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,eACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,gBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,iBACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,UACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,qBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,iBACR,SAAY,CACV,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,qBACb,CACF,CACF,EACA,QAAW,CACT,IAAO,CACL,QAAW,+BACb,CACF,CACF,EACA,CACE,KAAQ,eACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,OACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,oBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,cACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,mBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,gBACR,SAAY,CACV,CACE,KAAQ,QACR,MAAS,GACT,SAAY,EACd,EACA,CACE,KAAQ,aACR,MAAS,GACT,SAAY,EACd,CACF,EACA,KAAQ,CACN,CACE,KAAQ,SACR,KAAQ,CACN,QAAW,qBACb,CACF,CACF,CACF,EACA,CACE,KAAQ,UACR,SAAY,CA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CE,KAAQ,UACR,KAAQ,OACV,CACF,CACF,CACF,EACA,CACE,KAAQ,iBACR,KAAQ,CACN,KAAQ,SACR,OAAU,CACR,CACE,KAAQ,QACR,KAAQ,WACV,EACA,CACE,KAAQ,kBACR,KAAQ,CACN,OAAU,WACZ,CACF,EACA,CACE,KAAQ,WACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,WACR,KAAQ,WACV,CACF,CACF,CACF,EACA,CACE,KAAQ,sBACR,KAAQ,CACN,KAAQ,SACR,OAAU,CACR,CACE,KAAQ,SACR,KAAQ,KACV,EACA,CACE,KAAQ,SACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,QACR,KAAQ,KACV,EACA,CACE,KAAQ,OACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,UACR,KAAQ,OACV,EACA,CACE,KAAQ,YACR,KAAQ,OACV,CACF,CACF,CACF,EACA,CACE,KAAQ,qBACR,KAAQ,CACN,KAAQ,SACR,OAAU,CACR,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,SACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,WACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,aACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,cACR,KAAQ,KACV,EACA,CACE,KAAQ,MACR,KAAQ,KACV,EACA,CACE,KAAQ,UACR,KAAQ,KACV,EACA,CACE,KAAQ,gBACR,KAAQ,KACV,CACF,CACF,CACF,EACA,CACE,KAAQ,sBACR,KAAQ,CACN,KAAQ,SACR,OAAU,CACR,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,SACR,KAAQ,CACN,MAAS,CACP,KACA,E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EACA,CACE,KAAQ,yBACR,KAAQ,CACN,KAAQ,SACR,OAAU,CACR,CACE,KAAQ,gBACR,KAAQ,MACV,EACA,CACE,KAAQ,QACR,KAAQ,KACV,CACF,CACF,CACF,EACA,CACE,KAAQ,iBACR,KAAQ,CACN,KAAQ,SACR,OAAU,CACR,CACE,KAAQ,cACR,KAAQ,WACV,EACA,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,CACF,EACA,CACE,KAAQ,UACR,KAAQ,MACV,CACF,CACF,CACF,EACA,CACE,KAAQ,cACR,KAAQ,CACN,KAAQ,SACR,OAAU,CACR,CACE,KAAQ,WACR,KAAQ,KACV,EACA,CACE,KAAQ,SACR,KAAQ,KACV,EACA,CACE,KAAQ,kBACR,KAAQ,KACV,EACA,CACE,KAAQ,iBACR,KAAQ,KACV,CACF,CACF,CACF,EACA,CACE,KAAQ,YACR,KAAQ,CACN,KAAQ,OACR,SAAY,CACV,CACE,KAAQ,cACV,EACA,CACE,KAAQ,eACV,EACA,CACE,KAAQ,gBACV,EACA,CACE,KAAQ,wBACV,EACA,CACE,KAAQ,mBACV,EACA,CACE,KAAQ,gBACV,EACA,CACE,KAAQ,qBACV,CACF,CACF,CACF,EACA,CACE,KAAQ,UACR,KAAQ,CACN,KAAQ,OACR,SAAY,CACV,CACE,KAAQ,SACV,EACA,CACE,KAAQ,UACV,EACA,CACE,KAAQ,eACV,EACA,CACE,KAAQ,eACV,CACF,CACF,CACF,CACF,EACA,OAAU,CACR,CACE,KAAQ,mBACR,OAAU,CACR,CACE,KAAQ,aACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,CACF,CACF,EACA,CACE,KAAQ,qBACR,OAAU,CACR,CACE,KAAQ,aACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,CACF,CACF,EACA,CACE,KAAQ,kBACR,OAAU,CACR,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,cACR,KAAQ,YACR,MAAS,EACX,CACF,CACF,EACA,CACE,KAAQ,oBACR,OAAU,CACR,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,cACR,KAAQ,YACR,MAAS,EACX,CACF,CACF,EACA,CACE,KAAQ,YACR,OAAU,CACR,CACE,KAAQ,OACR,KAAQ,YACR,MAAS,EACX,EACA,CACE,KAAQ,SACR,KAAQ,MACR,MAAS,EACX,CACF,CACF,EACA,CACE,KAAQ,YACR,OAAU,CACR,CACE,KAAQ,OACR,KAAQ,YACR,MAAS,EACX,EACA,CACE,KAAQ,SACR,KAAQ,MACR,MAAS,EACX,CACF,CACF,EACA,CACE,KAAQ,iBACR,OAAU,CACR,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,aACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,cACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,aACR,KAAQ,OACR,MAAS,EACX,EACA,CACE,KAAQ,cACR,KAAQ,MACR,MAAS,EACX,EACA,CACE,KAAQ,uBACR,KAAQ,MACR,MAAS,EACX,CACF,CACF,EACA,CACE,KAAQ,iBACR,OAAU,CACR,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,SACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,WACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,aACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CACE,KAAQ,YACR,KAAQ,CACN,MAAS,CACP,KACA,EACF,CACF,EACA,MAAS,EACX,EACA,CAC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","names":["version_default","BaseWalletAdapter","MaxUint256","ChainNamespace","ed","bs58encode","bytesToHex","hexToBytes","AbiCoder","decodeBase58","solidityPackedKeccak256","keccak256","ComputeBudgetProgram","PublicKey","SystemProgram","TransactionMessage","VersionedTransaction","BN","Program","IDL","PublicKey","getAssociatedTokenAddressSync","PublicKey","addressToBytes32","ENDPOINT_PROGRAM_ID","SEND_LIB_PROGRAM_ID","EXECUTOR_PROGRAM_ID","PRICE_FEED_PROGRAM_ID","RECEIVE_LIB_PROGRAM_ID","TREASURY_PROGRAM_ID","DVN_PROGRAM_ID","VAULT_AUTHORITY_SEED","BROKER_SEED","TOKEN_SEED","DEV_PEER_ADDRESS","QA_PEER_ADDRESS","STAGING_PEER_ADDRESS","DST_EID","DEV_LOOKUP_TABLE_ADDRESS","QA_LOOKUP_TABLE_ADDRESS","STAGING_LOOKUP_TABLE_ADDRESS","DEV_OAPP_PROGRAM_ID","QA_OAPP_PROGRAM_ID","STAGING_OAPP_PROGRAM_ID","DVN_CONFIG_SEED","ENDPOINT_SEED","ENFORCED_OPTIONS_SEED","EVENT_SEED","EXECUTOR_CONFIG_SEED","LZ_RECEIVE_TYPES_SEED","MESSAGE_LIB_SEED","NONCE_SEED","OAPP_SEED","PEER_SEED","PRICE_FEED_SEED","SEND_CONFIG_SEED","SEND_LIBRARY_CONFIG_SEED","ULN_SEED","getUSDCAccounts","usdc","owner","getAssociatedTokenAddressSync","getVaultAuthorityPda","VAULT_PROGRAM_ID","PublicKey","VAULT_AUTHORITY_SEED","getBrokerPDA","programId","brokerHash","hash","BROKER_SEED","getTokenPDA","tokenHash","TOKEN_SEED","getOAppConfigPda","OAPP_SEED","getPeerPda","OAPP_PROGRAM_ID","oappConfigPda","dstEid","bufferDstEid","PublicKey","PEER_SEED","getEndorcedOptionsPda","ENFORCED_OPTIONS_SEED","getSendLibPda","MESSAGE_LIB_SEED","SEND_LIB_PROGRAM_ID","getSendLibConfigPda","SEND_LIBRARY_CONFIG_SEED","ENDPOINT_PROGRAM_ID","getDefaultSendLibConfigPda","getSendLibInfoPda","sendLibPda","getEndpointSettingPda","ENDPOINT_SEED","getPeerAddress","peer_address","DEV_PEER_ADDRESS","DEV_OAPP_PROGRAM_ID","QA_OAPP_PROGRAM_ID","QA_PEER_ADDRESS","STAGING_OAPP_PROGRAM_ID","STAGING_PEER_ADDRESS","getNoncePda","NONCE_SEED","getEventAuthorityPda","EVENT_SEED","getUlnSettingPda","ULN_SEED","getSendConfigPda","SEND_CONFIG_SEED","getDefaultSendConfigPda","RECEIVE_LIB_PROGRAM_ID","getUlnEventAuthorityPda","getExecutorConfigPda","EXECUTOR_CONFIG_SEED","EXECUTOR_PROGRAM_ID","getPriceFeedPda","PRICE_FEED_SEED","PRICE_FEED_PROGRAM_ID","getDvnConfigPda","DVN_CONFIG_SEED","DVN_PROGRAM_ID","getLookupTableAddress","DEV_LOOKUP_TABLE_ADDRESS","QA_LOOKUP_TABLE_ADDRESS","STAGING_LOOKUP_TABLE_ADDRESS","getMessageLibPda","programId","getMessageLibInfoPda","msgLibPda","getLookupTableAccount","connection","lookupTableAddress","__async","addOrderlyKeyMessage","inputs","publicKey","brokerId","expiration","timestamp","scope","tag","chainId","message","__spreadProps","__spreadValues","brokerIdHash","solidityPackedKeccak256","orderlyKeyHash","scopeHash","abicoder","AbiCoder","msgToSign","keccak256","hexToBytes","msgToSignHex","bytesToHex","msgToSignTextEncoded","registerAccountMessage","registrationNonce","withdrawMessage","receiver","token","amount","nonce","tokenSymbolHash","salt","decodeBase58","settleMessage","settlePnlNonce","getDepositQuoteFee","_0","__async","vaultAddress","userAddress","connection","depositData","appProgramId","PublicKey","program","Program","IDL","userPublicKey","oappConfigPDA","getOAppConfigPda","peerPDA","getPeerPda","DST_EID","endorcedPDA","getEndorcedOptionsPda","sendLibConfigPDA","getSendLibConfigPda","defaultSendLibPDA","getDefaultSendLibConfigPda","endpointSettingPDA","getEndpointSettingPda","noncePDA","getNoncePda","sendConfigPDA","getSendConfigPda","defaultSendConfigPDA","getDefaultSendConfigPda","executorConfigPDA","getExecutorConfigPda","priceFeedPDA","getPriceFeedPda","dvnConfigPDA","getDvnConfigPda","messageLibPDA","getMessageLibPda","SEND_LIB_PROGRAM_ID","messageLibInfoPDA","getMessageLibInfoPda","vaultAuthorityPDA","getVaultAuthorityPda","depositParams","getDepositParams","quoteFee","ENDPOINT_PROGRAM_ID","EXECUTOR_PROGRAM_ID","PRICE_FEED_PROGRAM_ID","DVN_PROGRAM_ID","lastBlockHash","lookupTableAddress","getLookupTableAddress","lookupTableAccount","getLookupTableAccount","feeMsg","TransactionMessage","feeTx","VersionedTransaction","feeRes","returnPrefix","returnLogEntry","log","encodedReturnData","decodedBuffer","brokerHash","codedBrokerHash","tokenHash","codedTokenHash","solAccountId","codedAccountId","BN","deposit","sendTransaction","usdc","userUSDCAccount","getUSDCAccounts","vaultAuthorityPda","vaultUSDCAccount","allowedBrokerPDA","getBrokerPDA","allowedTokenPDA","getTokenPDA","sendLibPDA","getSendLibPda","sendLibInfoPDA","getSendLibInfoPda","eventAuthorityPDA","getEventAuthorityPda","ulnSettingPDA","getUlnSettingPda","ulnEventAuthorityPDA","getUlnEventAuthorityPda","vaultDepositParams","fee","sendParam","ixDepositEntry","TREASURY_PROGRAM_ID","SystemProgram","ixAddComputeBudget","ComputeBudgetProgram","msg","tx","res","bytesToHex","getAccount","PublicKey","DefaultSolanaWalletAdapter","BaseWalletAdapter","__publicField","ChainNamespace","chainId","config","name","data","privKey","secretKey","bs58encode","inputs","__async","message","toSignatureMessage","registerAccountMessage","__spreadProps","__spreadValues","signRes","signature","bytesToHex","withdrawMessage","addOrderlyKeyMessage","res","settleMessage","address","method","params","options","usdcPublicKey","PublicKey","userPublicKey","userUSDCAccount","getUSDCAccounts","getAccount","MaxUint256","contractAddress","payload","deposit","chain","getDepositQuoteFee","txHash","baseInterval","maxInterval","maxRetries"]}
|