@kodiak-finance/orderly-default-solana-adapter 2.7.4
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 +82 -0
- package/dist/index.d.ts +82 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/version.ts","../src/walletAdapter.ts","../src/helper.ts","../src/constant.ts","../src/idl/solana_vault.ts","../src/solana.util.ts"],"sourcesContent":["export { default as version } from \"./version\";\nexport { DefaultSolanaWalletAdapter } from \"./walletAdapter\";\nexport type { SolanaWalletProvider } from \"./types\";","declare 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__[\"@kodiak-finance/orderly-default-solana-adapter\"] = \"2.7.4\";\n}\n\nexport default \"2.7.4\";\n","import * as ed from \"@noble/ed25519\";\nimport { getAccount } from \"@solana/spl-token\";\nimport { WalletAdapterNetwork } from \"@solana/wallet-adapter-base\";\nimport {\n clusterApiUrl,\n Connection,\n PublicKey,\n Transaction,\n TransactionInstruction,\n} from \"@solana/web3.js\";\nimport { encode as bs58encode, decode as bs58Decode } from \"bs58\";\nimport { bytesToHex } from \"ethereum-cryptography/utils\";\nimport {\n AddOrderlyKeyInputs,\n BaseWalletAdapter,\n Message,\n RegisterAccountInputs,\n SettleInputs,\n SignatureDomain,\n SimpleDI,\n WithdrawInputs,\n Account,\n MessageFactor,\n DexRequestInputs,\n InternalTransferInputs,\n} from \"@kodiak-finance/orderly-core\";\nimport { API, MaxUint256, ChainNamespace } from \"@kodiak-finance/orderly-types\";\nimport {\n addOrderlyKeyMessage,\n checkIsLedgerWallet,\n deposit,\n encodeLzMessage,\n getDepositQuoteFee,\n MsgType,\n registerAccountMessage,\n settleMessage,\n internalTransferMessage,\n withdrawMessage,\n dexRequestMessage,\n} from \"./helper\";\nimport { getTokenAccounts } from \"./solana.util\";\nimport { SolanaAdapterOption, SolanaWalletProvider } from \"./types\";\n\nclass DefaultSolanaWalletAdapter extends BaseWalletAdapter<SolanaAdapterOption> {\n chainNamespace: ChainNamespace = ChainNamespace.solana;\n\n private _address!: string;\n private _chainId!: number;\n private _provider!: SolanaWalletProvider;\n private _connection!: Connection;\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 get connection(): Connection {\n if (this._connection) {\n return this._connection;\n }\n if (this._provider.rpcUrl) {\n this._connection = new Connection(this._provider.rpcUrl, {\n commitment: \"confirmed\",\n });\n return this._connection;\n }\n if (this._provider.network === WalletAdapterNetwork.Devnet) {\n this._connection = new Connection(clusterApiUrl(this._provider.network), {\n commitment: \"confirmed\",\n });\n return this._connection;\n }\n\n const account = SimpleDI.get<Account>(\"account\");\n const url = \"/v1/solana-rpc-proxy\";\n this._connection = new Connection(`${account.apiBaseUrl}${url}`, {\n commitment: \"confirmed\",\n fetchMiddleware: async (info, init, fetch) => {\n const payload: MessageFactor = {\n url,\n method: init?.method as \"GET\" | \"POST\" | \"PUT\" | \"DELETE\",\n data: JSON.parse(init?.body as string),\n };\n // console.log('payload', payload);\n const signature = await this.signMessageByOrderlyKey(payload);\n for (const key of Object.keys(signature)) {\n (init?.headers as any)[key] = signature[\n key as keyof typeof signature\n ] as string;\n }\n return fetch(info, init);\n },\n });\n return this._connection;\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 uint8ArrayToHexString(uint8Array: Uint8Array): string {\n return Array.from(uint8Array)\n .map((byte) => byte.toString(16).padStart(2, \"0\"))\n .join(\"\");\n }\n\n async signMessage(message: Uint8Array): Promise<string> {\n const isLedger = checkIsLedgerWallet(this._address);\n // test ledger wallet\n // if (!isLedger) {\n // console.log(\"-- test error\");\n // throw new Error(\n // \"xxx Signing off chain messages with Ledger is not yet supported\"\n // );\n // }\n\n if (isLedger) {\n const transaction = new Transaction();\n\n transaction.add(\n new TransactionInstruction({\n keys: [],\n programId: new PublicKey(\n \"ComputeBudget111111111111111111111111111111\",\n ),\n data: new Uint8Array([3, 0, 0, 0, 0, 0, 0, 0, 0]) as any,\n }),\n );\n\n transaction.add(\n new TransactionInstruction({\n keys: [],\n programId: new PublicKey(\n \"ComputeBudget111111111111111111111111111111\",\n ),\n data: new Uint8Array([2, 0, 0, 0, 0]) as any,\n }),\n );\n\n transaction.add(\n new TransactionInstruction({\n keys: [],\n programId: new PublicKey(\n \"MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr\",\n ),\n data: message as any,\n }),\n );\n\n const userPublicKey = new PublicKey(this.address);\n\n transaction.feePayer = userPublicKey;\n\n const zeroHash = new Uint8Array(32).fill(0);\n transaction.recentBlockhash = new PublicKey(zeroHash).toString();\n\n const signedTransaction =\n await this._provider.signTransaction(transaction);\n\n const signature = signedTransaction.signatures[0].signature;\n if (signature) {\n return this.uint8ArrayToHexString(signature as any);\n } else {\n console.log(\"-- sign message error\", signature);\n throw new Error(\"Unsupported signature\");\n }\n }\n const signRes = await this._provider.signMessage(message);\n return \"0x\" + bytesToHex(signRes);\n }\n\n async generateRegisterAccountMessage(\n inputs: RegisterAccountInputs,\n ): Promise<Message> {\n const [message, toSignatureMessage] = registerAccountMessage({\n ...inputs,\n chainId: this.chainId,\n });\n\n const signature = await this.signMessage(toSignatureMessage as Uint8Array);\n\n return {\n message: {\n ...message,\n chainType: \"SOL\",\n },\n signatured: signature,\n };\n }\n\n async generateWithdrawMessage(\n inputs: WithdrawInputs,\n ): Promise<Message & { domain: SignatureDomain }> {\n const [message, toSignatureMessage] = withdrawMessage({\n ...inputs,\n chainId: this.chainId,\n });\n const signature = await this.signMessage(toSignatureMessage as Uint8Array);\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 generateInternalTransferMessage(\n inputs: InternalTransferInputs,\n ): Promise<Message & { domain: SignatureDomain }> {\n const [message, toSignatureMessage] = internalTransferMessage({\n ...inputs,\n chainId: this.chainId,\n });\n const signature = await this.signMessage(toSignatureMessage as Uint8Array);\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(\n inputs: AddOrderlyKeyInputs,\n ): Promise<Message> {\n const [message, toSignatureMessage] = addOrderlyKeyMessage({\n ...inputs,\n chainId: this.chainId,\n });\n const signature = await this.signMessage(toSignatureMessage as Uint8Array);\n\n return {\n message: {\n ...message,\n chainType: \"SOL\",\n },\n signatured: signature,\n };\n }\n\n async generateSettleMessage(\n inputs: SettleInputs,\n ): Promise<Message & { domain: SignatureDomain }> {\n const [message, toSignatureMessage] = settleMessage({\n ...inputs,\n chainId: this.chainId,\n });\n const signature = await this.signMessage(toSignatureMessage as Uint8Array);\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 generateDexRequestMessage(inputs: DexRequestInputs): Promise<\n Message & {\n domain: SignatureDomain;\n }\n > {\n const [message, toSignatureMessage] = await dexRequestMessage({\n ...inputs,\n chainId: this.chainId,\n });\n\n // 使用 signMessage 方法签名,而不是 signTypedData\n const signature = await this.signMessage(toSignatureMessage as Uint8Array);\n\n return {\n message: {\n ...inputs,\n chainType: \"SOL\",\n },\n signatured: signature,\n domain: inputs.domain,\n };\n }\n\n async getBalance(): Promise<bigint> {\n const publicKey = new PublicKey(this.address);\n const lamports = await this.connection.getBalance(publicKey);\n return BigInt(lamports);\n }\n\n async call(\n address: string,\n method: string,\n params: any[],\n options?: {\n abi: any;\n },\n ) {\n // console.log('-- solanan call', {\n // address,\n // method,\n // params,\n // options,\n // })\n if (method === \"balanceOf\") {\n const tokenPublicKey = new PublicKey(address);\n const userPublicKey = new PublicKey(this._address);\n const userTokenAccount = getTokenAccounts(tokenPublicKey, userPublicKey);\n const connection = this.connection;\n\n const tokenAmount = await getAccount(\n connection,\n userTokenAccount,\n \"confirmed\",\n );\n return tokenAmount.amount;\n }\n if (method === \"allowance\") {\n return MaxUint256;\n }\n return BigInt(0);\n }\n\n async sendTransaction(\n 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 ) {\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.connection,\n depositData: payload.data[0],\n sendTransaction: this._provider.sendTransaction,\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.connection,\n depositData: params[1],\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 return Promise.resolve({ status: 1 });\n }\n}\n\nexport { DefaultSolanaWalletAdapter };\n","import { BN, Program } from \"@coral-xyz/anchor\";\nimport type { WalletAdapterProps } from \"@solana/wallet-adapter-base\";\nimport {\n ComputeBudgetProgram,\n Connection,\n PublicKey,\n SystemProgram,\n TransactionMessage,\n VersionedTransaction,\n} from \"@solana/web3.js\";\nimport { decode as bs58Decode } from \"bs58\";\nimport { Hash } from \"crypto\";\nimport { keccak256 } from \"ethereum-cryptography/keccak\";\nimport { bytesToHex, hexToBytes } from \"ethereum-cryptography/utils\";\nimport { AbiCoder, solidityPackedKeccak256 } from \"ethers\";\nimport {\n utils as CoreUtils,\n AddOrderlyKeyInputs,\n RegisterAccountInputs,\n type SettleInputs,\n type SignatureDomain,\n type WithdrawInputs,\n InternalTransferInputs,\n} from \"@kodiak-finance/orderly-core\";\nimport { DexRequestInputs } from \"@kodiak-finance/orderly-core\";\nimport {\n DEFAUL_ORDERLY_KEY_SCOPE,\n LedgerWalletKey,\n} from \"@kodiak-finance/orderly-types\";\nimport {\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 { IDL as VaultIDL, SolanaVault } from \"./idl/solana_vault\";\nimport {\n getBrokerPDA,\n getDefaultSendConfigPda,\n getDefaultSendLibConfigPda,\n getDstEID,\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 getTokenAccounts,\n getVaultAuthorityPda,\n getSolVaultPda,\n} from \"./solana.util\";\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 subAccountId,\n } = inputs;\n const message = {\n brokerId: brokerId,\n chainType: \"SOL\",\n orderlyKey: publicKey,\n scope: scope || DEFAUL_ORDERLY_KEY_SCOPE,\n chainId,\n timestamp,\n expiration: timestamp + 1000 * 60 * 60 * 24 * expiration,\n ...(typeof tag !== \"undefined\" ? { tag } : {}),\n ...(typeof subAccountId !== \"undefined\" ? { subAccountId } : {}),\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 internalTransferMessage(\n inputs: InternalTransferInputs & {\n chainId: number;\n },\n) {\n const { chainId, receiver, token, amount, nonce } = inputs;\n const message = {\n chainId,\n receiver,\n token,\n amount,\n transferNonce: nonce,\n chainType: \"SOL\",\n };\n\n const tokenSymbolHash = solidityPackedKeccak256([\"string\"], [message.token]);\n\n const abicoder = AbiCoder.defaultAbiCoder();\n // StaticStruct staticStruct = new StaticStruct(\n // new Bytes32(Numeric.hexStringToByteArray(receiver)),\n // new Bytes32(Numeric.hexStringToByteArray(Hash.sha3(TypeEncoder.encodePacked(new Utf8String(token))))),\n // new Uint256(amount),\n // new Uint64(transferNonce),\n // new Uint256(Long.parseLong(chainId))\n // );\n const msgToSign = keccak256(\n hexToBytes(\n abicoder.encode(\n [\"bytes32\", \"bytes32\", \"uint256\", \"uint64\", \"uint256\"],\n [\n message.receiver,\n tokenSymbolHash,\n message.amount,\n message.transferNonce,\n chainId,\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 async function dexRequestMessage(\n inputs: DexRequestInputs & {\n domain: SignatureDomain;\n chainId: number;\n },\n) {\n const {\n payloadType,\n nonce,\n receiver,\n amount,\n vaultId,\n token,\n dexBrokerId,\n chainId,\n } = inputs;\n\n const message = {\n payloadType,\n nonce,\n receiver,\n amount,\n vaultId,\n token,\n dexBrokerId,\n chainId,\n };\n\n let receiverBytes: Uint8Array;\n receiverBytes = bs58Decode(receiver);\n const receiverBytes32 = new Uint8Array(32);\n receiverBytes32.set(receiverBytes);\n\n const vaultIdHex = vaultId;\n const vaultIdBytes = hexToBytes(vaultIdHex);\n\n const tokenHash = keccak256(new TextEncoder().encode(token));\n const dexBrokerIdHash = keccak256(new TextEncoder().encode(dexBrokerId));\n const abicoder = AbiCoder.defaultAbiCoder();\n const msgToSign = keccak256(\n hexToBytes(\n abicoder.encode(\n [\n \"uint8\", // payloadType\n \"uint256\", // nonce\n \"bytes32\", // receiver (Base58 decoded)\n \"uint256\", // amount\n \"bytes32\", // vaultId\n \"bytes32\", // token hash\n \"bytes32\", // dexBrokerId hash\n \"uint256\", // chainId\n ],\n [\n payloadType,\n nonce,\n receiverBytes,\n amount,\n vaultIdBytes,\n tokenHash,\n dexBrokerIdHash,\n chainId,\n ],\n ),\n ),\n );\n\n const msgToSignHex = bytesToHex(msgToSign);\n const msgToSignTextEncoded: Uint8Array = new TextEncoder().encode(\n msgToSignHex,\n );\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\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 bs58Decode(message.receiver),\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 tokenAddress: string;\n tokenAmount: string;\n };\n}) {\n console.log(\"-- vaultAddress\", vaultAddress);\n const appProgramId = new PublicKey(vaultAddress);\n const DST_EID = getDstEID(appProgramId);\n\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 if (feeRes.value.err) {\n const errorInfo =\n typeof feeRes.value.err === \"object\"\n ? JSON.stringify(feeRes.value.err)\n : feeRes.value.err;\n\n if (errorInfo.toString().includes(\"AccountNotFound\")) {\n throw new Error(\"Error: Account gas is insufficient.\");\n }\n\n throw new Error(`Error: ${errorInfo}`);\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(\"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 = (\n userAddress: string,\n depositData: {\n tokenHash: string;\n brokerHash: string;\n accountId: string;\n tokenAddress: string;\n tokenAmount: string;\n },\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 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 tokenAddress: string;\n tokenAmount: string;\n };\n}) {\n const brokerHash = depositData.brokerHash;\n const tokenHash = depositData.tokenHash;\n\n const SOL_HASH = CoreUtils.parseTokenHash(\"SOL\");\n const isSolDeposit = tokenHash.toLowerCase() === SOL_HASH.toLowerCase();\n\n console.log(\"-- vault address\", vaultAddress);\n const appProgramId = new PublicKey(vaultAddress);\n const program = new Program<SolanaVault>(VaultIDL, appProgramId, {\n connection,\n });\n // If is not SOL deposit, tokenAddress is the token address\n // else, tokenAddress is the USDC address\n const token = new PublicKey(depositData.tokenAddress);\n const userPublicKey = new PublicKey(userAddress);\n const userTokenAccount = getTokenAccounts(token, userPublicKey);\n const vaultAuthorityPda = getVaultAuthorityPda(appProgramId);\n const vaultTokenAccount = getTokenAccounts(token, 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 DST_EID = getDstEID(appProgramId);\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 buildSendRemainingAccounts = () => [\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\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 = isSolDeposit\n ? await program.methods\n .depositSol(vaultDepositParams, sendParam)\n .accounts({\n solVault: getSolVaultPda(appProgramId),\n vaultAuthority: vaultAuthorityPda,\n user: userPublicKey,\n peer: peerPDA,\n enforcedOptions: endorcedPDA,\n oappConfig: oappConfigPDA,\n allowedBroker: allowedBrokerPDA,\n allowedToken: allowedTokenPDA,\n })\n .remainingAccounts(buildSendRemainingAccounts())\n .instruction()\n : await program.methods\n .deposit(vaultDepositParams, sendParam)\n .accounts({\n userTokenAccount: userTokenAccount,\n vaultAuthority: vaultAuthorityPda,\n vaultTokenAccount: vaultTokenAccount,\n depositToken: token,\n user: userPublicKey,\n peer: peerPDA,\n enforcedOptions: endorcedPDA,\n oappConfig: oappConfigPDA,\n allowedBroker: allowedBrokerPDA,\n allowedToken: allowedTokenPDA,\n })\n .remainingAccounts(buildSendRemainingAccounts())\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\nexport function checkIsLedgerWallet(userAddress: string): boolean {\n const info = window.localStorage.getItem(LedgerWalletKey);\n if (!info) {\n return false;\n }\n const addressArr = JSON.parse(info ?? \"[]\");\n console.log(\"-- addressArr\", addressArr);\n if (addressArr.includes(userAddress)) {\n return true;\n }\n return false;\n}\n","import { addressToBytes32 } from \"@layerzerolabs/lz-v2-utilities\";\nimport { PublicKey } from \"@solana/web3.js\";\n\nexport const ENDPOINT_PROGRAM_ID = new PublicKey(\n \"76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6\",\n);\nexport const SEND_LIB_PROGRAM_ID = new PublicKey(\n \"7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH\",\n);\nexport const EXECUTOR_PROGRAM_ID = new PublicKey(\n \"6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn\",\n);\nexport const PRICE_FEED_PROGRAM_ID = new PublicKey(\n \"8ahPGPjEbpgGaZx2NV1iG5Shj7TDwvsjkEDcGWjt94TP\",\n);\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(\n \"HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW\",\n);\nexport const VAULT_AUTHORITY_SEED = \"VaultAuthority\";\nexport const BROKER_SEED = \"Broker\";\nexport const TOKEN_SEED = \"Token\";\nexport const SOL_VAULT_SEED = \"SolVault\";\n// fro dev\n// export const PEER_ADDRESS = addressToBytes32('0x9Dc724b24146BeDD2dA28b8C4B74126169B8f312');\n// for qa\nexport const DEV_PEER_ADDRESS = addressToBytes32(\n \"0x9Dc724b24146BeDD2dA28b8C4B74126169B8f312\",\n);\nexport const QA_PEER_ADDRESS = addressToBytes32(\n \"0x45b6C6266A7A2170617d8A27A50C642fd68b91c4\",\n);\nexport const STAGING_PEER_ADDRESS = addressToBytes32(\n \"0x5Bf771A65d057e778C5f0Ed52A0003316f94322D\",\n);\nexport const MAINNET_PEER_ADDRESS = addressToBytes32(\n \"0xCecAe061aa078e13b5e70D5F9eCee90a3F2B6AeA\",\n);\n\nexport const DEV_DST_EID = 40200;\nexport const MAIN_DST_EID = 30213;\n\nexport const DEV_LOOKUP_TABLE_ADDRESS = new PublicKey(\n \"BWp8HaYYhiNHekt3zgQhqoCrRftneGxxfgKmCZ6svHN\",\n);\nexport const QA_LOOKUP_TABLE_ADDRESS = new PublicKey(\n \"BswrQQoPKAFojTuJutZcBMtigAgTghEH4M8ofn3EG2X2\",\n);\nexport const STAGING_LOOKUP_TABLE_ADDRESS = new PublicKey(\n \"BbGKfxuPwDmu58BjPpd7PMG69TqnZjSpKaLDMgf9E9Dr\",\n);\nexport const MAINNET_LOOKUP_TABLE_ADDRESS = new PublicKey(\n \"8iq7xCQt3bLdRRn4A46d5GuaXYinBoiAhbe2sUmZVzwg\",\n);\n\nexport const DEV_OAPP_PROGRAM_ID = new PublicKey(\n \"EYJq9eU4GMRUriUJBgGoZ8YLQBXcWaciXuSsEXE7ieQS\",\n);\nexport const QA_OAPP_PROGRAM_ID = new PublicKey(\n \"5zBjLor7vEraAt4zp2H82sy9MSqFoDnNa1Lx6EYKTYRZ\",\n);\nexport const STAGING_OAPP_PROGRAM_ID = new PublicKey(\n \"9shwxWDUNhtwkHocsUAmrNAQfBH2DHh4njdAEdHZZkF2\",\n);\nexport const MAINNET_OAPP_PROGRAM_ID = new PublicKey(\n \"ErBmAD61mGFKvrFNaTJuxoPwqrS8GgtwtqJTJVjFWx9Q\",\n);\n","export type SolanaVault = {\n version: \"0.1.0\";\n name: \"solana_vault\";\n instructions: [\n {\n name: \"setVault\";\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: \"SetVaultParams\";\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: \"depositSol\";\n accounts: [\n {\n name: \"user\";\n isMut: true;\n isSigner: true;\n },\n {\n name: \"vaultAuthority\";\n isMut: true;\n isSigner: false;\n },\n {\n name: \"solVault\";\n isMut: true;\n isSigner: false;\n docs: [\"CHECKED: sol_vault is used for SOL deposit\"];\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: \"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: \"accountList\";\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: \"setAccountList\";\n accounts: [\n {\n name: \"admin\";\n isMut: true;\n isSigner: true;\n },\n {\n name: \"oappConfig\";\n isMut: false;\n isSigner: false;\n },\n {\n name: \"lzReceiveTypes\";\n isMut: true;\n isSigner: false;\n },\n {\n name: \"accountsList\";\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: \"SetAccountListParams\";\n };\n },\n ];\n },\n {\n name: \"setManagerRole\";\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 name: \"managerRole\";\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: \"SetManagerRoleParams\";\n };\n },\n ];\n },\n {\n name: \"setBroker\";\n accounts: [\n {\n name: \"brokerManager\";\n isMut: true;\n isSigner: true;\n },\n {\n name: \"allowedBroker\";\n isMut: true;\n isSigner: false;\n },\n {\n name: \"managerRole\";\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: \"setWithdrawBroker\";\n accounts: [\n {\n name: \"brokerManager\";\n isMut: true;\n isSigner: true;\n },\n {\n name: \"withdrawBroker\";\n isMut: true;\n isSigner: false;\n },\n {\n name: \"managerRole\";\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: \"SetWithdrawBrokerParams\";\n };\n },\n ];\n },\n {\n name: \"setToken\";\n accounts: [\n {\n name: \"tokenManager\";\n isMut: true;\n isSigner: true;\n },\n {\n name: \"allowedToken\";\n isMut: true;\n isSigner: false;\n },\n {\n name: \"managerRole\";\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: \"setWithdrawToken\";\n accounts: [\n {\n name: \"tokenManager\";\n isMut: true;\n isSigner: true;\n },\n {\n name: \"withdrawToken\";\n isMut: true;\n isSigner: false;\n },\n {\n name: \"managerRole\";\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: \"SetWithdrawTokenParams\";\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: \"withdrawBrokerPda\";\n isMut: false;\n isSigner: false;\n },\n {\n name: \"withdrawTokenPda\";\n isMut: false;\n isSigner: false;\n docs: [\"CHECK\"];\n },\n {\n name: \"tokenMint\";\n isMut: false;\n isSigner: false;\n docs: [\"CHECK\"];\n },\n {\n name: \"receiver\";\n isMut: true;\n isSigner: false;\n docs: [\"CHECK\"];\n },\n {\n name: \"receiverTokenAccount\";\n isMut: true;\n isSigner: false;\n docs: [\"UNCHECKED\"];\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: \"tokenProgram\";\n isMut: false;\n isSigner: false;\n docs: [\"CHECKED: sol_vault is used for SOL withdrawal\"];\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 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 name: \"accountList\";\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 };\n },\n {\n name: \"oAppLzReceiveTypesAccounts\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"oappConfig\";\n type: \"publicKey\";\n },\n {\n name: \"accountList\";\n type: \"publicKey\";\n },\n ];\n };\n },\n {\n name: \"accountList\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"bump\";\n type: \"u8\";\n },\n {\n name: \"woofiProPda\";\n type: \"publicKey\";\n },\n {\n name: \"withdrawUsdcPda\";\n type: \"publicKey\";\n },\n {\n name: \"usdcMint\";\n type: \"publicKey\";\n },\n {\n name: \"withdrawUsdtPda\";\n type: \"publicKey\";\n },\n {\n name: \"usdtMint\";\n type: \"publicKey\";\n },\n {\n name: \"withdrawWsolPda\";\n type: \"publicKey\";\n },\n {\n name: \"wsolMint\";\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: [\"u8\", 32];\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: [\"u8\", 32];\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: [\"u8\", 32];\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: \"managerRole\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"roleHash\";\n type: {\n array: [\"u8\", 32];\n };\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: [\"Bump seed for the vault authority PDA\"];\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 name: \"withdrawBroker\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"brokerHash\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"brokerIndex\";\n type: \"u16\";\n },\n {\n name: \"allowed\";\n type: \"bool\";\n },\n {\n name: \"bump\";\n type: \"u8\";\n },\n ];\n };\n },\n {\n name: \"withdrawToken\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"mintAccount\";\n type: \"publicKey\";\n },\n {\n name: \"tokenHash\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"tokenDecimals\";\n type: \"u8\";\n },\n {\n name: \"tokenIndex\";\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 types: [\n {\n name: \"VaultDepositParams\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"accountId\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"brokerHash\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"userAddress\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"tokenHash\";\n type: {\n array: [\"u8\", 32];\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: \"AccountWithdrawSol\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"sender\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"receiver\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"brokerIndex\";\n type: \"u16\";\n },\n {\n name: \"tokenIndex\";\n type: \"u8\";\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: [\"u8\", 32];\n };\n },\n {\n name: \"sender\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"receiver\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"brokerHash\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"tokenHash\";\n type: {\n array: [\"u8\", 32];\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: \"InitOAppParams\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"admin\";\n type: \"publicKey\";\n },\n {\n name: \"accountList\";\n type: \"publicKey\";\n },\n {\n name: \"endpointProgram\";\n type: {\n option: \"publicKey\";\n };\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: [\"u8\", 32];\n };\n },\n {\n name: \"nonce\";\n type: \"u64\";\n },\n {\n name: \"guid\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"message\";\n type: \"bytes\";\n },\n {\n name: \"extraData\";\n type: \"bytes\";\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: \"SetAccountListParams\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"woofiProPda\";\n type: \"publicKey\";\n },\n {\n name: \"withdrawUsdcPda\";\n type: \"publicKey\";\n },\n {\n name: \"usdcMint\";\n type: \"publicKey\";\n },\n {\n name: \"withdrawUsdtPda\";\n type: \"publicKey\";\n },\n {\n name: \"usdtMint\";\n type: \"publicKey\";\n },\n {\n name: \"withdrawWsolPda\";\n type: \"publicKey\";\n },\n {\n name: \"wsolMint\";\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: [\"u8\", 32];\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: [\"u8\", 32];\n };\n },\n {\n name: \"brokerHash\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"tokenHash\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"userAddress\";\n type: {\n array: [\"u8\", 32];\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: \"SetBrokerParams\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"brokerManagerRole\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"brokerHash\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"allowed\";\n type: \"bool\";\n },\n ];\n };\n },\n {\n name: \"SetManagerRoleParams\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"roleHash\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"managerAddress\";\n type: \"publicKey\";\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: \"tokenManagerRole\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"mintAccount\";\n type: \"publicKey\";\n },\n {\n name: \"tokenHash\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"allowed\";\n type: \"bool\";\n },\n ];\n };\n },\n {\n name: \"SetVaultParams\";\n type: {\n kind: \"struct\";\n fields: [\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 name: \"SetWithdrawBrokerParams\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"brokerManagerRole\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"brokerHash\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"brokerIndex\";\n type: \"u16\";\n },\n {\n name: \"allowed\";\n type: \"bool\";\n },\n ];\n };\n },\n {\n name: \"SetWithdrawTokenParams\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"tokenManagerRole\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"tokenHash\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"tokenIndex\";\n type: \"u8\";\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: \"InvalidReceiver\";\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 name: \"InvalidReceiverTokenAccount\";\n },\n {\n name: \"InvalidAdminTokenAccount\";\n },\n {\n name: \"InvalidMessageType\";\n },\n {\n name: \"InvalidTokenIndex\";\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: [\"u8\", 32];\n };\n index: false;\n },\n ];\n },\n {\n name: \"ResetAllowedBroker\";\n fields: [\n {\n name: \"brokerHash\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n ];\n },\n {\n name: \"SetAllowedToken\";\n fields: [\n {\n name: \"tokenHash\";\n type: {\n array: [\"u8\", 32];\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: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"mintAccount\";\n type: \"publicKey\";\n index: false;\n },\n ];\n },\n {\n name: \"SetWithdrawTokenIndex\";\n fields: [\n {\n name: \"tokenIndex\";\n type: \"u8\";\n index: false;\n },\n {\n name: \"tokenHash\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"mintAccount\";\n type: \"publicKey\";\n index: false;\n },\n ];\n },\n {\n name: \"ResetWithdrawTokenIndex\";\n fields: [\n {\n name: \"tokenIndex\";\n type: \"u8\";\n index: false;\n },\n {\n name: \"tokenHash\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"mintAccount\";\n type: \"publicKey\";\n index: false;\n },\n ];\n },\n {\n name: \"SetWithdrawBrokerEvent\";\n fields: [\n {\n name: \"brokerHash\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"brokerIndex\";\n type: \"u16\";\n index: false;\n },\n ];\n },\n {\n name: \"ResetWithdrawBrokerEvent\";\n fields: [\n {\n name: \"brokerHash\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"brokerIndex\";\n type: \"u16\";\n index: false;\n },\n ];\n },\n {\n name: \"SetManager\";\n fields: [\n {\n name: \"roleHash\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"managerAddress\";\n type: \"publicKey\";\n index: false;\n },\n {\n name: \"allowed\";\n type: \"bool\";\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: \"CreatedATA\";\n fields: [\n {\n name: \"accountId\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"receiver\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"receiverTokenAccount\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"withdrawNonce\";\n type: \"u64\";\n index: false;\n },\n ];\n },\n {\n name: \"VaultDeposited\";\n fields: [\n {\n name: \"accountId\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"brokerHash\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"userAddress\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"tokenHash\";\n type: {\n array: [\"u8\", 32];\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: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"sender\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"receiver\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"brokerHash\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"tokenHash\";\n type: {\n array: [\"u8\", 32];\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: \"FrozenWithdrawn\";\n fields: [\n {\n name: \"accountId\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"sender\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"receiver\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"brokerHash\";\n type: {\n array: [\"u8\", 32];\n };\n index: false;\n },\n {\n name: \"tokenHash\";\n type: {\n array: [\"u8\", 32];\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: [\"u8\", 32];\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: [\"u8\", 32];\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 code: 6006;\n name: \"ManagerRoleNotAllowed\";\n msg: \"Manager role is not allowed\";\n },\n ];\n};\n\nexport const IDL: SolanaVault = {\n version: \"0.1.0\",\n name: \"solana_vault\",\n instructions: [\n {\n name: \"setVault\",\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: \"SetVaultParams\",\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: \"depositSol\",\n accounts: [\n {\n name: \"user\",\n isMut: true,\n isSigner: true,\n },\n {\n name: \"vaultAuthority\",\n isMut: true,\n isSigner: false,\n },\n {\n name: \"solVault\",\n isMut: true,\n isSigner: false,\n docs: [\"CHECKED: sol_vault is used for SOL deposit\"],\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: \"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: \"accountList\",\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: \"setAccountList\",\n accounts: [\n {\n name: \"admin\",\n isMut: true,\n isSigner: true,\n },\n {\n name: \"oappConfig\",\n isMut: false,\n isSigner: false,\n },\n {\n name: \"lzReceiveTypes\",\n isMut: true,\n isSigner: false,\n },\n {\n name: \"accountsList\",\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: \"SetAccountListParams\",\n },\n },\n ],\n },\n {\n name: \"setManagerRole\",\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 name: \"managerRole\",\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: \"SetManagerRoleParams\",\n },\n },\n ],\n },\n {\n name: \"setBroker\",\n accounts: [\n {\n name: \"brokerManager\",\n isMut: true,\n isSigner: true,\n },\n {\n name: \"allowedBroker\",\n isMut: true,\n isSigner: false,\n },\n {\n name: \"managerRole\",\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: \"setWithdrawBroker\",\n accounts: [\n {\n name: \"brokerManager\",\n isMut: true,\n isSigner: true,\n },\n {\n name: \"withdrawBroker\",\n isMut: true,\n isSigner: false,\n },\n {\n name: \"managerRole\",\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: \"SetWithdrawBrokerParams\",\n },\n },\n ],\n },\n {\n name: \"setToken\",\n accounts: [\n {\n name: \"tokenManager\",\n isMut: true,\n isSigner: true,\n },\n {\n name: \"allowedToken\",\n isMut: true,\n isSigner: false,\n },\n {\n name: \"managerRole\",\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: \"setWithdrawToken\",\n accounts: [\n {\n name: \"tokenManager\",\n isMut: true,\n isSigner: true,\n },\n {\n name: \"withdrawToken\",\n isMut: true,\n isSigner: false,\n },\n {\n name: \"managerRole\",\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: \"SetWithdrawTokenParams\",\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: \"withdrawBrokerPda\",\n isMut: false,\n isSigner: false,\n },\n {\n name: \"withdrawTokenPda\",\n isMut: false,\n isSigner: false,\n docs: [\"CHECK\"],\n },\n {\n name: \"tokenMint\",\n isMut: false,\n isSigner: false,\n docs: [\"CHECK\"],\n },\n {\n name: \"receiver\",\n isMut: true,\n isSigner: false,\n docs: [\"CHECK\"],\n },\n {\n name: \"receiverTokenAccount\",\n isMut: true,\n isSigner: false,\n docs: [\"UNCHECKED\"],\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: \"tokenProgram\",\n isMut: false,\n isSigner: false,\n docs: [\"CHECKED: sol_vault is used for SOL withdrawal\"],\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 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 name: \"accountList\",\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 },\n },\n {\n name: \"oAppLzReceiveTypesAccounts\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"oappConfig\",\n type: \"publicKey\",\n },\n {\n name: \"accountList\",\n type: \"publicKey\",\n },\n ],\n },\n },\n {\n name: \"accountList\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"bump\",\n type: \"u8\",\n },\n {\n name: \"woofiProPda\",\n type: \"publicKey\",\n },\n {\n name: \"withdrawUsdcPda\",\n type: \"publicKey\",\n },\n {\n name: \"usdcMint\",\n type: \"publicKey\",\n },\n {\n name: \"withdrawUsdtPda\",\n type: \"publicKey\",\n },\n {\n name: \"usdtMint\",\n type: \"publicKey\",\n },\n {\n name: \"withdrawWsolPda\",\n type: \"publicKey\",\n },\n {\n name: \"wsolMint\",\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: [\"u8\", 32],\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: [\"u8\", 32],\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: [\"u8\", 32],\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: \"managerRole\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"roleHash\",\n type: {\n array: [\"u8\", 32],\n },\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: [\"Bump seed for the vault authority PDA\"],\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 name: \"withdrawBroker\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"brokerHash\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"brokerIndex\",\n type: \"u16\",\n },\n {\n name: \"allowed\",\n type: \"bool\",\n },\n {\n name: \"bump\",\n type: \"u8\",\n },\n ],\n },\n },\n {\n name: \"withdrawToken\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"mintAccount\",\n type: \"publicKey\",\n },\n {\n name: \"tokenHash\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"tokenDecimals\",\n type: \"u8\",\n },\n {\n name: \"tokenIndex\",\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 types: [\n {\n name: \"VaultDepositParams\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"accountId\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"brokerHash\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"userAddress\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"tokenHash\",\n type: {\n array: [\"u8\", 32],\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: \"AccountWithdrawSol\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"sender\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"receiver\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"brokerIndex\",\n type: \"u16\",\n },\n {\n name: \"tokenIndex\",\n type: \"u8\",\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: [\"u8\", 32],\n },\n },\n {\n name: \"sender\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"receiver\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"brokerHash\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"tokenHash\",\n type: {\n array: [\"u8\", 32],\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: \"InitOAppParams\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"admin\",\n type: \"publicKey\",\n },\n {\n name: \"accountList\",\n type: \"publicKey\",\n },\n {\n name: \"endpointProgram\",\n type: {\n option: \"publicKey\",\n },\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: [\"u8\", 32],\n },\n },\n {\n name: \"nonce\",\n type: \"u64\",\n },\n {\n name: \"guid\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"message\",\n type: \"bytes\",\n },\n {\n name: \"extraData\",\n type: \"bytes\",\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: \"SetAccountListParams\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"woofiProPda\",\n type: \"publicKey\",\n },\n {\n name: \"withdrawUsdcPda\",\n type: \"publicKey\",\n },\n {\n name: \"usdcMint\",\n type: \"publicKey\",\n },\n {\n name: \"withdrawUsdtPda\",\n type: \"publicKey\",\n },\n {\n name: \"usdtMint\",\n type: \"publicKey\",\n },\n {\n name: \"withdrawWsolPda\",\n type: \"publicKey\",\n },\n {\n name: \"wsolMint\",\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: [\"u8\", 32],\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: [\"u8\", 32],\n },\n },\n {\n name: \"brokerHash\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"tokenHash\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"userAddress\",\n type: {\n array: [\"u8\", 32],\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: \"SetBrokerParams\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"brokerManagerRole\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"brokerHash\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"allowed\",\n type: \"bool\",\n },\n ],\n },\n },\n {\n name: \"SetManagerRoleParams\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"roleHash\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"managerAddress\",\n type: \"publicKey\",\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: \"tokenManagerRole\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"mintAccount\",\n type: \"publicKey\",\n },\n {\n name: \"tokenHash\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"allowed\",\n type: \"bool\",\n },\n ],\n },\n },\n {\n name: \"SetVaultParams\",\n type: {\n kind: \"struct\",\n fields: [\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 name: \"SetWithdrawBrokerParams\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"brokerManagerRole\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"brokerHash\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"brokerIndex\",\n type: \"u16\",\n },\n {\n name: \"allowed\",\n type: \"bool\",\n },\n ],\n },\n },\n {\n name: \"SetWithdrawTokenParams\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"tokenManagerRole\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"tokenHash\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"tokenIndex\",\n type: \"u8\",\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: \"InvalidReceiver\",\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 name: \"InvalidReceiverTokenAccount\",\n },\n {\n name: \"InvalidAdminTokenAccount\",\n },\n {\n name: \"InvalidMessageType\",\n },\n {\n name: \"InvalidTokenIndex\",\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: [\"u8\", 32],\n },\n index: false,\n },\n ],\n },\n {\n name: \"ResetAllowedBroker\",\n fields: [\n {\n name: \"brokerHash\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n ],\n },\n {\n name: \"SetAllowedToken\",\n fields: [\n {\n name: \"tokenHash\",\n type: {\n array: [\"u8\", 32],\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: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"mintAccount\",\n type: \"publicKey\",\n index: false,\n },\n ],\n },\n {\n name: \"SetWithdrawTokenIndex\",\n fields: [\n {\n name: \"tokenIndex\",\n type: \"u8\",\n index: false,\n },\n {\n name: \"tokenHash\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"mintAccount\",\n type: \"publicKey\",\n index: false,\n },\n ],\n },\n {\n name: \"ResetWithdrawTokenIndex\",\n fields: [\n {\n name: \"tokenIndex\",\n type: \"u8\",\n index: false,\n },\n {\n name: \"tokenHash\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"mintAccount\",\n type: \"publicKey\",\n index: false,\n },\n ],\n },\n {\n name: \"SetWithdrawBrokerEvent\",\n fields: [\n {\n name: \"brokerHash\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"brokerIndex\",\n type: \"u16\",\n index: false,\n },\n ],\n },\n {\n name: \"ResetWithdrawBrokerEvent\",\n fields: [\n {\n name: \"brokerHash\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"brokerIndex\",\n type: \"u16\",\n index: false,\n },\n ],\n },\n {\n name: \"SetManager\",\n fields: [\n {\n name: \"roleHash\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"managerAddress\",\n type: \"publicKey\",\n index: false,\n },\n {\n name: \"allowed\",\n type: \"bool\",\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: \"CreatedATA\",\n fields: [\n {\n name: \"accountId\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"receiver\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"receiverTokenAccount\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"withdrawNonce\",\n type: \"u64\",\n index: false,\n },\n ],\n },\n {\n name: \"VaultDeposited\",\n fields: [\n {\n name: \"accountId\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"brokerHash\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"userAddress\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"tokenHash\",\n type: {\n array: [\"u8\", 32],\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: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"sender\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"receiver\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"brokerHash\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"tokenHash\",\n type: {\n array: [\"u8\", 32],\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: \"FrozenWithdrawn\",\n fields: [\n {\n name: \"accountId\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"sender\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"receiver\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"brokerHash\",\n type: {\n array: [\"u8\", 32],\n },\n index: false,\n },\n {\n name: \"tokenHash\",\n type: {\n array: [\"u8\", 32],\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: [\"u8\", 32],\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: [\"u8\", 32],\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 code: 6006,\n name: \"ManagerRoleNotAllowed\",\n msg: \"Manager role is not allowed\",\n },\n ],\n};\n","import {\n DVN_CONFIG_SEED,\n ENDPOINT_SEED,\n ENFORCED_OPTIONS_SEED,\n EVENT_SEED,\n EXECUTOR_CONFIG_SEED,\n LZ_RECEIVE_TYPES_SEED,\n MESSAGE_LIB_SEED,\n NONCE_SEED,\n OAPP_SEED,\n PEER_SEED,\n PRICE_FEED_SEED,\n SEND_CONFIG_SEED,\n SEND_LIBRARY_CONFIG_SEED,\n ULN_SEED,\n} from \"@layerzerolabs/lz-solana-sdk-v2\";\nimport { getAssociatedTokenAddressSync } from \"@solana/spl-token\";\nimport { Connection, PublicKey } from \"@solana/web3.js\";\nimport {\n BROKER_SEED,\n DEV_DST_EID,\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 MAIN_DST_EID,\n MAINNET_LOOKUP_TABLE_ADDRESS,\n MAINNET_OAPP_PROGRAM_ID,\n MAINNET_PEER_ADDRESS,\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,\n STAGING_PEER_ADDRESS,\n TOKEN_SEED,\n VAULT_AUTHORITY_SEED,\n SOL_VAULT_SEED,\n} from \"./constant\";\n\nexport const getTokenAccounts = (\n token: PublicKey,\n owner: PublicKey,\n): PublicKey => {\n const tokenAccount = getAssociatedTokenAddressSync(token, owner, true);\n return tokenAccount;\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\nexport function getSolVaultPda(VAULT_PROGRAM_ID: PublicKey): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SOL_VAULT_SEED, \"utf8\")],\n VAULT_PROGRAM_ID,\n )[0];\n}\n\nexport function getBrokerPDA(\n programId: PublicKey,\n brokerHash: string,\n): 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(\n programId: PublicKey,\n tokenHash: string,\n): 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(\n programId: PublicKey,\n oappConfigPda: PublicKey,\n): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(LZ_RECEIVE_TYPES_SEED, \"utf8\"), oappConfigPda.toBuffer()],\n programId,\n )[0];\n}\n\nexport function getPeerPda(\n OAPP_PROGRAM_ID: PublicKey,\n oappConfigPda: PublicKey,\n dstEid: number,\n): 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(\n OAPP_PROGRAM_ID: PublicKey,\n oappConfigPda: PublicKey,\n dstEid: number,\n): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n bufferDstEid.writeUInt32BE(dstEid);\n\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from(ENFORCED_OPTIONS_SEED, \"utf8\"),\n oappConfigPda.toBuffer(),\n bufferDstEid,\n ],\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\nexport function getSendLibConfigPda(\n oappConfigPda: PublicKey,\n dstEid: number,\n): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n bufferDstEid.writeUInt32BE(dstEid);\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from(SEND_LIBRARY_CONFIG_SEED, \"utf8\"),\n oappConfigPda.toBuffer(),\n bufferDstEid,\n ],\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 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 if (OAPP_PROGRAM_ID.toBase58() === MAINNET_OAPP_PROGRAM_ID.toBase58()) {\n peer_address = MAINNET_PEER_ADDRESS;\n }\n return peer_address;\n}\n\nexport function getNoncePda(\n OAPP_PROGRAM_ID: PublicKey,\n oappConfigPda: PublicKey,\n dstEid: number,\n): 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 [\n Buffer.from(NONCE_SEED, \"utf8\"),\n oappConfigPda.toBuffer(),\n bufferDstEid,\n peer_address,\n ],\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(\n oappConfigPda: PublicKey,\n dstEid: number,\n): PublicKey {\n const bufferDstEid = Buffer.alloc(4);\n bufferDstEid.writeUInt32BE(dstEid);\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from(SEND_CONFIG_SEED, \"utf8\"),\n bufferDstEid,\n oappConfigPda.toBuffer(),\n ],\n SEND_LIB_PROGRAM_ID,\n )[0];\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 getDstEID(OAPP_PROGRAM_ID: PublicKey) {\n if (OAPP_PROGRAM_ID.toBase58() === MAINNET_OAPP_PROGRAM_ID.toBase58()) {\n return MAIN_DST_EID;\n }\n\n return DEV_DST_EID;\n}\n\nexport function getLookupTableAddress(OAPP_PROGRAM_ID: PublicKey): PublicKey {\n if (OAPP_PROGRAM_ID.toBase58() === DEV_OAPP_PROGRAM_ID.toBase58()) {\n console.log(\n \"DEV_LOOKUP_TABLE_ADDRESS: \",\n DEV_LOOKUP_TABLE_ADDRESS.toBase58(),\n );\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 if (OAPP_PROGRAM_ID.toBase58() === MAINNET_OAPP_PROGRAM_ID.toBase58()) {\n return MAINNET_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(\n msgLibPda: PublicKey,\n programId?: PublicKey,\n): PublicKey {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(MESSAGE_LIB_SEED, \"utf8\"), msgLibPda.toBytes()],\n programId ? programId : ENDPOINT_PROGRAM_ID,\n )[0];\n}\n\nexport async function getLookupTableAccount(\n connection: Connection,\n lookupTableAddress: PublicKey,\n) {\n const lookupTableAccount = (\n await connection.getAddressLookupTable(lookupTableAddress)\n ).value;\n\n return lookupTableAccount;\n}\n"],"mappings":"grCAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,gCAAAE,EAAA,YAAAC,KAAA,eAAAC,GAAAJ,ICOI,OAAO,QAAW,cACpB,OAAO,oBAAsB,OAAO,qBAAuB,CAAC,EAC5D,OAAO,oBAAoB,gDAAgD,EAAI,SAGjF,IAAOK,GAAQ,QCZf,IAAAC,GAAoB,8BACpBC,GAA2B,6BAC3BC,GAAqC,uCACrCC,EAMO,2BACPC,GAA2D,gBAC3DC,GAA2B,uCAC3BC,GAaO,wCACPC,GAAgD,yCC1BhD,IAAAC,EAA4B,6BAE5BC,EAOO,2BACPC,GAAqC,gBAErCC,EAA0B,wCAC1BC,EAAuC,uCACvCC,EAAkD,kBAClDC,GAQO,wCAEPC,EAGO,yCC5BP,IAAAC,EAAiC,0CACjCC,EAA0B,2BAEbC,EAAsB,IAAI,YACrC,8CACF,EACaC,EAAsB,IAAI,YACrC,8CACF,EACaC,EAAsB,IAAI,YACrC,8CACF,EACaC,EAAwB,IAAI,YACvC,8CACF,EACaC,GAAyBH,EACzBI,GAAsBJ,EACtBK,EAAiB,IAAI,YAChC,8CACF,EACaC,GAAuB,iBACvBC,GAAc,SACdC,GAAa,QACbC,GAAiB,WAIjBC,MAAmB,oBAC9B,4CACF,EACaC,MAAkB,oBAC7B,4CACF,EACaC,MAAuB,oBAClC,4CACF,EACaC,MAAuB,oBAClC,4CACF,EAEaC,GAAc,MACdC,GAAe,MAEfC,EAA2B,IAAI,YAC1C,6CACF,EACaC,GAA0B,IAAI,YACzC,8CACF,EACaC,GAA+B,IAAI,YAC9C,8CACF,EACaC,GAA+B,IAAI,YAC9C,8CACF,EAEaC,GAAsB,IAAI,YACrC,8CACF,EACaC,GAAqB,IAAI,YACpC,8CACF,EACaC,GAA0B,IAAI,YACzC,8CACF,EACaC,EAA0B,IAAI,YACzC,8CACF,EColEO,IAAMC,GAAmB,CAC9B,QAAS,QACT,KAAM,eACN,aAAc,CACZ,CACE,KAAM,WACN,SAAU,CACR,CACE,KAAM,QACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,iBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,aACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,gBACX,CACF,CACF,CACF,EACA,CACE,KAAM,UACN,SAAU,CACR,CACE,KAAM,OACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,mBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,iBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,oBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,eACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,OACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,kBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,aACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,eACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,eACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,yBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,gBACN,KAAM,CACJ,QAAS,eACX,CACF,EACA,CACE,KAAM,aACN,KAAM,CACJ,QAAS,gBACX,CACF,CACF,EACA,QAAS,CACP,QAAS,kBACX,CACF,EACA,CACE,KAAM,aACN,SAAU,CACR,CACE,KAAM,OACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,iBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,WACN,MAAO,GACP,SAAU,GACV,KAAM,CAAC,4CAA4C,CACrD,EACA,CACE,KAAM,OACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,kBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,aACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,eACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,gBACN,KAAM,CACJ,QAAS,eACX,CACF,EACA,CACE,KAAM,aACN,KAAM,CACJ,QAAS,gBACX,CACF,CACF,EACA,QAAS,CACP,QAAS,kBACX,CACF,EACA,CACE,KAAM,WACN,SAAU,CACR,CACE,KAAM,QACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,aACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,iBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,cACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,gBACX,CACF,CACF,CACF,EACA,CACE,KAAM,iBACN,SAAU,CACR,CACE,KAAM,QACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,aACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,iBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,eACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,sBACX,CACF,CACF,CACF,EACA,CACE,KAAM,iBACN,SAAU,CACR,CACE,KAAM,QACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,iBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,cACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,sBACX,CACF,CACF,CACF,EACA,CACE,KAAM,YACN,SAAU,CACR,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,cACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,iBACX,CACF,CACF,CACF,EACA,CACE,KAAM,oBACN,SAAU,CACR,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,iBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,cACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,yBACX,CACF,CACF,CACF,EACA,CACE,KAAM,WACN,SAAU,CACR,CACE,KAAM,eACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,eACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,cACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,cACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,gBACX,CACF,CACF,CACF,EACA,CACE,KAAM,mBACN,SAAU,CACR,CACE,KAAM,eACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,cACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,cACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,wBACX,CACF,CACF,CACF,EACA,CACE,KAAM,mBACN,SAAU,CACR,CACE,KAAM,QACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,iBACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,wBACX,CACF,CACF,CACF,EACA,CACE,KAAM,YACN,SAAU,CACR,CACE,KAAM,aACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,OACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,kBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,iBACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,eACX,CACF,CACF,EACA,QAAS,CACP,QAAS,cACX,CACF,EACA,CACE,KAAM,YACN,SAAU,CACR,CACE,KAAM,QACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,OACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,aACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,oBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,mBACN,MAAO,GACP,SAAU,GACV,KAAM,CAAC,OAAO,CAChB,EACA,CACE,KAAM,YACN,MAAO,GACP,SAAU,GACV,KAAM,CAAC,OAAO,CAChB,EACA,CACE,KAAM,WACN,MAAO,GACP,SAAU,GACV,KAAM,CAAC,OAAO,CAChB,EACA,CACE,KAAM,uBACN,MAAO,GACP,SAAU,GACV,KAAM,CAAC,WAAW,CACpB,EACA,CACE,KAAM,iBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,oBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,eACN,MAAO,GACP,SAAU,GACV,KAAM,CAAC,+CAA+C,CACxD,EACA,CACE,KAAM,yBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,iBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,UACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,qBACX,CACF,CACF,CACF,EACA,CACE,KAAM,iBACN,SAAU,CACR,CACE,KAAM,aACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,cACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,qBACX,CACF,CACF,EACA,QAAS,CACP,IAAK,CACH,QAAS,+BACX,CACF,CACF,EACA,CACE,KAAM,eACN,SAAU,CACR,CACE,KAAM,QACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,OACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,aACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,oBACX,CACF,CACF,CACF,EACA,CACE,KAAM,cACN,SAAU,CACR,CACE,KAAM,QACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,aACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,mBACX,CACF,CACF,CACF,EACA,CACE,KAAM,gBACN,SAAU,CACR,CACE,KAAM,QACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,aACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,qBACX,CACF,CACF,CACF,EACA,CACE,KAAM,UACN,SAAU,CACR,CACE,KAAM,QACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,OACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,aACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,eACX,CACF,CACF,CACF,EACA,CACE,KAAM,qBACN,SAAU,CACR,CACE,KAAM,QACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,kBACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,aACN,MAAO,GACP,SAAU,EACZ,EACA,CACE,KAAM,gBACN,MAAO,GACP,SAAU,EACZ,CACF,EACA,KAAM,CACJ,CACE,KAAM,SACN,KAAM,CACJ,QAAS,0BACX,CACF,CACF,CACF,CACF,EACA,SAAU,CACR,CACE,KAAM,kBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,OACN,KAAM,OACR,EACA,CACE,KAAM,cACN,KAAM,OACR,EACA,CACE,KAAM,OACN,KAAM,IACR,CACF,CACF,CACF,EACA,CACE,KAAM,aACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,kBACN,KAAM,WACR,EACA,CACE,KAAM,OACN,KAAM,IACR,EACA,CACE,KAAM,QACN,KAAM,WACR,CACF,CACF,CACF,EACA,CACE,KAAM,6BACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,aACN,KAAM,WACR,EACA,CACE,KAAM,cACN,KAAM,WACR,CACF,CACF,CACF,EACA,CACE,KAAM,cACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,OACN,KAAM,IACR,EACA,CACE,KAAM,cACN,KAAM,WACR,EACA,CACE,KAAM,kBACN,KAAM,WACR,EACA,CACE,KAAM,WACN,KAAM,WACR,EACA,CACE,KAAM,kBACN,KAAM,WACR,EACA,CACE,KAAM,WACN,KAAM,WACR,EACA,CACE,KAAM,kBACN,KAAM,WACR,EACA,CACE,KAAM,WACN,KAAM,WACR,CACF,CACF,CACF,EACA,CACE,KAAM,OACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,UACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,cACN,KAAM,CACJ,OAAQ,CACN,QAAS,aACX,CACF,CACF,EACA,CACE,KAAM,OACN,KAAM,IACR,CACF,CACF,CACF,EACA,CACE,KAAM,gBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,aACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,UACN,KAAM,MACR,EACA,CACE,KAAM,OACN,KAAM,IACR,CACF,CACF,CACF,EACA,CACE,KAAM,eACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,cACN,KAAM,WACR,EACA,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,gBACN,KAAM,IACR,EACA,CACE,KAAM,UACN,KAAM,MACR,EACA,CACE,KAAM,OACN,KAAM,IACR,CACF,CACF,CACF,EACA,CACE,KAAM,cACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,WACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,UACN,KAAM,MACR,EACA,CACE,KAAM,OACN,KAAM,IACR,CACF,CACF,CACF,EACA,CACE,KAAM,iBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,OACN,KAAM,CAAC,uCAAuC,EAC9C,KAAM,IACR,EACA,CACE,KAAM,QACN,KAAM,WACR,EACA,CACE,KAAM,eACN,KAAM,KACR,EACA,CACE,KAAM,gBACN,KAAM,MACR,EACA,CACE,KAAM,eACN,KAAM,KACR,EACA,CACE,KAAM,SACN,KAAM,KACR,EACA,CACE,KAAM,aACN,KAAM,MACR,CACF,CACF,CACF,EACA,CACE,KAAM,iBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,aACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,cACN,KAAM,KACR,EACA,CACE,KAAM,UACN,KAAM,MACR,EACA,CACE,KAAM,OACN,KAAM,IACR,CACF,CACF,CACF,EACA,CACE,KAAM,gBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,cACN,KAAM,WACR,EACA,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,gBACN,KAAM,IACR,EACA,CACE,KAAM,aACN,KAAM,IACR,EACA,CACE,KAAM,UACN,KAAM,MACR,EACA,CACE,KAAM,OACN,KAAM,IACR,CACF,CACF,CACF,CACF,EACA,MAAO,CACL,CACE,KAAM,qBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,aACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,cACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,aACN,KAAM,MACR,EACA,CACE,KAAM,cACN,KAAM,MACR,EACA,CACE,KAAM,uBACN,KAAM,KACR,CACF,CACF,CACF,EACA,CACE,KAAM,YACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,UACN,KAAM,IACR,EACA,CACE,KAAM,UACN,KAAM,OACR,CACF,CACF,CACF,EACA,CACE,KAAM,qBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,SACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,WACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,cACN,KAAM,KACR,EACA,CACE,KAAM,aACN,KAAM,IACR,EACA,CACE,KAAM,cACN,KAAM,KACR,EACA,CACE,KAAM,MACN,KAAM,KACR,EACA,CACE,KAAM,UACN,KAAM,KACR,EACA,CACE,KAAM,gBACN,KAAM,KACR,CACF,CACF,CACF,EACA,CACE,KAAM,sBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,SACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,WACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,aACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,cACN,KAAM,KACR,EACA,CACE,KAAM,MACN,KAAM,MACR,EACA,CACE,KAAM,UACN,KAAM,MACR,EACA,CACE,KAAM,gBACN,KAAM,KACR,CACF,CACF,CACF,EACA,CACE,KAAM,iBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,QACN,KAAM,WACR,EACA,CACE,KAAM,cACN,KAAM,WACR,EACA,CACE,KAAM,kBACN,KAAM,CACJ,OAAQ,WACV,CACF,CACF,CACF,CACF,EACA,CACE,KAAM,sBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,SACN,KAAM,KACR,EACA,CACE,KAAM,SACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,QACN,KAAM,KACR,EACA,CACE,KAAM,OACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,UACN,KAAM,OACR,EACA,CACE,KAAM,YACN,KAAM,OACR,CACF,CACF,CACF,EACA,CACE,KAAM,eACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,YACN,KAAM,KACR,EACA,CACE,KAAM,aACN,KAAM,KACR,CACF,CACF,CACF,EACA,CACE,KAAM,uBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,cACN,KAAM,WACR,EACA,CACE,KAAM,kBACN,KAAM,WACR,EACA,CACE,KAAM,WACN,KAAM,WACR,EACA,CACE,KAAM,kBACN,KAAM,WACR,EACA,CACE,KAAM,WACN,KAAM,WACR,EACA,CACE,KAAM,kBACN,KAAM,WACR,EACA,CACE,KAAM,WACN,KAAM,WACR,CACF,CACF,CACF,EACA,CACE,KAAM,oBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,WACN,KAAM,WACR,CACF,CACF,CACF,EACA,CACE,KAAM,2BACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,SACN,KAAM,KACR,EACA,CACE,KAAM,OACN,KAAM,OACR,EACA,CACE,KAAM,cACN,KAAM,OACR,CACF,CACF,CACF,EACA,CACE,KAAM,gBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,SACN,KAAM,KACR,EACA,CACE,KAAM,OACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,CACF,CACF,CACF,EACA,CACE,KAAM,qBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,SACN,KAAM,KACR,EACA,CACE,KAAM,kBACN,KAAM,CACJ,OAAQ,KACV,CACF,EACA,CACE,KAAM,WACN,KAAM,CACJ,OAAQ,KACV,CACF,EACA,CACE,KAAM,UACN,KAAM,MACR,CACF,CACF,CACF,EACA,CACE,KAAM,sBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,QACN,KAAM,WACR,CACF,CACF,CACF,EACA,CACE,KAAM,gBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,aACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,cACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,cACN,KAAM,KACR,CACF,CACF,CACF,EACA,CACE,KAAM,iBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,YACN,KAAM,KACR,EACA,CACE,KAAM,aACN,KAAM,KACR,CACF,CACF,CACF,EACA,CACE,KAAM,kBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,oBACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,aACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,UACN,KAAM,MACR,CACF,CACF,CACF,EACA,CACE,KAAM,uBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,WACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,iBACN,KAAM,WACR,EACA,CACE,KAAM,UACN,KAAM,MACR,CACF,CACF,CACF,EACA,CACE,KAAM,yBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,gBACN,KAAM,MACR,EACA,CACE,KAAM,QACN,KAAM,KACR,CACF,CACF,CACF,EACA,CACE,KAAM,iBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,mBACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,cACN,KAAM,WACR,EACA,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,UACN,KAAM,MACR,CACF,CACF,CACF,EACA,CACE,KAAM,iBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,QACN,KAAM,WACR,EACA,CACE,KAAM,eACN,KAAM,KACR,EACA,CACE,KAAM,gBACN,KAAM,MACR,EACA,CACE,KAAM,eACN,KAAM,KACR,EACA,CACE,KAAM,SACN,KAAM,KACR,EACA,CACE,KAAM,aACN,KAAM,MACR,CACF,CACF,CACF,EACA,CACE,KAAM,0BACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,oBACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,aACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,cACN,KAAM,KACR,EACA,CACE,KAAM,UACN,KAAM,MACR,CACF,CACF,CACF,EACA,CACE,KAAM,yBACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,mBACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,CACF,EACA,CACE,KAAM,aACN,KAAM,IACR,EACA,CACE,KAAM,UACN,KAAM,MACR,CACF,CACF,CACF,EACA,CACE,KAAM,cACN,KAAM,CACJ,KAAM,SACN,OAAQ,CACN,CACE,KAAM,WACN,KAAM,KACR,EACA,CACE,KAAM,SACN,KAAM,KACR,EACA,CACE,KAAM,kBACN,KAAM,KACR,EACA,CACE,KAAM,iBACN,KAAM,KACR,CACF,CACF,CACF,EACA,CACE,KAAM,YACN,KAAM,CACJ,KAAM,OACN,SAAU,CACR,CACE,KAAM,cACR,EACA,CACE,KAAM,eACR,EACA,CACE,KAAM,iBACR,EACA,CACE,KAAM,gBACR,EACA,CACE,KAAM,wBACR,EACA,CACE,KAAM,mBACR,EACA,CACE,KAAM,gBACR,EACA,CACE,KAAM,qBACR,EACA,CACE,KAAM,6BACR,EACA,CACE,KAAM,0BACR,EACA,CACE,KAAM,oBACR,EACA,CACE,KAAM,mBACR,CACF,CACF,CACF,EACA,CACE,KAAM,UACN,KAAM,CACJ,KAAM,OACN,SAAU,CACR,CACE,KAAM,SACR,EACA,CACE,KAAM,UACR,EACA,CACE,KAAM,eACR,EACA,CACE,KAAM,eACR,CACF,CACF,CACF,CACF,EACA,OAAQ,CACN,CACE,KAAM,mBACN,OAAQ,CACN,CACE,KAAM,aACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,CACF,CACF,EACA,CACE,KAAM,qBACN,OAAQ,CACN,CACE,KAAM,aACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,CACF,CACF,EACA,CACE,KAAM,kBACN,OAAQ,CACN,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,cACN,KAAM,YACN,MAAO,EACT,CACF,CACF,EACA,CACE,KAAM,oBACN,OAAQ,CACN,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,cACN,KAAM,YACN,MAAO,EACT,CACF,CACF,EACA,CACE,KAAM,wBACN,OAAQ,CACN,CACE,KAAM,aACN,KAAM,KACN,MAAO,EACT,EACA,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,cACN,KAAM,YACN,MAAO,EACT,CACF,CACF,EACA,CACE,KAAM,0BACN,OAAQ,CACN,CACE,KAAM,aACN,KAAM,KACN,MAAO,EACT,EACA,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,cACN,KAAM,YACN,MAAO,EACT,CACF,CACF,EACA,CACE,KAAM,yBACN,OAAQ,CACN,CACE,KAAM,aACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,cACN,KAAM,MACN,MAAO,EACT,CACF,CACF,EACA,CACE,KAAM,2BACN,OAAQ,CACN,CACE,KAAM,aACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,cACN,KAAM,MACN,MAAO,EACT,CACF,CACF,EACA,CACE,KAAM,aACN,OAAQ,CACN,CACE,KAAM,WACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,iBACN,KAAM,YACN,MAAO,EACT,EACA,CACE,KAAM,UACN,KAAM,OACN,MAAO,EACT,CACF,CACF,EACA,CACE,KAAM,YACN,OAAQ,CACN,CACE,KAAM,OACN,KAAM,YACN,MAAO,EACT,EACA,CACE,KAAM,SACN,KAAM,MACN,MAAO,EACT,CACF,CACF,EACA,CACE,KAAM,YACN,OAAQ,CACN,CACE,KAAM,OACN,KAAM,YACN,MAAO,EACT,EACA,CACE,KAAM,SACN,KAAM,MACN,MAAO,EACT,CACF,CACF,EACA,CACE,KAAM,aACN,OAAQ,CACN,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,WACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,uBACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,gBACN,KAAM,MACN,MAAO,EACT,CACF,CACF,EACA,CACE,KAAM,iBACN,OAAQ,CACN,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,aACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,cACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,aACN,KAAM,OACN,MAAO,EACT,EACA,CACE,KAAM,cACN,KAAM,MACN,MAAO,EACT,EACA,CACE,KAAM,uBACN,KAAM,MACN,MAAO,EACT,CACF,CACF,EACA,CACE,KAAM,iBACN,OAAQ,CACN,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,SACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,WACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,aACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,cACN,KAAM,MACN,MAAO,EACT,EACA,CACE,KAAM,MACN,KAAM,OACN,MAAO,EACT,EACA,CACE,KAAM,UACN,KAAM,OACN,MAAO,EACT,EACA,CACE,KAAM,gBACN,KAAM,MACN,MAAO,EACT,CACF,CACF,EACA,CACE,KAAM,kBACN,OAAQ,CACN,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,SACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,WACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,aACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,YACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,cACN,KAAM,MACN,MAAO,EACT,EACA,CACE,KAAM,MACN,KAAM,OACN,MAAO,EACT,EACA,CACE,KAAM,UACN,KAAM,OACN,MAAO,EACT,EACA,CACE,KAAM,gBACN,KAAM,MACN,MAAO,EACT,CACF,CACF,EACA,CACE,KAAM,WACN,OAAQ,CACN,CACE,KAAM,OACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,SACN,KAAM,MACN,MAAO,EACT,CACF,CACF,EACA,CACE,KAAM,eACN,OAAQ,CACN,CACE,KAAM,OACN,KAAM,CACJ,MAAO,CAAC,KAAM,EAAE,CAClB,EACA,MAAO,EACT,EACA,CACE,KAAM,SACN,KAAM,MACN,MAAO,EACT,CACF,CACF,CACF,EACA,OAAQ,CACN,CACE,KAAM,IACN,KAAM,oBACN,IAAK,iDACP,EACA,CACE,KAAM,KACN,KAAM,+BACN,IAAK,uCACP,EACA,CACE,KAAM,KACN,KAAM,mBACN,IAAK,uBACP,EACA,CACE,KAAM,KACN,KAAM,kBACN,IAAK,sBACP,EACA,CACE,KAAM,KACN,KAAM,mBACN,IAAK,sBACP,EACA,CACE,KAAM,KACN,KAAM,oBACN,IAAK,0CACP,EACA,CACE,KAAM,KACN,KAAM,wBACN,IAAK,6BACP,CACF,CACF,EC5yIA,IAAAC,EAeO,2CACPC,GAA8C,6BAC9CC,EAAsC,2BA4B/B,IAAMC,EAAmB,CAC9BC,EACAC,OAEqB,kCAA8BD,EAAOC,EAAO,EAAI,EAIhE,SAASC,GAAqBC,EAAwC,CAC3E,OAAO,YAAU,uBACf,CAAC,OAAO,KAAKC,GAAsB,MAAM,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","names":["src_exports","__export","DefaultSolanaWalletAdapter","version_default","__toCommonJS","version_default","ed","import_spl_token","import_wallet_adapter_base","import_web3","import_bs58","import_utils","import_orderly_core","import_orderly_types","import_anchor","import_web3","import_bs58","import_keccak","import_utils","import_ethers","import_orderly_core","import_orderly_types","import_lz_v2_utilities","import_web3","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","SOL_VAULT_SEED","DEV_PEER_ADDRESS","QA_PEER_ADDRESS","STAGING_PEER_ADDRESS","MAINNET_PEER_ADDRESS","DEV_DST_EID","MAIN_DST_EID","DEV_LOOKUP_TABLE_ADDRESS","QA_LOOKUP_TABLE_ADDRESS","STAGING_LOOKUP_TABLE_ADDRESS","MAINNET_LOOKUP_TABLE_ADDRESS","DEV_OAPP_PROGRAM_ID","QA_OAPP_PROGRAM_ID","STAGING_OAPP_PROGRAM_ID","MAINNET_OAPP_PROGRAM_ID","IDL","import_lz_solana_sdk_v2","import_spl_token","import_web3","getTokenAccounts","token","owner","getVaultAuthorityPda","VAULT_PROGRAM_ID","VAULT_AUTHORITY_SEED","getSolVaultPda","SOL_VAULT_SEED","getBrokerPDA","programId","brokerHash","hash","BROKER_SEED","getTokenPDA","tokenHash","TOKEN_SEED","getOAppConfigPda","getPeerPda","OAPP_PROGRAM_ID","oappConfigPda","dstEid","bufferDstEid","getEndorcedOptionsPda","getSendLibPda","SEND_LIB_PROGRAM_ID","getSendLibConfigPda","ENDPOINT_PROGRAM_ID","getDefaultSendLibConfigPda","getSendLibInfoPda","sendLibPda","getEndpointSettingPda","getPeerAddress","peer_address","DEV_PEER_ADDRESS","DEV_OAPP_PROGRAM_ID","QA_OAPP_PROGRAM_ID","QA_PEER_ADDRESS","STAGING_OAPP_PROGRAM_ID","STAGING_PEER_ADDRESS","MAINNET_OAPP_PROGRAM_ID","MAINNET_PEER_ADDRESS","getNoncePda","getEventAuthorityPda","getUlnSettingPda","getSendConfigPda","getDefaultSendConfigPda","RECEIVE_LIB_PROGRAM_ID","getUlnEventAuthorityPda","getExecutorConfigPda","EXECUTOR_PROGRAM_ID","getPriceFeedPda","PRICE_FEED_PROGRAM_ID","getDvnConfigPda","DVN_PROGRAM_ID","getDstEID","MAIN_DST_EID","DEV_DST_EID","getLookupTableAddress","DEV_LOOKUP_TABLE_ADDRESS","QA_LOOKUP_TABLE_ADDRESS","STAGING_LOOKUP_TABLE_ADDRESS","MAINNET_LOOKUP_TABLE_ADDRESS","getMessageLibPda","programId","getMessageLibInfoPda","msgLibPda","getLookupTableAccount","connection","lookupTableAddress","__async","addOrderlyKeyMessage","inputs","publicKey","brokerId","expiration","timestamp","scope","tag","chainId","subAccountId","message","__spreadValues","brokerIdHash","orderlyKeyHash","scopeHash","abicoder","msgToSign","msgToSignHex","msgToSignTextEncoded","registerAccountMessage","registrationNonce","internalTransferMessage","receiver","token","amount","nonce","tokenSymbolHash","dexRequestMessage","__async","payloadType","vaultId","dexBrokerId","receiverBytes","bs58Decode","vaultIdBytes","tokenHash","dexBrokerIdHash","withdrawMessage","salt","settleMessage","settlePnlNonce","getDepositQuoteFee","_0","__async","vaultAddress","userAddress","connection","depositData","appProgramId","DST_EID","getDstEID","program","IDL","userPublicKey","oappConfigPDA","getOAppConfigPda","peerPDA","getPeerPda","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","feeTx","feeRes","errorInfo","returnPrefix","returnLogEntry","log","encodedReturnData","decodedBuffer","brokerHash","codedBrokerHash","tokenHash","codedTokenHash","solAccountId","codedAccountId","deposit","sendTransaction","SOL_HASH","CoreUtils","isSolDeposit","token","userTokenAccount","getTokenAccounts","vaultAuthorityPda","vaultTokenAccount","allowedBrokerPDA","getBrokerPDA","allowedTokenPDA","getTokenPDA","sendLibPDA","getSendLibPda","sendLibInfoPDA","getSendLibInfoPda","eventAuthorityPDA","getEventAuthorityPda","ulnSettingPDA","getUlnSettingPda","ulnEventAuthorityPDA","getUlnEventAuthorityPda","vaultDepositParams","buildSendRemainingAccounts","TREASURY_PROGRAM_ID","fee","sendParam","ixDepositEntry","getSolVaultPda","ixAddComputeBudget","msg","tx","res","checkIsLedgerWallet","info","addressArr","DefaultSolanaWalletAdapter","__publicField","chainId","account","url","info","init","fetch","__async","payload","signature","key","config","name","data","privKey","secretKey","bs58encode","uint8Array","byte","message","checkIsLedgerWallet","transaction","userPublicKey","zeroHash","signRes","inputs","toSignatureMessage","registerAccountMessage","__spreadProps","__spreadValues","withdrawMessage","internalTransferMessage","addOrderlyKeyMessage","settleMessage","dexRequestMessage","publicKey","lamports","address","method","params","options","tokenPublicKey","userTokenAccount","getTokenAccounts","connection","contractAddress","deposit","chain","getDepositQuoteFee","txHash","baseInterval","maxInterval","maxRetries"]}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var Ba=Object.defineProperty,Ka=Object.defineProperties;var Oa=Object.getOwnPropertyDescriptors;var He=Object.getOwnPropertySymbols;var Ca=Object.prototype.hasOwnProperty,La=Object.prototype.propertyIsEnumerable;var ue=(a,n,e)=>n in a?Ba(a,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[n]=e,p=(a,n)=>{for(var e in n||(n={}))Ca.call(n,e)&&ue(a,e,n[e]);if(He)for(var e of He(n))La.call(n,e)&&ue(a,e,n[e]);return a},g=(a,n)=>Ka(a,Oa(n));var C=(a,n,e)=>(ue(a,typeof n!="symbol"?n+"":n,e),e);var c=(a,n,e)=>new Promise((s,r)=>{var t=u=>{try{m(e.next(u))}catch(i){r(i)}},o=u=>{try{m(e.throw(u))}catch(i){r(i)}},m=u=>u.done?s(u.value):Promise.resolve(u.value).then(t,o);m((e=e.apply(a,n)).next())});typeof window!="undefined"&&(window.__ORDERLY_VERSION__=window.__ORDERLY_VERSION__||{},window.__ORDERLY_VERSION__["@kodiak-finance/orderly-default-solana-adapter"]="2.7.4");var Ha="2.7.4";import*as Ia from"@noble/ed25519";import{getAccount as an}from"@solana/spl-token";import{WalletAdapterNetwork as nn}from"@solana/wallet-adapter-base";import{clusterApiUrl as tn,Connection as _e,PublicKey as D,Transaction as sn,TransactionInstruction as Be}from"@solana/web3.js";import{encode as rn}from"bs58";import{bytesToHex as on}from"ethereum-cryptography/utils";import{BaseWalletAdapter as un,SimpleDI as mn}from"@kodiak-finance/orderly-core";import{MaxUint256 as dn,ChainNamespace as ln}from"@kodiak-finance/orderly-types";import{BN as ve,Program as ca}from"@coral-xyz/anchor";import{ComputeBudgetProgram as Za,PublicKey as L,SystemProgram as Xa,TransactionMessage as pa,VersionedTransaction as fa}from"@solana/web3.js";import{decode as ya}from"bs58";import{keccak256 as I}from"ethereum-cryptography/keccak";import{bytesToHex as H,hexToBytes as R}from"ethereum-cryptography/utils";import{AbiCoder as N,solidityPackedKeccak256 as x}from"ethers";import{utils as Ja}from"@kodiak-finance/orderly-core";import{DEFAUL_ORDERLY_KEY_SCOPE as $a,LedgerWalletKey as en}from"@kodiak-finance/orderly-types";import{addressToBytes32 as Q}from"@layerzerolabs/lz-v2-utilities";import{PublicKey as S}from"@solana/web3.js";var k=new S("76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6"),b=new S("7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH"),U=new S("6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn"),v=new S("8ahPGPjEbpgGaZx2NV1iG5Shj7TDwvsjkEDcGWjt94TP"),Ne=b,We=b,V=new S("HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW"),Ue="VaultAuthority",Ve="Broker",Ge="Token",Fe="SolVault",me=Q("0x9Dc724b24146BeDD2dA28b8C4B74126169B8f312"),ze=Q("0x45b6C6266A7A2170617d8A27A50C642fd68b91c4"),Ye=Q("0x5Bf771A65d057e778C5f0Ed52A0003316f94322D"),qe=Q("0xCecAe061aa078e13b5e70D5F9eCee90a3F2B6AeA"),Qe=40200,je=30213,j=new S("BWp8HaYYhiNHekt3zgQhqoCrRftneGxxfgKmCZ6svHN"),Ze=new S("BswrQQoPKAFojTuJutZcBMtigAgTghEH4M8ofn3EG2X2"),Xe=new S("BbGKfxuPwDmu58BjPpd7PMG69TqnZjSpKaLDMgf9E9Dr"),Je=new S("8iq7xCQt3bLdRRn4A46d5GuaXYinBoiAhbe2sUmZVzwg"),de=new S("EYJq9eU4GMRUriUJBgGoZ8YLQBXcWaciXuSsEXE7ieQS"),le=new S("5zBjLor7vEraAt4zp2H82sy9MSqFoDnNa1Lx6EYKTYRZ"),ce=new S("9shwxWDUNhtwkHocsUAmrNAQfBH2DHh4njdAEdHZZkF2"),Z=new S("ErBmAD61mGFKvrFNaTJuxoPwqrS8GgtwtqJTJVjFWx9Q");var pe={version:"0.1.0",name:"solana_vault",instructions:[{name:"setVault",accounts:[{name:"admin",isMut:!0,isSigner:!0},{name:"vaultAuthority",isMut:!0,isSigner:!1},{name:"oappConfig",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetVaultParams"}}]},{name:"deposit",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"userTokenAccount",isMut:!0,isSigner:!1},{name:"vaultAuthority",isMut:!0,isSigner:!1},{name:"vaultTokenAccount",isMut:!0,isSigner:!1},{name:"depositToken",isMut:!1,isSigner:!1},{name:"peer",isMut:!1,isSigner:!1},{name:"enforcedOptions",isMut:!1,isSigner:!1},{name:"oappConfig",isMut:!1,isSigner:!1},{name:"allowedBroker",isMut:!1,isSigner:!1},{name:"allowedToken",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"associatedTokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"depositParams",type:{defined:"DepositParams"}},{name:"oappParams",type:{defined:"OAppSendParams"}}],returns:{defined:"MessagingReceipt"}},{name:"depositSol",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"vaultAuthority",isMut:!0,isSigner:!1},{name:"solVault",isMut:!0,isSigner:!1,docs:["CHECKED: sol_vault is used for SOL deposit"]},{name:"peer",isMut:!1,isSigner:!1},{name:"enforcedOptions",isMut:!1,isSigner:!1},{name:"oappConfig",isMut:!1,isSigner:!1},{name:"allowedBroker",isMut:!1,isSigner:!1},{name:"allowedToken",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"depositParams",type:{defined:"DepositParams"}},{name:"oappParams",type:{defined:"OAppSendParams"}}],returns:{defined:"MessagingReceipt"}},{name:"initOapp",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"oappConfig",isMut:!0,isSigner:!1},{name:"lzReceiveTypes",isMut:!0,isSigner:!1},{name:"accountList",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"InitOAppParams"}}]},{name:"setAccountList",accounts:[{name:"admin",isMut:!0,isSigner:!0},{name:"oappConfig",isMut:!1,isSigner:!1},{name:"lzReceiveTypes",isMut:!0,isSigner:!1},{name:"accountsList",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetAccountListParams"}}]},{name:"setManagerRole",accounts:[{name:"owner",isMut:!0,isSigner:!0},{name:"vaultAuthority",isMut:!0,isSigner:!1},{name:"managerRole",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetManagerRoleParams"}}]},{name:"setBroker",accounts:[{name:"brokerManager",isMut:!0,isSigner:!0},{name:"allowedBroker",isMut:!0,isSigner:!1},{name:"managerRole",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetBrokerParams"}}]},{name:"setWithdrawBroker",accounts:[{name:"brokerManager",isMut:!0,isSigner:!0},{name:"withdrawBroker",isMut:!0,isSigner:!1},{name:"managerRole",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetWithdrawBrokerParams"}}]},{name:"setToken",accounts:[{name:"tokenManager",isMut:!0,isSigner:!0},{name:"allowedToken",isMut:!0,isSigner:!1},{name:"managerRole",isMut:!1,isSigner:!1},{name:"mintAccount",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetTokenParams"}}]},{name:"setWithdrawToken",accounts:[{name:"tokenManager",isMut:!0,isSigner:!0},{name:"withdrawToken",isMut:!0,isSigner:!1},{name:"managerRole",isMut:!1,isSigner:!1},{name:"mintAccount",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetWithdrawTokenParams"}}]},{name:"setOrderDelivery",accounts:[{name:"owner",isMut:!0,isSigner:!0},{name:"vaultAuthority",isMut:!0,isSigner:!1}],args:[{name:"params",type:{defined:"SetOrderDeliveryParams"}}]},{name:"oappQuote",accounts:[{name:"oappConfig",isMut:!1,isSigner:!1},{name:"peer",isMut:!1,isSigner:!1},{name:"enforcedOptions",isMut:!1,isSigner:!1},{name:"vaultAuthority",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"DepositParams"}}],returns:{defined:"MessagingFee"}},{name:"lzReceive",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"peer",isMut:!1,isSigner:!1},{name:"oappConfig",isMut:!1,isSigner:!1},{name:"withdrawBrokerPda",isMut:!1,isSigner:!1},{name:"withdrawTokenPda",isMut:!1,isSigner:!1,docs:["CHECK"]},{name:"tokenMint",isMut:!1,isSigner:!1,docs:["CHECK"]},{name:"receiver",isMut:!0,isSigner:!1,docs:["CHECK"]},{name:"receiverTokenAccount",isMut:!0,isSigner:!1,docs:["UNCHECKED"]},{name:"vaultAuthority",isMut:!0,isSigner:!1},{name:"vaultTokenAccount",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1,docs:["CHECKED: sol_vault is used for SOL withdrawal"]},{name:"associatedTokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"program",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"OAppLzReceiveParams"}}]},{name:"lzReceiveTypes",accounts:[{name:"oappConfig",isMut:!1,isSigner:!1},{name:"accountList",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"OAppLzReceiveParams"}}],returns:{vec:{defined:"oapp::endpoint_cpi::LzAccount"}}},{name:"setRateLimit",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"peer",isMut:!0,isSigner:!1},{name:"oappConfig",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetRateLimitParams"}}]},{name:"setDelegate",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"oappConfig",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetDelegateParams"}}]},{name:"transferAdmin",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"oappConfig",isMut:!0,isSigner:!1}],args:[{name:"params",type:{defined:"TransferAdminParams"}}]},{name:"setPeer",accounts:[{name:"admin",isMut:!0,isSigner:!0},{name:"peer",isMut:!0,isSigner:!1},{name:"oappConfig",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetPeerParams"}}]},{name:"setEnforcedOptions",accounts:[{name:"admin",isMut:!0,isSigner:!0},{name:"enforcedOptions",isMut:!0,isSigner:!1},{name:"oappConfig",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetEnforcedOptionsParams"}}]}],accounts:[{name:"enforcedOptions",type:{kind:"struct",fields:[{name:"send",type:"bytes"},{name:"sendAndCall",type:"bytes"},{name:"bump",type:"u8"}]}},{name:"oAppConfig",type:{kind:"struct",fields:[{name:"endpointProgram",type:"publicKey"},{name:"bump",type:"u8"},{name:"admin",type:"publicKey"}]}},{name:"oAppLzReceiveTypesAccounts",type:{kind:"struct",fields:[{name:"oappConfig",type:"publicKey"},{name:"accountList",type:"publicKey"}]}},{name:"accountList",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"woofiProPda",type:"publicKey"},{name:"withdrawUsdcPda",type:"publicKey"},{name:"usdcMint",type:"publicKey"},{name:"withdrawUsdtPda",type:"publicKey"},{name:"usdtMint",type:"publicKey"},{name:"withdrawWsolPda",type:"publicKey"},{name:"wsolMint",type:"publicKey"}]}},{name:"peer",type:{kind:"struct",fields:[{name:"address",type:{array:["u8",32]}},{name:"rateLimiter",type:{option:{defined:"RateLimiter"}}},{name:"bump",type:"u8"}]}},{name:"allowedBroker",type:{kind:"struct",fields:[{name:"brokerHash",type:{array:["u8",32]}},{name:"allowed",type:"bool"},{name:"bump",type:"u8"}]}},{name:"allowedToken",type:{kind:"struct",fields:[{name:"mintAccount",type:"publicKey"},{name:"tokenHash",type:{array:["u8",32]}},{name:"tokenDecimals",type:"u8"},{name:"allowed",type:"bool"},{name:"bump",type:"u8"}]}},{name:"managerRole",type:{kind:"struct",fields:[{name:"roleHash",type:{array:["u8",32]}},{name:"allowed",type:"bool"},{name:"bump",type:"u8"}]}},{name:"vaultAuthority",type:{kind:"struct",fields:[{name:"bump",docs:["Bump seed for the vault authority PDA"],type:"u8"},{name:"owner",type:"publicKey"},{name:"depositNonce",type:"u64"},{name:"orderDelivery",type:"bool"},{name:"inboundNonce",type:"u64"},{name:"dstEid",type:"u32"},{name:"solChainId",type:"u128"}]}},{name:"withdrawBroker",type:{kind:"struct",fields:[{name:"brokerHash",type:{array:["u8",32]}},{name:"brokerIndex",type:"u16"},{name:"allowed",type:"bool"},{name:"bump",type:"u8"}]}},{name:"withdrawToken",type:{kind:"struct",fields:[{name:"mintAccount",type:"publicKey"},{name:"tokenHash",type:{array:["u8",32]}},{name:"tokenDecimals",type:"u8"},{name:"tokenIndex",type:"u8"},{name:"allowed",type:"bool"},{name:"bump",type:"u8"}]}}],types:[{name:"VaultDepositParams",type:{kind:"struct",fields:[{name:"accountId",type:{array:["u8",32]}},{name:"brokerHash",type:{array:["u8",32]}},{name:"userAddress",type:{array:["u8",32]}},{name:"tokenHash",type:{array:["u8",32]}},{name:"srcChainId",type:"u128"},{name:"tokenAmount",type:"u128"},{name:"srcChainDepositNonce",type:"u64"}]}},{name:"LzMessage",type:{kind:"struct",fields:[{name:"msgType",type:"u8"},{name:"payload",type:"bytes"}]}},{name:"AccountWithdrawSol",type:{kind:"struct",fields:[{name:"sender",type:{array:["u8",32]}},{name:"receiver",type:{array:["u8",32]}},{name:"brokerIndex",type:"u16"},{name:"tokenIndex",type:"u8"},{name:"tokenAmount",type:"u64"},{name:"fee",type:"u64"},{name:"chainId",type:"u64"},{name:"withdrawNonce",type:"u64"}]}},{name:"VaultWithdrawParams",type:{kind:"struct",fields:[{name:"accountId",type:{array:["u8",32]}},{name:"sender",type:{array:["u8",32]}},{name:"receiver",type:{array:["u8",32]}},{name:"brokerHash",type:{array:["u8",32]}},{name:"tokenHash",type:{array:["u8",32]}},{name:"tokenAmount",type:"u64"},{name:"fee",type:"u128"},{name:"chainId",type:"u128"},{name:"withdrawNonce",type:"u64"}]}},{name:"InitOAppParams",type:{kind:"struct",fields:[{name:"admin",type:"publicKey"},{name:"accountList",type:"publicKey"},{name:"endpointProgram",type:{option:"publicKey"}}]}},{name:"OAppLzReceiveParams",type:{kind:"struct",fields:[{name:"srcEid",type:"u32"},{name:"sender",type:{array:["u8",32]}},{name:"nonce",type:"u64"},{name:"guid",type:{array:["u8",32]}},{name:"message",type:"bytes"},{name:"extraData",type:"bytes"}]}},{name:"MessagingFee",type:{kind:"struct",fields:[{name:"nativeFee",type:"u64"},{name:"lzTokenFee",type:"u64"}]}},{name:"SetAccountListParams",type:{kind:"struct",fields:[{name:"woofiProPda",type:"publicKey"},{name:"withdrawUsdcPda",type:"publicKey"},{name:"usdcMint",type:"publicKey"},{name:"withdrawUsdtPda",type:"publicKey"},{name:"usdtMint",type:"publicKey"},{name:"withdrawWsolPda",type:"publicKey"},{name:"wsolMint",type:"publicKey"}]}},{name:"SetDelegateParams",type:{kind:"struct",fields:[{name:"delegate",type:"publicKey"}]}},{name:"SetEnforcedOptionsParams",type:{kind:"struct",fields:[{name:"dstEid",type:"u32"},{name:"send",type:"bytes"},{name:"sendAndCall",type:"bytes"}]}},{name:"SetPeerParams",type:{kind:"struct",fields:[{name:"dstEid",type:"u32"},{name:"peer",type:{array:["u8",32]}}]}},{name:"SetRateLimitParams",type:{kind:"struct",fields:[{name:"dstEid",type:"u32"},{name:"refillPerSecond",type:{option:"u64"}},{name:"capacity",type:{option:"u64"}},{name:"enabled",type:"bool"}]}},{name:"TransferAdminParams",type:{kind:"struct",fields:[{name:"admin",type:"publicKey"}]}},{name:"DepositParams",type:{kind:"struct",fields:[{name:"accountId",type:{array:["u8",32]}},{name:"brokerHash",type:{array:["u8",32]}},{name:"tokenHash",type:{array:["u8",32]}},{name:"userAddress",type:{array:["u8",32]}},{name:"tokenAmount",type:"u64"}]}},{name:"OAppSendParams",type:{kind:"struct",fields:[{name:"nativeFee",type:"u64"},{name:"lzTokenFee",type:"u64"}]}},{name:"SetBrokerParams",type:{kind:"struct",fields:[{name:"brokerManagerRole",type:{array:["u8",32]}},{name:"brokerHash",type:{array:["u8",32]}},{name:"allowed",type:"bool"}]}},{name:"SetManagerRoleParams",type:{kind:"struct",fields:[{name:"roleHash",type:{array:["u8",32]}},{name:"managerAddress",type:"publicKey"},{name:"allowed",type:"bool"}]}},{name:"SetOrderDeliveryParams",type:{kind:"struct",fields:[{name:"orderDelivery",type:"bool"},{name:"nonce",type:"u64"}]}},{name:"SetTokenParams",type:{kind:"struct",fields:[{name:"tokenManagerRole",type:{array:["u8",32]}},{name:"mintAccount",type:"publicKey"},{name:"tokenHash",type:{array:["u8",32]}},{name:"allowed",type:"bool"}]}},{name:"SetVaultParams",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"depositNonce",type:"u64"},{name:"orderDelivery",type:"bool"},{name:"inboundNonce",type:"u64"},{name:"dstEid",type:"u32"},{name:"solChainId",type:"u128"}]}},{name:"SetWithdrawBrokerParams",type:{kind:"struct",fields:[{name:"brokerManagerRole",type:{array:["u8",32]}},{name:"brokerHash",type:{array:["u8",32]}},{name:"brokerIndex",type:"u16"},{name:"allowed",type:"bool"}]}},{name:"SetWithdrawTokenParams",type:{kind:"struct",fields:[{name:"tokenManagerRole",type:{array:["u8",32]}},{name:"tokenHash",type:{array:["u8",32]}},{name:"tokenIndex",type:"u8"},{name:"allowed",type:"bool"}]}},{name:"RateLimiter",type:{kind:"struct",fields:[{name:"capacity",type:"u64"},{name:"tokens",type:"u64"},{name:"refillPerSecond",type:"u64"},{name:"lastRefillTime",type:"u64"}]}},{name:"OAppError",type:{kind:"enum",variants:[{name:"Unauthorized"},{name:"InvalidSender"},{name:"InvalidReceiver"},{name:"InvalidOptions"},{name:"InvalidEndpointProgram"},{name:"RateLimitExceeded"},{name:"WithdrawFailed"},{name:"InvalidInboundNonce"},{name:"InvalidReceiverTokenAccount"},{name:"InvalidAdminTokenAccount"},{name:"InvalidMessageType"},{name:"InvalidTokenIndex"}]}},{name:"MsgType",type:{kind:"enum",variants:[{name:"Deposit"},{name:"Withdraw"},{name:"RebalanceBurn"},{name:"RebalanceMint"}]}}],events:[{name:"SetAllowedBroker",fields:[{name:"brokerHash",type:{array:["u8",32]},index:!1}]},{name:"ResetAllowedBroker",fields:[{name:"brokerHash",type:{array:["u8",32]},index:!1}]},{name:"SetAllowedToken",fields:[{name:"tokenHash",type:{array:["u8",32]},index:!1},{name:"mintAccount",type:"publicKey",index:!1}]},{name:"ResetAllowedToken",fields:[{name:"tokenHash",type:{array:["u8",32]},index:!1},{name:"mintAccount",type:"publicKey",index:!1}]},{name:"SetWithdrawTokenIndex",fields:[{name:"tokenIndex",type:"u8",index:!1},{name:"tokenHash",type:{array:["u8",32]},index:!1},{name:"mintAccount",type:"publicKey",index:!1}]},{name:"ResetWithdrawTokenIndex",fields:[{name:"tokenIndex",type:"u8",index:!1},{name:"tokenHash",type:{array:["u8",32]},index:!1},{name:"mintAccount",type:"publicKey",index:!1}]},{name:"SetWithdrawBrokerEvent",fields:[{name:"brokerHash",type:{array:["u8",32]},index:!1},{name:"brokerIndex",type:"u16",index:!1}]},{name:"ResetWithdrawBrokerEvent",fields:[{name:"brokerHash",type:{array:["u8",32]},index:!1},{name:"brokerIndex",type:"u16",index:!1}]},{name:"SetManager",fields:[{name:"roleHash",type:{array:["u8",32]},index:!1},{name:"managerAddress",type:"publicKey",index:!1},{name:"allowed",type:"bool",index:!1}]},{name:"Deposited",fields:[{name:"user",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"Withdrawn",fields:[{name:"user",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"CreatedATA",fields:[{name:"accountId",type:{array:["u8",32]},index:!1},{name:"receiver",type:{array:["u8",32]},index:!1},{name:"receiverTokenAccount",type:{array:["u8",32]},index:!1},{name:"withdrawNonce",type:"u64",index:!1}]},{name:"VaultDeposited",fields:[{name:"accountId",type:{array:["u8",32]},index:!1},{name:"brokerHash",type:{array:["u8",32]},index:!1},{name:"userAddress",type:{array:["u8",32]},index:!1},{name:"tokenHash",type:{array:["u8",32]},index:!1},{name:"srcChainId",type:"u128",index:!1},{name:"tokenAmount",type:"u64",index:!1},{name:"srcChainDepositNonce",type:"u64",index:!1}]},{name:"VaultWithdrawn",fields:[{name:"accountId",type:{array:["u8",32]},index:!1},{name:"sender",type:{array:["u8",32]},index:!1},{name:"receiver",type:{array:["u8",32]},index:!1},{name:"brokerHash",type:{array:["u8",32]},index:!1},{name:"tokenHash",type:{array:["u8",32]},index:!1},{name:"tokenAmount",type:"u64",index:!1},{name:"fee",type:"u128",index:!1},{name:"chainId",type:"u128",index:!1},{name:"withdrawNonce",type:"u64",index:!1}]},{name:"FrozenWithdrawn",fields:[{name:"accountId",type:{array:["u8",32]},index:!1},{name:"sender",type:{array:["u8",32]},index:!1},{name:"receiver",type:{array:["u8",32]},index:!1},{name:"brokerHash",type:{array:["u8",32]},index:!1},{name:"tokenHash",type:{array:["u8",32]},index:!1},{name:"tokenAmount",type:"u64",index:!1},{name:"fee",type:"u128",index:!1},{name:"chainId",type:"u128",index:!1},{name:"withdrawNonce",type:"u64",index:!1}]},{name:"OAppSent",fields:[{name:"guid",type:{array:["u8",32]},index:!1},{name:"dstEid",type:"u32",index:!1}]},{name:"OAppReceived",fields:[{name:"guid",type:{array:["u8",32]},index:!1},{name:"srcEid",type:"u32",index:!1}]}],errors:[{code:6e3,name:"InsufficientFunds",msg:"Deposited funds are insufficient for withdrawal"},{code:6001,name:"UserInfoBelongsToAnotherUser",msg:"User info pda belongs to another user"},{code:6002,name:"BrokerNotAllowed",msg:"Broker is not allowed"},{code:6003,name:"TokenNotAllowed",msg:"Token is not allowed"},{code:6004,name:"InvalidAccountId",msg:"AccountId is invalid"},{code:6005,name:"InvalidVaultOwner",msg:"Vault owner is not the same as the payer"},{code:6006,name:"ManagerRoleNotAllowed",msg:"Manager role is not allowed"}]};import{DVN_CONFIG_SEED as Na,ENDPOINT_SEED as Wa,ENFORCED_OPTIONS_SEED as Ua,EVENT_SEED as $e,EXECUTOR_CONFIG_SEED as Va,LZ_RECEIVE_TYPES_SEED as kn,MESSAGE_LIB_SEED as X,NONCE_SEED as Ga,OAPP_SEED as Fa,PEER_SEED as za,PRICE_FEED_SEED as Ya,SEND_CONFIG_SEED as ea,SEND_LIBRARY_CONFIG_SEED as aa,ULN_SEED as qa}from"@layerzerolabs/lz-solana-sdk-v2";import{getAssociatedTokenAddressSync as Qa}from"@solana/spl-token";import{PublicKey as l}from"@solana/web3.js";var G=(a,n)=>Qa(a,n,!0);function fe(a){return l.findProgramAddressSync([Buffer.from(Ue,"utf8")],a)[0]}function na(a){return l.findProgramAddressSync([Buffer.from(Fe,"utf8")],a)[0]}function ta(a,n){let e=Array.from(Buffer.from(n.slice(2),"hex"));return l.findProgramAddressSync([Buffer.from(Ve,"utf8"),Buffer.from(e)],a)[0]}function sa(a,n){let e=Array.from(Buffer.from(n.slice(2),"hex"));return l.findProgramAddressSync([Buffer.from(Ge,"utf8"),Buffer.from(e)],a)[0]}function ye(a){return l.findProgramAddressSync([Buffer.from(Fa,"utf8")],a)[0]}function ge(a,n,e){let s=Buffer.alloc(4);return s.writeUInt32BE(e),l.findProgramAddressSync([Buffer.from(za,"utf8"),n.toBuffer(),s],a)[0]}function Se(a,n,e){let s=Buffer.alloc(4);return s.writeUInt32BE(e),l.findProgramAddressSync([Buffer.from(Ua,"utf8"),n.toBuffer(),s],a)[0]}function ra(){return l.findProgramAddressSync([Buffer.from(X,"utf8")],b)[0]}function be(a,n){let e=Buffer.alloc(4);return e.writeUInt32BE(n),l.findProgramAddressSync([Buffer.from(aa,"utf8"),a.toBuffer(),e],k)[0]}function ke(a){let n=Buffer.alloc(4);return n.writeUInt32BE(a),l.findProgramAddressSync([Buffer.from(aa,"utf8"),n],k)[0]}function ia(a){return l.findProgramAddressSync([Buffer.from(X,"utf8"),a.toBuffer()],k)[0]}function Ae(){return l.findProgramAddressSync([Buffer.from(Wa,"utf8")],k)[0]}function ja(a){let n=me;return a.toBase58()===de.toBase58()&&(n=me),a.toBase58()===le.toBase58()&&(n=ze),a.toBase58()===ce.toBase58()&&(n=Ye),a.toBase58()===Z.toBase58()&&(n=qe),n}function Pe(a,n,e){let s=Buffer.alloc(4),r=ja(a);return s.writeUInt32BE(e),l.findProgramAddressSync([Buffer.from(Ga,"utf8"),n.toBuffer(),s,r],k)[0]}function oa(){return l.findProgramAddressSync([Buffer.from($e,"utf8")],k)[0]}function ua(){return l.findProgramAddressSync([Buffer.from(qa,"utf8")],b)[0]}function he(a,n){let e=Buffer.alloc(4);return e.writeUInt32BE(n),l.findProgramAddressSync([Buffer.from(ea,"utf8"),e,a.toBuffer()],b)[0]}function Me(a){let n=Buffer.alloc(4);return n.writeUInt32BE(a),l.findProgramAddressSync([Buffer.from(ea,"utf8"),n],Ne)[0]}function ma(){return l.findProgramAddressSync([Buffer.from($e,"utf8")],b)[0]}function we(){return l.findProgramAddressSync([Buffer.from(Va,"utf8")],U)[0]}function Ie(){return l.findProgramAddressSync([Buffer.from(Ya,"utf8")],v)[0]}function Ee(){return l.findProgramAddressSync([Buffer.from(Na,"utf8")],V)[0]}function xe(a){return a.toBase58()===Z.toBase58()?je:Qe}function De(a){return a.toBase58()===de.toBase58()?(console.log("DEV_LOOKUP_TABLE_ADDRESS: ",j.toBase58()),j):a.toBase58()===le.toBase58()?Ze:a.toBase58()===ce.toBase58()?Xe:a.toBase58()===Z.toBase58()?Je:j}function da(a){return l.findProgramAddressSync([Buffer.from(X,"utf8")],a||b)[0]}function la(a,n){return l.findProgramAddressSync([Buffer.from(X,"utf8"),a.toBytes()],n||k)[0]}function Te(a,n){return c(this,null,function*(){return(yield a.getAddressLookupTable(n)).value})}function ga(a){let{publicKey:n,brokerId:e,expiration:s=365,timestamp:r=Date.now(),scope:t,tag:o,chainId:m,subAccountId:u}=a,i=p(p({brokerId:e,chainType:"SOL",orderlyKey:n,scope:t||$a,chainId:m,timestamp:r,expiration:r+1e3*60*60*24*s},typeof o!="undefined"?{tag:o}:{}),typeof u!="undefined"?{subAccountId:u}:{}),d=x(["string"],[i.brokerId]),A=x(["string"],[i.orderlyKey]),h=x(["string"],[i.scope]),y=N.defaultAbiCoder(),M=I(R(y.encode(["bytes32","bytes32","bytes32","uint256","uint256","uint256"],[d,A,h,i.chainId,i.timestamp,i.expiration]))),P=H(M),T=new TextEncoder().encode(P);return[i,T]}function Sa(a){let{chainId:n,registrationNonce:e,brokerId:s,timestamp:r}=a,t={brokerId:s,chainId:n,timestamp:r,registrationNonce:e},o=x(["string"],[t.brokerId]),m=N.defaultAbiCoder(),u=I(R(m.encode(["bytes32","uint256","uint256","uint256"],[o,t.chainId,t.timestamp,t.registrationNonce]))),i=H(u),d=new TextEncoder().encode(i);return[t,d]}function ba(a){let{chainId:n,receiver:e,token:s,amount:r,nonce:t}=a,o={chainId:n,receiver:e,token:s,amount:r,transferNonce:t,chainType:"SOL"},m=x(["string"],[o.token]),u=N.defaultAbiCoder(),i=I(R(u.encode(["bytes32","bytes32","uint256","uint64","uint256"],[o.receiver,m,o.amount,o.transferNonce,n]))),d=H(i),A=new TextEncoder().encode(d);return[o,A]}function ka(a){return c(this,null,function*(){let{payloadType:n,nonce:e,receiver:s,amount:r,vaultId:t,token:o,dexBrokerId:m,chainId:u}=a,i={payloadType:n,nonce:e,receiver:s,amount:r,vaultId:t,token:o,dexBrokerId:m,chainId:u},d;d=ya(s),new Uint8Array(32).set(d);let y=R(t),M=I(new TextEncoder().encode(o)),P=I(new TextEncoder().encode(m)),T=N.defaultAbiCoder(),_=I(R(T.encode(["uint8","uint256","bytes32","uint256","bytes32","bytes32","bytes32","uint256"],[n,e,d,r,y,M,P,u]))),B=H(_),f=new TextEncoder().encode(B);return[i,f]})}function Aa(a){let{chainId:n,receiver:e,token:s,amount:r,nonce:t,brokerId:o}=a,m=Date.now(),u={brokerId:o,chainId:n,receiver:e,token:s,amount:r,withdrawNonce:t,timestamp:m,chainType:"SOL"},i=x(["string"],[u.brokerId]),d=x(["string"],[u.token]),A=I(Buffer.from("Orderly Network")),h=N.defaultAbiCoder(),y=I(R(h.encode(["bytes32","bytes32","uint256","bytes32","uint256","uint64","uint64","bytes32"],[i,d,n,ya(u.receiver),u.amount,u.withdrawNonce,m,A]))),M=H(y),P=new TextEncoder().encode(M);return[u,P]}function Pa(a){let{settlePnlNonce:n,brokerId:e,chainId:s,timestamp:r}=a,t={brokerId:e,chainId:s,timestamp:r,chainType:"SOL",settleNonce:n},o=x(["string"],[e]),m=N.defaultAbiCoder(),u=I(R(m.encode(["bytes32","uint256","uint64","uint64"],[o,t.chainId,t.settleNonce,t.timestamp]))),i=H(u),d=new TextEncoder().encode(i);return[t,d]}function Re(r){return c(this,arguments,function*({vaultAddress:a,userAddress:n,connection:e,depositData:s}){console.log("-- vaultAddress",a);let t=new L(a),o=xe(t),m=new ca(pe,t,{connection:e}),u=new L(n),i=ye(t),d=ge(t,i,o),A=Se(t,i,o),h=be(i,o),y=ke(o),M=Ae(),P=Pe(t,i,o),T=he(i,o),_=Me(o),B=we(),f=Ie(),w=Ee(),W=da(b),F=la(W),J=fe(t),$=ha(n,s),ee=yield m.methods.oappQuote($).accounts({oappConfig:i,peer:d,enforcedOptions:A,vaultAuthority:J}).remainingAccounts([{pubkey:k,isWritable:!1,isSigner:!1},{pubkey:b,isWritable:!1,isSigner:!1},{pubkey:h,isWritable:!1,isSigner:!1},{pubkey:y,isWritable:!1,isSigner:!1},{pubkey:F,isWritable:!1,isSigner:!1},{pubkey:M,isWritable:!1,isSigner:!1},{pubkey:P,isWritable:!1,isSigner:!1},{pubkey:W,isWritable:!1,isSigner:!1},{pubkey:T,isWritable:!1,isSigner:!1},{pubkey:_,isWritable:!1,isSigner:!1},{pubkey:U,isWritable:!1,isSigner:!1},{pubkey:B,isWritable:!1,isSigner:!1},{pubkey:v,isWritable:!1,isSigner:!1},{pubkey:f,isWritable:!1,isSigner:!1},{pubkey:V,isWritable:!1,isSigner:!1},{pubkey:w,isWritable:!1,isSigner:!1},{pubkey:v,isWritable:!1,isSigner:!1},{pubkey:f,isWritable:!1,isSigner:!1}]).instruction(),ae=yield e.getLatestBlockhash(),ne=De(t),z=yield Te(e,ne);if(!z)throw console.log("-- lookup table account error"),new Error("-- lookup table account error");let te=new pa({payerKey:u,recentBlockhash:ae.blockhash,instructions:[ee]}).compileToV0Message([z]),se=new fa(te),E=yield e.simulateTransaction(se);if(console.log("-- feeRes",E),E.value.err){let O=typeof E.value.err=="object"?JSON.stringify(E.value.err):E.value.err;throw O.toString().includes("AccountNotFound")?new Error("Error: Account gas is insufficient."):new Error(`Error: ${O}`)}let Y=`Program return: ${m.programId} `,q=E.value.logs.find(O=>O.startsWith(Y));if(!q)throw new Error("Error: get deposit fee error");let re=q.slice(Y.length),K=Buffer.from(re,"base64");return console.log(K.readBigUInt64LE(0),K.readBigUInt64LE(1)),K.readBigUInt64LE(0)})}var ha=(a,n)=>{let e=n.brokerHash,s=Array.from(Buffer.from(e.slice(2),"hex")),r=n.tokenHash,t=Array.from(Buffer.from(r.slice(2),"hex")),o=n.accountId,m=Array.from(Buffer.from(o.slice(2),"hex")),u=new L(a);return{accountId:m,brokerHash:s,tokenHash:t,userAddress:Array.from(u.toBuffer()),tokenAmount:new ve(n.tokenAmount)}};function Ma(t){return c(this,arguments,function*({vaultAddress:a,userAddress:n,connection:e,sendTransaction:s,depositData:r}){let o=r.brokerHash,m=r.tokenHash,u=Ja.parseTokenHash("SOL"),i=m.toLowerCase()===u.toLowerCase();console.log("-- vault address",a);let d=new L(a),A=new ca(pe,d,{connection:e}),h=new L(r.tokenAddress),y=new L(n),M=G(h,y),P=fe(d),T=G(h,P),_=ta(d,o),B=sa(d,m),f=ye(d);console.log("-- oappconfig pda",f.toBase58());let w=xe(d),W=ge(d,f,w),F=Se(d,f,w),J=ra(),$=be(f,w),ee=ke(w),ae=ia(J),ne=Ae(),z=Pe(d,f,w),te=oa(),se=ua(),E=he(f,w),Y=Me(w),q=ma(),re=we(),K=Ie(),O=Ee(),ie=ha(n,r),Oe=()=>[{isSigner:!1,isWritable:!1,pubkey:k},{isSigner:!1,isWritable:!1,pubkey:f},{isSigner:!1,isWritable:!1,pubkey:b},{isSigner:!1,isWritable:!1,pubkey:$},{isSigner:!1,isWritable:!1,pubkey:ee},{isSigner:!1,isWritable:!1,pubkey:ae},{isSigner:!1,isWritable:!1,pubkey:ne},{isSigner:!1,isWritable:!0,pubkey:z},{isSigner:!1,isWritable:!1,pubkey:te},{isSigner:!1,isWritable:!1,pubkey:k},{isSigner:!1,isWritable:!1,pubkey:se},{isSigner:!1,isWritable:!1,pubkey:E},{isSigner:!1,isWritable:!1,pubkey:Y},{isSigner:!0,isWritable:!1,pubkey:y},{isSigner:!1,isWritable:!1,pubkey:We},{isSigner:!1,isWritable:!1,pubkey:Xa.programId},{isSigner:!1,isWritable:!1,pubkey:q},{isSigner:!1,isWritable:!1,pubkey:b},{isSigner:!1,isWritable:!1,pubkey:U},{isSigner:!1,isWritable:!0,pubkey:re},{isSigner:!1,isWritable:!1,pubkey:v},{isSigner:!1,isWritable:!1,pubkey:K},{isSigner:!1,isWritable:!1,pubkey:V},{isSigner:!1,isWritable:!0,pubkey:O},{isSigner:!1,isWritable:!1,pubkey:v},{isSigner:!1,isWritable:!1,pubkey:K}],Ea=yield Re({vaultAddress:a,userAddress:n,connection:e,depositData:r}),oe={nativeFee:new ve(Ea.toString()),lzTokenFee:new ve(0)};console.log("--- value params",{vaultDepositParams:ie,sendParam:oe});let xa=i?yield A.methods.depositSol(ie,oe).accounts({solVault:na(d),vaultAuthority:P,user:y,peer:W,enforcedOptions:F,oappConfig:f,allowedBroker:_,allowedToken:B}).remainingAccounts(Oe()).instruction():yield A.methods.deposit(ie,oe).accounts({userTokenAccount:M,vaultAuthority:P,vaultTokenAccount:T,depositToken:h,user:y,peer:W,enforcedOptions:F,oappConfig:f,allowedBroker:_,allowedToken:B}).remainingAccounts(Oe()).instruction(),Da=De(d),Ce=yield Te(e,Da);if(!Ce){console.log("-- lookup table account error");return}let Ta=Za.setComputeUnitLimit({units:4e5}),va=yield e.getLatestBlockhash(),Ra=new pa({payerKey:y,recentBlockhash:va.blockhash,instructions:[xa,Ta]}).compileToV0Message([Ce]),_a=new fa(Ra),Le=yield s(_a,e);return console.log("res",Le),Le})}function wa(a){let n=window.localStorage.getItem(en);if(!n)return!1;let e=JSON.parse(n!=null?n:"[]");return console.log("-- addressArr",e),!!e.includes(a)}var Ke=class extends un{constructor(){super();C(this,"chainNamespace",ln.solana);C(this,"_address");C(this,"_chainId");C(this,"_provider");C(this,"_connection")}get address(){return this._address}get chainId(){return this._chainId}set chainId(e){this._chainId=e}get connection(){if(this._connection)return this._connection;if(this._provider.rpcUrl)return this._connection=new _e(this._provider.rpcUrl,{commitment:"confirmed"}),this._connection;if(this._provider.network===nn.Devnet)return this._connection=new _e(tn(this._provider.network),{commitment:"confirmed"}),this._connection;let e=mn.get("account"),s="/v1/solana-rpc-proxy";return this._connection=new _e(`${e.apiBaseUrl}${s}`,{commitment:"confirmed",fetchMiddleware:(r,t,o)=>c(this,null,function*(){let m={url:s,method:t==null?void 0:t.method,data:JSON.parse(t==null?void 0:t.body)},u=yield this.signMessageByOrderlyKey(m);for(let i of Object.keys(u))(t==null?void 0:t.headers)[i]=u[i];return o(r,t)})}),this._connection}setConfig(e){this._address=e.address,this._chainId=e.chain.id,e.provider&&(this._provider=e.provider)}lifecycleName(e,s){console.log("lifecycle",e,s)}active(e){this.setConfig(e),this.lifecycleName("active",e)}deactivate(){this.lifecycleName("deactivate",{})}update(e){this.lifecycleName("update",e),this.setConfig(e)}generateSecretKey(){let e,s;do e=Ia.utils.randomPrivateKey(),s=rn(e);while(s.length!==44);return s}uint8ArrayToHexString(e){return Array.from(e).map(s=>s.toString(16).padStart(2,"0")).join("")}signMessage(e){return c(this,null,function*(){if(wa(this._address)){let t=new sn;t.add(new Be({keys:[],programId:new D("ComputeBudget111111111111111111111111111111"),data:new Uint8Array([3,0,0,0,0,0,0,0,0])})),t.add(new Be({keys:[],programId:new D("ComputeBudget111111111111111111111111111111"),data:new Uint8Array([2,0,0,0,0])})),t.add(new Be({keys:[],programId:new D("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),data:e}));let o=new D(this.address);t.feePayer=o;let m=new Uint8Array(32).fill(0);t.recentBlockhash=new D(m).toString();let i=(yield this._provider.signTransaction(t)).signatures[0].signature;if(i)return this.uint8ArrayToHexString(i);throw console.log("-- sign message error",i),new Error("Unsupported signature")}let r=yield this._provider.signMessage(e);return"0x"+on(r)})}generateRegisterAccountMessage(e){return c(this,null,function*(){let[s,r]=Sa(g(p({},e),{chainId:this.chainId})),t=yield this.signMessage(r);return{message:g(p({},s),{chainType:"SOL"}),signatured:t}})}generateWithdrawMessage(e){return c(this,null,function*(){let[s,r]=Aa(g(p({},e),{chainId:this.chainId})),t=yield this.signMessage(r);return{message:g(p({},s),{chainType:"SOL"}),domain:{name:"",version:"",chainId:this.chainId,verifyingContract:e.verifyContract},signatured:t}})}generateInternalTransferMessage(e){return c(this,null,function*(){let[s,r]=ba(g(p({},e),{chainId:this.chainId})),t=yield this.signMessage(r);return{message:g(p({},s),{chainType:"SOL"}),domain:{name:"",version:"",chainId:this.chainId,verifyingContract:e.verifyContract},signatured:t}})}generateAddOrderlyKeyMessage(e){return c(this,null,function*(){let[s,r]=ga(g(p({},e),{chainId:this.chainId})),t=yield this.signMessage(r);return{message:g(p({},s),{chainType:"SOL"}),signatured:t}})}generateSettleMessage(e){return c(this,null,function*(){let[s,r]=Pa(g(p({},e),{chainId:this.chainId})),t=yield this.signMessage(r);return{message:g(p({},s),{chainType:"SOL"}),domain:{name:"",version:"",chainId:this.chainId,verifyingContract:e.verifyContract},signatured:t}})}generateDexRequestMessage(e){return c(this,null,function*(){let[s,r]=yield ka(g(p({},e),{chainId:this.chainId})),t=yield this.signMessage(r);return{message:g(p({},e),{chainType:"SOL"}),signatured:t,domain:e.domain}})}getBalance(){return c(this,null,function*(){let e=new D(this.address),s=yield this.connection.getBalance(e);return BigInt(s)})}call(e,s,r,t){return c(this,null,function*(){if(s==="balanceOf"){let o=new D(e),m=new D(this._address),u=G(o,m),i=this.connection;return(yield an(i,u,"confirmed")).amount}return s==="allowance"?dn:BigInt(0)})}sendTransaction(e,s,r,t){return c(this,null,function*(){if(console.log("-- solanan sendTransaction",{contractAddress:e,method:s,payload:r,options:t}),s==="deposit")return Ma({vaultAddress:e,userAddress:this._address,connection:this.connection,depositData:r.data[0],sendTransaction:this._provider.sendTransaction})})}callOnChain(e,s,r,t,o){return c(this,null,function*(){return console.log("-- params ",{chain:e,address:s,method:r,params:t}),r==="getDepositFee"?Re({vaultAddress:s,userAddress:this._address,connection:this.connection,depositData:t[1]}):0})}pollTransactionReceiptWithBackoff(e,s,r,t){return c(this,null,function*(){return Promise.resolve({status:1})})}};export{Ke as DefaultSolanaWalletAdapter,Ha as version};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|