@orderly.network/default-solana-adapter 2.8.0 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,2 +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__["@orderly.network/default-solana-adapter"]="2.8.0");var Ha="2.8.0";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"@orderly.network/core";import{MaxUint256 as dn,ChainNamespace as ln}from"@orderly.network/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"@orderly.network/core";import{DEFAUL_ORDERLY_KEY_SCOPE as $a,LedgerWalletKey as en}from"@orderly.network/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};
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__["@orderly.network/default-solana-adapter"]="2.8.1");var Ha="2.8.1";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"@orderly.network/core";import{MaxUint256 as dn,ChainNamespace as ln}from"@orderly.network/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"@orderly.network/core";import{DEFAUL_ORDERLY_KEY_SCOPE as $a,LedgerWalletKey as en}from"@orderly.network/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
2
  //# sourceMappingURL=index.mjs.map