@orderly.network/default-solana-adapter 2.5.0-alpha.1 → 2.5.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var In=Object.defineProperty,wn=Object.defineProperties;var _n=Object.getOwnPropertyDescriptors;var Ke=Object.getOwnPropertySymbols;var Tn=Object.prototype.hasOwnProperty,xn=Object.prototype.propertyIsEnumerable;var ie=(n,a,e)=>a in n?In(n,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[a]=e,y=(n,a)=>{for(var e in a||(a={}))Tn.call(a,e)&&ie(n,e,a[e]);if(Ke)for(var e of Ke(a))xn.call(a,e)&&ie(n,e,a[e]);return n},P=(n,a)=>wn(n,_n(a));var B=(n,a,e)=>(ie(n,typeof a!="symbol"?a+"":a,e),e);var l=(n,a,e)=>new Promise((s,i)=>{var t=r=>{try{m(e.next(r))}catch(o){i(o)}},u=r=>{try{m(e.throw(r))}catch(o){i(o)}},m=r=>r.done?s(r.value):Promise.resolve(r.value).then(t,u);m((e=e.apply(n,a)).next())});typeof window!="undefined"&&(window.__ORDERLY_VERSION__=window.__ORDERLY_VERSION__||{},window.__ORDERLY_VERSION__["@orderly.network/default-solana-adapter"]="2.5.0-alpha.1");var Bn="2.5.0-alpha.1";import{BaseWalletAdapter as Qn,SimpleDI as jn}from"@orderly.network/core";import{MaxUint256 as Zn,ChainNamespace as qn}from"@orderly.network/types";import*as An from"@noble/ed25519";import{encode as Xn}from"bs58";import{BN as _e,Program as mn}from"@coral-xyz/anchor";import{ComputeBudgetProgram as Gn,PublicKey as v,SystemProgram as Fn,TransactionMessage as dn,VersionedTransaction as ln}from"@solana/web3.js";import{decode as zn}from"bs58";import{keccak256 as N}from"ethereum-cryptography/keccak";import{bytesToHex as Q,hexToBytes as j}from"ethereum-cryptography/utils";import{AbiCoder as Z,solidityPackedKeccak256 as w}from"ethers";import{LedgerWalletKey as Yn}from"@orderly.network/types";import{PublicKey as p}from"@solana/web3.js";import{addressToBytes32 as G}from"@layerzerolabs/lz-v2-utilities";var g=new p("76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6"),f=new p("7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH"),C=new p("6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn"),I=new p("8ahPGPjEbpgGaZx2NV1iG5Shj7TDwvsjkEDcGWjt94TP"),Le=f,Ne=f,K=new p("HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW"),He="VaultAuthority",We="Broker",Ue="Token",oe=G("0x9Dc724b24146BeDD2dA28b8C4B74126169B8f312"),Ve=G("0x45b6C6266A7A2170617d8A27A50C642fd68b91c4"),Ge=G("0x5Bf771A65d057e778C5f0Ed52A0003316f94322D"),Fe=G("0xCecAe061aa078e13b5e70D5F9eCee90a3F2B6AeA"),ze=40200,Ye=30213,F=new p("BWp8HaYYhiNHekt3zgQhqoCrRftneGxxfgKmCZ6svHN"),Qe=new p("BswrQQoPKAFojTuJutZcBMtigAgTghEH4M8ofn3EG2X2"),je=new p("BbGKfxuPwDmu58BjPpd7PMG69TqnZjSpKaLDMgf9E9Dr"),Ze=new p("8iq7xCQt3bLdRRn4A46d5GuaXYinBoiAhbe2sUmZVzwg"),ue=new p("EYJq9eU4GMRUriUJBgGoZ8YLQBXcWaciXuSsEXE7ieQS"),me=new p("5zBjLor7vEraAt4zp2H82sy9MSqFoDnNa1Lx6EYKTYRZ"),de=new p("9shwxWDUNhtwkHocsUAmrNAQfBH2DHh4njdAEdHZZkF2"),z=new p("ErBmAD61mGFKvrFNaTJuxoPwqrS8GgtwtqJTJVjFWx9Q");var le={version:"0.1.0",name:"solana_vault",instructions:[{name:"initVault",accounts:[{name:"signer",isMut:!0,isSigner:!0},{name:"vaultAuthority",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"InitVaultParams"}}]},{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:"initOapp",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"oappConfig",isMut:!0,isSigner:!1},{name:"lzReceiveTypes",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"InitOAppParams"}}]},{name:"resetOapp",accounts:[{name:"admin",isMut:!0,isSigner:!0},{name:"oappConfig",isMut:!0,isSigner:!1}],args:[]},{name:"reinitOapp",accounts:[{name:"owner",isMut:!0,isSigner:!0},{name:"oappConfig",isMut:!0,isSigner:!1},{name:"vaultAuthority",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"ReinitOAppParams"}}]},{name:"resetVault",accounts:[{name:"owner",isMut:!0,isSigner:!0},{name:"vaultAuthority",isMut:!0,isSigner:!1}],args:[]},{name:"reinitVault",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:"ReinitVaultParams"}}]},{name:"setBroker",accounts:[{name:"admin",isMut:!0,isSigner:!0},{name:"allowedBroker",isMut:!0,isSigner:!1},{name:"oappConfig",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetBrokerParams"}}]},{name:"setToken",accounts:[{name:"admin",isMut:!0,isSigner:!0},{name:"allowedToken",isMut:!0,isSigner:!1},{name:"oappConfig",isMut:!1,isSigner:!1},{name:"mintAccount",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetTokenParams"}}]},{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:"user",isMut:!1,isSigner:!1,docs:["CHECK"]},{name:"userDepositWallet",isMut:!0,isSigner:!1},{name:"vaultAuthority",isMut:!0,isSigner:!1},{name:"vaultDepositWallet",isMut:!0,isSigner:!1},{name:"depositToken",isMut:!1,isSigner:!1},{name:"tokenProgram",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}],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:"usdcHash",type:{array:["u8",32]}},{name:"usdcMint",type:"publicKey"}]}},{name:"oAppLzReceiveTypesAccounts",type:{kind:"struct",fields:[{name:"oappConfig",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:"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"}]}}],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:"InitOAppParams",type:{kind:"struct",fields:[{name:"admin",type:"publicKey"},{name:"endpointProgram",type:{option:"publicKey"}},{name:"usdcHash",type:{array:["u8",32]}},{name:"usdcMint",type:"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:"AccountWithdrawSol",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:"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:"MessagingFee",type:{kind:"struct",fields:[{name:"nativeFee",type:"u64"},{name:"lzTokenFee",type:"u64"}]}},{name:"ReinitOAppParams",type:{kind:"struct",fields:[{name:"admin",type:"publicKey"},{name:"endpointProgram",type:{option:"publicKey"}},{name:"usdcHash",type:{array:["u8",32]}},{name:"usdcMint",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:"InitVaultParams",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"orderDelivery",type:"bool"},{name:"dstEid",type:"u32"},{name:"solChainId",type:"u128"}]}},{name:"ReinitVaultParams",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"dstEid",type:"u32"},{name:"depositNonce",type:"u64"},{name:"orderDelivery",type:"bool"},{name:"inboundNonce",type:"u64"},{name:"solChainId",type:"u128"}]}},{name:"SetBrokerParams",type:{kind:"struct",fields:[{name:"brokerHash",type:{array:["u8",32]}},{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:"mintAccount",type:"publicKey"},{name:"tokenHash",type:{array:["u8",32]}},{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:"InvalidOptions"},{name:"InvalidEndpointProgram"},{name:"RateLimitExceeded"},{name:"WithdrawFailed"},{name:"InvalidInboundNonce"}]}},{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:"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:"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:"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"}]};import{PublicKey as d}from"@solana/web3.js";import{getAssociatedTokenAddressSync as vn}from"@solana/spl-token";import{DVN_CONFIG_SEED as Rn,ENDPOINT_SEED as On,ENFORCED_OPTIONS_SEED as Cn,EVENT_SEED as qe,EXECUTOR_CONFIG_SEED as Kn,LZ_RECEIVE_TYPES_SEED as fa,MESSAGE_LIB_SEED as Y,NONCE_SEED as Ln,OAPP_SEED as Nn,PEER_SEED as Hn,PRICE_FEED_SEED as Wn,SEND_CONFIG_SEED as Xe,SEND_LIBRARY_CONFIG_SEED as Je,ULN_SEED as Un}from"@layerzerolabs/lz-solana-sdk-v2";var L=(n,a)=>vn(n,a,!0);function ce(n){return d.findProgramAddressSync([Buffer.from(He,"utf8")],n)[0]}function $e(n,a){let e=Array.from(Buffer.from(a.slice(2),"hex"));return d.findProgramAddressSync([Buffer.from(We,"utf8"),Buffer.from(e)],n)[0]}function en(n,a){let e=Array.from(Buffer.from(a.slice(2),"hex"));return d.findProgramAddressSync([Buffer.from(Ue,"utf8"),Buffer.from(e)],n)[0]}function pe(n){return d.findProgramAddressSync([Buffer.from(Nn,"utf8")],n)[0]}function fe(n,a,e){let s=Buffer.alloc(4);return s.writeUInt32BE(e),d.findProgramAddressSync([Buffer.from(Hn,"utf8"),a.toBuffer(),s],n)[0]}function ye(n,a,e){let s=Buffer.alloc(4);return s.writeUInt32BE(e),d.findProgramAddressSync([Buffer.from(Cn,"utf8"),a.toBuffer(),s],n)[0]}function nn(){return d.findProgramAddressSync([Buffer.from(Y,"utf8")],f)[0]}function ge(n,a){let e=Buffer.alloc(4);return e.writeUInt32BE(a),d.findProgramAddressSync([Buffer.from(Je,"utf8"),n.toBuffer(),e],g)[0]}function Se(n){let a=Buffer.alloc(4);return a.writeUInt32BE(n),d.findProgramAddressSync([Buffer.from(Je,"utf8"),a],g)[0]}function an(n){return d.findProgramAddressSync([Buffer.from(Y,"utf8"),n.toBuffer()],g)[0]}function be(){return d.findProgramAddressSync([Buffer.from(On,"utf8")],g)[0]}function Vn(n){let a=oe;return n.toBase58()===ue.toBase58()&&(a=oe),n.toBase58()===me.toBase58()&&(a=Ve),n.toBase58()===de.toBase58()&&(a=Ge),n.toBase58()===z.toBase58()&&(a=Fe),a}function Ae(n,a,e){let s=Buffer.alloc(4),i=Vn(n);return s.writeUInt32BE(e),d.findProgramAddressSync([Buffer.from(Ln,"utf8"),a.toBuffer(),s,i],g)[0]}function tn(){return d.findProgramAddressSync([Buffer.from(qe,"utf8")],g)[0]}function sn(){return d.findProgramAddressSync([Buffer.from(Un,"utf8")],f)[0]}function Pe(n,a){let e=Buffer.alloc(4);return e.writeUInt32BE(a),d.findProgramAddressSync([Buffer.from(Xe,"utf8"),e,n.toBuffer()],f)[0]}function ke(n){let a=Buffer.alloc(4);return a.writeUInt32BE(n),d.findProgramAddressSync([Buffer.from(Xe,"utf8"),a],Le)[0]}function rn(){return d.findProgramAddressSync([Buffer.from(qe,"utf8")],f)[0]}function he(){return d.findProgramAddressSync([Buffer.from(Kn,"utf8")],C)[0]}function De(){return d.findProgramAddressSync([Buffer.from(Wn,"utf8")],I)[0]}function Ee(){return d.findProgramAddressSync([Buffer.from(Rn,"utf8")],K)[0]}function Me(n){return n.toBase58()===z.toBase58()?Ye:ze}function Ie(n){return n.toBase58()===ue.toBase58()?(console.log("DEV_LOOKUP_TABLE_ADDRESS: ",F.toBase58()),F):n.toBase58()===me.toBase58()?Qe:n.toBase58()===de.toBase58()?je:n.toBase58()===z.toBase58()?Ze:F}function on(n){return d.findProgramAddressSync([Buffer.from(Y,"utf8")],n||f)[0]}function un(n,a){return d.findProgramAddressSync([Buffer.from(Y,"utf8"),n.toBytes()],a||g)[0]}function we(n,a){return l(this,null,function*(){return(yield n.getAddressLookupTable(a)).value})}function cn(n){let{publicKey:a,brokerId:e,expiration:s=365,timestamp:i=Date.now(),scope:t,tag:u,chainId:m,subAccountId:r}=n,o=y(y({brokerId:e,chainType:"SOL",orderlyKey:a,scope:t||"read,trading,asset",chainId:m,timestamp:i,expiration:i+1e3*60*60*24*s},typeof u!="undefined"?{tag:u}:{}),typeof r!="undefined"?{subAccountId:r}:{}),c=w(["string"],[o.brokerId]),S=w(["string"],[o.orderlyKey]),D=w(["string"],[o.scope]),k=Z.defaultAbiCoder(),E=N(j(k.encode(["bytes32","bytes32","bytes32","uint256","uint256","uint256"],[c,S,D,o.chainId,o.timestamp,o.expiration]))),M=Q(E),R=new TextEncoder().encode(M);return[o,R]}function pn(n){let{chainId:a,registrationNonce:e,brokerId:s,timestamp:i}=n,t={brokerId:s,chainId:a,timestamp:i,registrationNonce:e},u=w(["string"],[t.brokerId]),m=Z.defaultAbiCoder(),r=N(j(m.encode(["bytes32","uint256","uint256","uint256"],[u,t.chainId,t.timestamp,t.registrationNonce]))),o=Q(r),c=new TextEncoder().encode(o);return[t,c]}function fn(n){let{chainId:a,receiver:e,token:s,amount:i,nonce:t,brokerId:u}=n,m=Date.now(),r={brokerId:u,chainId:a,receiver:e,token:s,amount:i,withdrawNonce:t,timestamp:m,chainType:"SOL"},o=w(["string"],[r.brokerId]),c=w(["string"],[r.token]),S=N(Buffer.from("Orderly Network")),D=Z.defaultAbiCoder(),k=N(j(D.encode(["bytes32","bytes32","uint256","bytes32","uint256","uint64","uint64","bytes32"],[o,c,a,zn(r.receiver),r.amount,r.withdrawNonce,m,S]))),E=Q(k),M=new TextEncoder().encode(E);return[r,M]}function yn(n){let{settlePnlNonce:a,brokerId:e,chainId:s,timestamp:i}=n,t={brokerId:e,chainId:s,timestamp:i,chainType:"SOL",settleNonce:a},u=w(["string"],[e]),m=Z.defaultAbiCoder(),r=N(j(m.encode(["bytes32","uint256","uint64","uint64"],[u,t.chainId,t.settleNonce,t.timestamp]))),o=Q(r),c=new TextEncoder().encode(o);return[t,c]}function Te(i){return l(this,arguments,function*({vaultAddress:n,userAddress:a,connection:e,depositData:s}){console.log("-- vaultAddress",n);let t=new v(n),u=Me(t),m=new mn(le,t,{connection:e}),r=new v(a),o=pe(t),c=fe(t,o,u),S=ye(t,o,u),D=ge(o,u),k=Se(u),E=be(),M=Ae(t,o,u),R=Pe(o,u),b=ke(u),A=he(),H=De(),q=Ee(),W=on(f),X=un(W),J=ce(t),$=gn(a,s),ee=yield m.methods.oappQuote($).accounts({oappConfig:o,peer:c,enforcedOptions:S,vaultAuthority:J}).remainingAccounts([{pubkey:g,isWritable:!1,isSigner:!1},{pubkey:f,isWritable:!1,isSigner:!1},{pubkey:D,isWritable:!1,isSigner:!1},{pubkey:k,isWritable:!1,isSigner:!1},{pubkey:X,isWritable:!1,isSigner:!1},{pubkey:E,isWritable:!1,isSigner:!1},{pubkey:M,isWritable:!1,isSigner:!1},{pubkey:W,isWritable:!1,isSigner:!1},{pubkey:R,isWritable:!1,isSigner:!1},{pubkey:b,isWritable:!1,isSigner:!1},{pubkey:C,isWritable:!1,isSigner:!1},{pubkey:A,isWritable:!1,isSigner:!1},{pubkey:I,isWritable:!1,isSigner:!1},{pubkey:H,isWritable:!1,isSigner:!1},{pubkey:K,isWritable:!1,isSigner:!1},{pubkey:q,isWritable:!1,isSigner:!1},{pubkey:I,isWritable:!1,isSigner:!1},{pubkey:H,isWritable:!1,isSigner:!1}]).instruction(),ne=yield e.getLatestBlockhash(),ae=Ie(t),U=yield we(e,ae);if(!U)throw console.log("-- lookup table account error"),new Error("-- lookup table account error");let te=new dn({payerKey:r,recentBlockhash:ne.blockhash,instructions:[ee]}).compileToV0Message([U]),se=new ln(te),h=yield e.simulateTransaction(se);if(console.log("-- feeRes",h),h.value.err){let x=typeof h.value.err=="object"?JSON.stringify(h.value.err):h.value.err;throw x.toString().includes("AccountNotFound")?new Error("Error: Account gas is insufficient."):new Error(`Error: ${x}`)}let V=`Program return: ${m.programId} `,O=h.value.logs.find(x=>x.startsWith(V));if(!O)throw new Error("Error: get deposit fee error");let re=O.slice(V.length),T=Buffer.from(re,"base64");return console.log(T.readBigUInt64LE(0),T.readBigUInt64LE(1)),T.readBigUInt64LE(0)})}var gn=(n,a)=>{let e=a.brokerHash,s=Array.from(Buffer.from(e.slice(2),"hex")),i=a.tokenHash,t=Array.from(Buffer.from(i.slice(2),"hex")),u=a.accountId,m=Array.from(Buffer.from(u.slice(2),"hex")),r=new v(n);return{accountId:m,brokerHash:s,tokenHash:t,userAddress:Array.from(r.toBuffer()),tokenAmount:new _e(a.tokenAmount)}};function Sn(t){return l(this,arguments,function*({vaultAddress:n,userAddress:a,connection:e,sendTransaction:s,depositData:i}){let u=i.brokerHash,m=i.tokenHash;console.log("-- vault address",n);let r=new v(n),o=new mn(le,r,{connection:e}),c=new v(i.USDCAddress),S=new v(a),D=L(c,S),k=ce(r),E=L(c,k),M=$e(r,u),R=en(r,m),b=pe(r);console.log("-- oappconfig pda",b.toBase58());let A=Me(r),H=fe(r,b,A),q=ye(r,b,A),W=nn(),X=ge(b,A),J=Se(A),$=an(W),ee=be(),ne=Ae(r,b,A),ae=tn(),U=sn(),te=Pe(b,A),se=ke(A),h=rn(),V=he(),O=De(),re=Ee(),T=gn(a,i),x=yield Te({vaultAddress:n,userAddress:a,connection:e,depositData:i}),Re={nativeFee:new _e(x.toString()),lzTokenFee:new _e(0)};console.log("--- value params",{vaultDepositParams:T,sendParam:Re});let Pn=yield o.methods.deposit(T,Re).accounts({userTokenAccount:D,vaultAuthority:k,vaultTokenAccount:E,depositToken:c,user:S,peer:H,enforcedOptions:q,oappConfig:b,allowedBroker:M,allowedToken:R}).remainingAccounts([{isSigner:!1,isWritable:!1,pubkey:g},{isSigner:!1,isWritable:!1,pubkey:b},{isSigner:!1,isWritable:!1,pubkey:f},{isSigner:!1,isWritable:!1,pubkey:X},{isSigner:!1,isWritable:!1,pubkey:J},{isSigner:!1,isWritable:!1,pubkey:$},{isSigner:!1,isWritable:!1,pubkey:ee},{isSigner:!1,isWritable:!0,pubkey:ne},{isSigner:!1,isWritable:!1,pubkey:ae},{isSigner:!1,isWritable:!1,pubkey:g},{isSigner:!1,isWritable:!1,pubkey:U},{isSigner:!1,isWritable:!1,pubkey:te},{isSigner:!1,isWritable:!1,pubkey:se},{isSigner:!0,isWritable:!1,pubkey:S},{isSigner:!1,isWritable:!1,pubkey:Ne},{isSigner:!1,isWritable:!1,pubkey:Fn.programId},{isSigner:!1,isWritable:!1,pubkey:h},{isSigner:!1,isWritable:!1,pubkey:f},{isSigner:!1,isWritable:!1,pubkey:C},{isSigner:!1,isWritable:!0,pubkey:V},{isSigner:!1,isWritable:!1,pubkey:I},{isSigner:!1,isWritable:!1,pubkey:O},{isSigner:!1,isWritable:!1,pubkey:K},{isSigner:!1,isWritable:!0,pubkey:re},{isSigner:!1,isWritable:!1,pubkey:I},{isSigner:!1,isWritable:!1,pubkey:O}]).instruction(),kn=Ie(r),Oe=yield we(e,kn);if(!Oe){console.log("-- lookup table account error");return}let hn=Gn.setComputeUnitLimit({units:4e5}),Dn=yield e.getLatestBlockhash(),En=new dn({payerKey:S,recentBlockhash:Dn.blockhash,instructions:[Pn,hn]}).compileToV0Message([Oe]),Mn=new ln(En),Ce=yield s(Mn,e);return console.log("res",Ce),Ce})}function bn(n){let a=window.localStorage.getItem(Yn);if(!a)return!1;let e=JSON.parse(a!=null?a:"[]");return console.log("-- addressArr",e),!!e.includes(n)}import{bytesToHex as Jn}from"ethereum-cryptography/utils";import{getAccount as $n}from"@solana/spl-token";import{clusterApiUrl as ea,Connection as xe,PublicKey as _,Transaction as na,TransactionInstruction as Be}from"@solana/web3.js";import{WalletAdapterNetwork as aa}from"@solana/wallet-adapter-base";var ve=class extends Qn{constructor(){super();B(this,"chainNamespace",qn.solana);B(this,"_address");B(this,"_chainId");B(this,"_provider");B(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 xe(this._provider.rpcUrl,{commitment:"confirmed"}),this._connection;if(this._provider.network===aa.Devnet)return this._connection=new xe(ea(this._provider.network),{commitment:"confirmed"}),this._connection;let e=jn.get("account"),s="/v1/solana-rpc-proxy";return this._connection=new xe(`${e.apiBaseUrl}${s}`,{commitment:"confirmed",fetchMiddleware:(i,t,u)=>l(this,null,function*(){let m={url:s,method:t==null?void 0:t.method,data:JSON.parse(t==null?void 0:t.body)},r=yield this.signMessageByOrderlyKey(m);for(let o of Object.keys(r))(t==null?void 0:t.headers)[o]=r[o];return u(i,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=An.utils.randomPrivateKey(),s=Xn(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 l(this,null,function*(){if(bn(this._address)){let t=new na;t.add(new Be({keys:[],programId:new _("ComputeBudget111111111111111111111111111111"),data:new Uint8Array([3,0,0,0,0,0,0,0,0])})),t.add(new Be({keys:[],programId:new _("ComputeBudget111111111111111111111111111111"),data:new Uint8Array([2,0,0,0,0])})),t.add(new Be({keys:[],programId:new _("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),data:e}));let u=new _(this.address);t.feePayer=u;let m=new Uint8Array(32).fill(0);t.recentBlockhash=new _(m).toString();let o=(yield this._provider.signTransaction(t)).signatures[0].signature;if(o)return this.uint8ArrayToHexString(o);throw console.log("-- sign message error",o),new Error("Unsupported signature")}let i=yield this._provider.signMessage(e);return"0x"+Jn(i)})}generateRegisterAccountMessage(e){return l(this,null,function*(){let[s,i]=pn(P(y({},e),{chainId:this.chainId})),t=yield this.signMessage(i);return{message:P(y({},s),{chainType:"SOL"}),signatured:t}})}generateWithdrawMessage(e){return l(this,null,function*(){let[s,i]=fn(P(y({},e),{chainId:this.chainId})),t=yield this.signMessage(i);return{message:P(y({},s),{chainType:"SOL"}),domain:{name:"",version:"",chainId:this.chainId,verifyingContract:e.verifyContract},signatured:t}})}generateAddOrderlyKeyMessage(e){return l(this,null,function*(){let[s,i]=cn(P(y({},e),{chainId:this.chainId})),t=yield this.signMessage(i);return{message:P(y({},s),{chainType:"SOL"}),signatured:t}})}generateSettleMessage(e){return l(this,null,function*(){let[s,i]=yn(P(y({},e),{chainId:this.chainId})),t=yield this.signMessage(i);return{message:P(y({},s),{chainType:"SOL"}),domain:{name:"",version:"",chainId:this.chainId,verifyingContract:e.verifyContract},signatured:t}})}getBalance(){return l(this,null,function*(){return BigInt(0)})}call(e,s,i,t){return l(this,null,function*(){if(s==="balanceOf"){let u=new _(e),m=new _(this._address),r=L(u,m),o=this.connection;return(yield $n(o,r,"confirmed")).amount}return s==="allowance"?Zn:BigInt(0)})}sendTransaction(e,s,i,t){return l(this,null,function*(){if(console.log("-- solanan sendTransaction",{contractAddress:e,method:s,payload:i,options:t}),s==="deposit")return Sn({vaultAddress:e,userAddress:this._address,connection:this.connection,depositData:i.data[0],sendTransaction:this._provider.sendTransaction})})}callOnChain(e,s,i,t,u){return l(this,null,function*(){return console.log("-- params ",{chain:e,address:s,method:i,params:t}),i==="getDepositFee"?Te({vaultAddress:s,userAddress:this._address,connection:this.connection,depositData:t[1]}):0})}pollTransactionReceiptWithBackoff(e,s,i,t){return l(this,null,function*(){return Promise.resolve({status:1})})}};export{ve as DefaultSolanaWalletAdapter,Bn as version};
|
|
1
|
+
var In=Object.defineProperty,wn=Object.defineProperties;var _n=Object.getOwnPropertyDescriptors;var Ke=Object.getOwnPropertySymbols;var Tn=Object.prototype.hasOwnProperty,xn=Object.prototype.propertyIsEnumerable;var ie=(n,a,e)=>a in n?In(n,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[a]=e,y=(n,a)=>{for(var e in a||(a={}))Tn.call(a,e)&&ie(n,e,a[e]);if(Ke)for(var e of Ke(a))xn.call(a,e)&&ie(n,e,a[e]);return n},P=(n,a)=>wn(n,_n(a));var B=(n,a,e)=>(ie(n,typeof a!="symbol"?a+"":a,e),e);var l=(n,a,e)=>new Promise((s,i)=>{var t=r=>{try{m(e.next(r))}catch(o){i(o)}},u=r=>{try{m(e.throw(r))}catch(o){i(o)}},m=r=>r.done?s(r.value):Promise.resolve(r.value).then(t,u);m((e=e.apply(n,a)).next())});typeof window!="undefined"&&(window.__ORDERLY_VERSION__=window.__ORDERLY_VERSION__||{},window.__ORDERLY_VERSION__["@orderly.network/default-solana-adapter"]="2.5.0-alpha.2");var Bn="2.5.0-alpha.2";import{BaseWalletAdapter as Qn,SimpleDI as jn}from"@orderly.network/core";import{MaxUint256 as Zn,ChainNamespace as qn}from"@orderly.network/types";import*as An from"@noble/ed25519";import{encode as Xn}from"bs58";import{BN as _e,Program as mn}from"@coral-xyz/anchor";import{ComputeBudgetProgram as Gn,PublicKey as v,SystemProgram as Fn,TransactionMessage as dn,VersionedTransaction as ln}from"@solana/web3.js";import{decode as zn}from"bs58";import{keccak256 as N}from"ethereum-cryptography/keccak";import{bytesToHex as Q,hexToBytes as j}from"ethereum-cryptography/utils";import{AbiCoder as Z,solidityPackedKeccak256 as w}from"ethers";import{LedgerWalletKey as Yn}from"@orderly.network/types";import{PublicKey as p}from"@solana/web3.js";import{addressToBytes32 as G}from"@layerzerolabs/lz-v2-utilities";var g=new p("76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6"),f=new p("7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH"),C=new p("6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn"),I=new p("8ahPGPjEbpgGaZx2NV1iG5Shj7TDwvsjkEDcGWjt94TP"),Le=f,Ne=f,K=new p("HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW"),He="VaultAuthority",We="Broker",Ue="Token",oe=G("0x9Dc724b24146BeDD2dA28b8C4B74126169B8f312"),Ve=G("0x45b6C6266A7A2170617d8A27A50C642fd68b91c4"),Ge=G("0x5Bf771A65d057e778C5f0Ed52A0003316f94322D"),Fe=G("0xCecAe061aa078e13b5e70D5F9eCee90a3F2B6AeA"),ze=40200,Ye=30213,F=new p("BWp8HaYYhiNHekt3zgQhqoCrRftneGxxfgKmCZ6svHN"),Qe=new p("BswrQQoPKAFojTuJutZcBMtigAgTghEH4M8ofn3EG2X2"),je=new p("BbGKfxuPwDmu58BjPpd7PMG69TqnZjSpKaLDMgf9E9Dr"),Ze=new p("8iq7xCQt3bLdRRn4A46d5GuaXYinBoiAhbe2sUmZVzwg"),ue=new p("EYJq9eU4GMRUriUJBgGoZ8YLQBXcWaciXuSsEXE7ieQS"),me=new p("5zBjLor7vEraAt4zp2H82sy9MSqFoDnNa1Lx6EYKTYRZ"),de=new p("9shwxWDUNhtwkHocsUAmrNAQfBH2DHh4njdAEdHZZkF2"),z=new p("ErBmAD61mGFKvrFNaTJuxoPwqrS8GgtwtqJTJVjFWx9Q");var le={version:"0.1.0",name:"solana_vault",instructions:[{name:"initVault",accounts:[{name:"signer",isMut:!0,isSigner:!0},{name:"vaultAuthority",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"InitVaultParams"}}]},{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:"initOapp",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"oappConfig",isMut:!0,isSigner:!1},{name:"lzReceiveTypes",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"InitOAppParams"}}]},{name:"resetOapp",accounts:[{name:"admin",isMut:!0,isSigner:!0},{name:"oappConfig",isMut:!0,isSigner:!1}],args:[]},{name:"reinitOapp",accounts:[{name:"owner",isMut:!0,isSigner:!0},{name:"oappConfig",isMut:!0,isSigner:!1},{name:"vaultAuthority",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"ReinitOAppParams"}}]},{name:"resetVault",accounts:[{name:"owner",isMut:!0,isSigner:!0},{name:"vaultAuthority",isMut:!0,isSigner:!1}],args:[]},{name:"reinitVault",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:"ReinitVaultParams"}}]},{name:"setBroker",accounts:[{name:"admin",isMut:!0,isSigner:!0},{name:"allowedBroker",isMut:!0,isSigner:!1},{name:"oappConfig",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetBrokerParams"}}]},{name:"setToken",accounts:[{name:"admin",isMut:!0,isSigner:!0},{name:"allowedToken",isMut:!0,isSigner:!1},{name:"oappConfig",isMut:!1,isSigner:!1},{name:"mintAccount",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"params",type:{defined:"SetTokenParams"}}]},{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:"user",isMut:!1,isSigner:!1,docs:["CHECK"]},{name:"userDepositWallet",isMut:!0,isSigner:!1},{name:"vaultAuthority",isMut:!0,isSigner:!1},{name:"vaultDepositWallet",isMut:!0,isSigner:!1},{name:"depositToken",isMut:!1,isSigner:!1},{name:"tokenProgram",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}],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:"usdcHash",type:{array:["u8",32]}},{name:"usdcMint",type:"publicKey"}]}},{name:"oAppLzReceiveTypesAccounts",type:{kind:"struct",fields:[{name:"oappConfig",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:"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"}]}}],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:"InitOAppParams",type:{kind:"struct",fields:[{name:"admin",type:"publicKey"},{name:"endpointProgram",type:{option:"publicKey"}},{name:"usdcHash",type:{array:["u8",32]}},{name:"usdcMint",type:"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:"AccountWithdrawSol",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:"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:"MessagingFee",type:{kind:"struct",fields:[{name:"nativeFee",type:"u64"},{name:"lzTokenFee",type:"u64"}]}},{name:"ReinitOAppParams",type:{kind:"struct",fields:[{name:"admin",type:"publicKey"},{name:"endpointProgram",type:{option:"publicKey"}},{name:"usdcHash",type:{array:["u8",32]}},{name:"usdcMint",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:"InitVaultParams",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"orderDelivery",type:"bool"},{name:"dstEid",type:"u32"},{name:"solChainId",type:"u128"}]}},{name:"ReinitVaultParams",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"dstEid",type:"u32"},{name:"depositNonce",type:"u64"},{name:"orderDelivery",type:"bool"},{name:"inboundNonce",type:"u64"},{name:"solChainId",type:"u128"}]}},{name:"SetBrokerParams",type:{kind:"struct",fields:[{name:"brokerHash",type:{array:["u8",32]}},{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:"mintAccount",type:"publicKey"},{name:"tokenHash",type:{array:["u8",32]}},{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:"InvalidOptions"},{name:"InvalidEndpointProgram"},{name:"RateLimitExceeded"},{name:"WithdrawFailed"},{name:"InvalidInboundNonce"}]}},{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:"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:"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:"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"}]};import{PublicKey as d}from"@solana/web3.js";import{getAssociatedTokenAddressSync as vn}from"@solana/spl-token";import{DVN_CONFIG_SEED as Rn,ENDPOINT_SEED as On,ENFORCED_OPTIONS_SEED as Cn,EVENT_SEED as qe,EXECUTOR_CONFIG_SEED as Kn,LZ_RECEIVE_TYPES_SEED as fa,MESSAGE_LIB_SEED as Y,NONCE_SEED as Ln,OAPP_SEED as Nn,PEER_SEED as Hn,PRICE_FEED_SEED as Wn,SEND_CONFIG_SEED as Xe,SEND_LIBRARY_CONFIG_SEED as Je,ULN_SEED as Un}from"@layerzerolabs/lz-solana-sdk-v2";var L=(n,a)=>vn(n,a,!0);function ce(n){return d.findProgramAddressSync([Buffer.from(He,"utf8")],n)[0]}function $e(n,a){let e=Array.from(Buffer.from(a.slice(2),"hex"));return d.findProgramAddressSync([Buffer.from(We,"utf8"),Buffer.from(e)],n)[0]}function en(n,a){let e=Array.from(Buffer.from(a.slice(2),"hex"));return d.findProgramAddressSync([Buffer.from(Ue,"utf8"),Buffer.from(e)],n)[0]}function pe(n){return d.findProgramAddressSync([Buffer.from(Nn,"utf8")],n)[0]}function fe(n,a,e){let s=Buffer.alloc(4);return s.writeUInt32BE(e),d.findProgramAddressSync([Buffer.from(Hn,"utf8"),a.toBuffer(),s],n)[0]}function ye(n,a,e){let s=Buffer.alloc(4);return s.writeUInt32BE(e),d.findProgramAddressSync([Buffer.from(Cn,"utf8"),a.toBuffer(),s],n)[0]}function nn(){return d.findProgramAddressSync([Buffer.from(Y,"utf8")],f)[0]}function ge(n,a){let e=Buffer.alloc(4);return e.writeUInt32BE(a),d.findProgramAddressSync([Buffer.from(Je,"utf8"),n.toBuffer(),e],g)[0]}function Se(n){let a=Buffer.alloc(4);return a.writeUInt32BE(n),d.findProgramAddressSync([Buffer.from(Je,"utf8"),a],g)[0]}function an(n){return d.findProgramAddressSync([Buffer.from(Y,"utf8"),n.toBuffer()],g)[0]}function be(){return d.findProgramAddressSync([Buffer.from(On,"utf8")],g)[0]}function Vn(n){let a=oe;return n.toBase58()===ue.toBase58()&&(a=oe),n.toBase58()===me.toBase58()&&(a=Ve),n.toBase58()===de.toBase58()&&(a=Ge),n.toBase58()===z.toBase58()&&(a=Fe),a}function Ae(n,a,e){let s=Buffer.alloc(4),i=Vn(n);return s.writeUInt32BE(e),d.findProgramAddressSync([Buffer.from(Ln,"utf8"),a.toBuffer(),s,i],g)[0]}function tn(){return d.findProgramAddressSync([Buffer.from(qe,"utf8")],g)[0]}function sn(){return d.findProgramAddressSync([Buffer.from(Un,"utf8")],f)[0]}function Pe(n,a){let e=Buffer.alloc(4);return e.writeUInt32BE(a),d.findProgramAddressSync([Buffer.from(Xe,"utf8"),e,n.toBuffer()],f)[0]}function ke(n){let a=Buffer.alloc(4);return a.writeUInt32BE(n),d.findProgramAddressSync([Buffer.from(Xe,"utf8"),a],Le)[0]}function rn(){return d.findProgramAddressSync([Buffer.from(qe,"utf8")],f)[0]}function he(){return d.findProgramAddressSync([Buffer.from(Kn,"utf8")],C)[0]}function De(){return d.findProgramAddressSync([Buffer.from(Wn,"utf8")],I)[0]}function Ee(){return d.findProgramAddressSync([Buffer.from(Rn,"utf8")],K)[0]}function Me(n){return n.toBase58()===z.toBase58()?Ye:ze}function Ie(n){return n.toBase58()===ue.toBase58()?(console.log("DEV_LOOKUP_TABLE_ADDRESS: ",F.toBase58()),F):n.toBase58()===me.toBase58()?Qe:n.toBase58()===de.toBase58()?je:n.toBase58()===z.toBase58()?Ze:F}function on(n){return d.findProgramAddressSync([Buffer.from(Y,"utf8")],n||f)[0]}function un(n,a){return d.findProgramAddressSync([Buffer.from(Y,"utf8"),n.toBytes()],a||g)[0]}function we(n,a){return l(this,null,function*(){return(yield n.getAddressLookupTable(a)).value})}function cn(n){let{publicKey:a,brokerId:e,expiration:s=365,timestamp:i=Date.now(),scope:t,tag:u,chainId:m,subAccountId:r}=n,o=y(y({brokerId:e,chainType:"SOL",orderlyKey:a,scope:t||"read,trading,asset",chainId:m,timestamp:i,expiration:i+1e3*60*60*24*s},typeof u!="undefined"?{tag:u}:{}),typeof r!="undefined"?{subAccountId:r}:{}),c=w(["string"],[o.brokerId]),S=w(["string"],[o.orderlyKey]),D=w(["string"],[o.scope]),k=Z.defaultAbiCoder(),E=N(j(k.encode(["bytes32","bytes32","bytes32","uint256","uint256","uint256"],[c,S,D,o.chainId,o.timestamp,o.expiration]))),M=Q(E),R=new TextEncoder().encode(M);return[o,R]}function pn(n){let{chainId:a,registrationNonce:e,brokerId:s,timestamp:i}=n,t={brokerId:s,chainId:a,timestamp:i,registrationNonce:e},u=w(["string"],[t.brokerId]),m=Z.defaultAbiCoder(),r=N(j(m.encode(["bytes32","uint256","uint256","uint256"],[u,t.chainId,t.timestamp,t.registrationNonce]))),o=Q(r),c=new TextEncoder().encode(o);return[t,c]}function fn(n){let{chainId:a,receiver:e,token:s,amount:i,nonce:t,brokerId:u}=n,m=Date.now(),r={brokerId:u,chainId:a,receiver:e,token:s,amount:i,withdrawNonce:t,timestamp:m,chainType:"SOL"},o=w(["string"],[r.brokerId]),c=w(["string"],[r.token]),S=N(Buffer.from("Orderly Network")),D=Z.defaultAbiCoder(),k=N(j(D.encode(["bytes32","bytes32","uint256","bytes32","uint256","uint64","uint64","bytes32"],[o,c,a,zn(r.receiver),r.amount,r.withdrawNonce,m,S]))),E=Q(k),M=new TextEncoder().encode(E);return[r,M]}function yn(n){let{settlePnlNonce:a,brokerId:e,chainId:s,timestamp:i}=n,t={brokerId:e,chainId:s,timestamp:i,chainType:"SOL",settleNonce:a},u=w(["string"],[e]),m=Z.defaultAbiCoder(),r=N(j(m.encode(["bytes32","uint256","uint64","uint64"],[u,t.chainId,t.settleNonce,t.timestamp]))),o=Q(r),c=new TextEncoder().encode(o);return[t,c]}function Te(i){return l(this,arguments,function*({vaultAddress:n,userAddress:a,connection:e,depositData:s}){console.log("-- vaultAddress",n);let t=new v(n),u=Me(t),m=new mn(le,t,{connection:e}),r=new v(a),o=pe(t),c=fe(t,o,u),S=ye(t,o,u),D=ge(o,u),k=Se(u),E=be(),M=Ae(t,o,u),R=Pe(o,u),b=ke(u),A=he(),H=De(),q=Ee(),W=on(f),X=un(W),J=ce(t),$=gn(a,s),ee=yield m.methods.oappQuote($).accounts({oappConfig:o,peer:c,enforcedOptions:S,vaultAuthority:J}).remainingAccounts([{pubkey:g,isWritable:!1,isSigner:!1},{pubkey:f,isWritable:!1,isSigner:!1},{pubkey:D,isWritable:!1,isSigner:!1},{pubkey:k,isWritable:!1,isSigner:!1},{pubkey:X,isWritable:!1,isSigner:!1},{pubkey:E,isWritable:!1,isSigner:!1},{pubkey:M,isWritable:!1,isSigner:!1},{pubkey:W,isWritable:!1,isSigner:!1},{pubkey:R,isWritable:!1,isSigner:!1},{pubkey:b,isWritable:!1,isSigner:!1},{pubkey:C,isWritable:!1,isSigner:!1},{pubkey:A,isWritable:!1,isSigner:!1},{pubkey:I,isWritable:!1,isSigner:!1},{pubkey:H,isWritable:!1,isSigner:!1},{pubkey:K,isWritable:!1,isSigner:!1},{pubkey:q,isWritable:!1,isSigner:!1},{pubkey:I,isWritable:!1,isSigner:!1},{pubkey:H,isWritable:!1,isSigner:!1}]).instruction(),ne=yield e.getLatestBlockhash(),ae=Ie(t),U=yield we(e,ae);if(!U)throw console.log("-- lookup table account error"),new Error("-- lookup table account error");let te=new dn({payerKey:r,recentBlockhash:ne.blockhash,instructions:[ee]}).compileToV0Message([U]),se=new ln(te),h=yield e.simulateTransaction(se);if(console.log("-- feeRes",h),h.value.err){let x=typeof h.value.err=="object"?JSON.stringify(h.value.err):h.value.err;throw x.toString().includes("AccountNotFound")?new Error("Error: Account gas is insufficient."):new Error(`Error: ${x}`)}let V=`Program return: ${m.programId} `,O=h.value.logs.find(x=>x.startsWith(V));if(!O)throw new Error("Error: get deposit fee error");let re=O.slice(V.length),T=Buffer.from(re,"base64");return console.log(T.readBigUInt64LE(0),T.readBigUInt64LE(1)),T.readBigUInt64LE(0)})}var gn=(n,a)=>{let e=a.brokerHash,s=Array.from(Buffer.from(e.slice(2),"hex")),i=a.tokenHash,t=Array.from(Buffer.from(i.slice(2),"hex")),u=a.accountId,m=Array.from(Buffer.from(u.slice(2),"hex")),r=new v(n);return{accountId:m,brokerHash:s,tokenHash:t,userAddress:Array.from(r.toBuffer()),tokenAmount:new _e(a.tokenAmount)}};function Sn(t){return l(this,arguments,function*({vaultAddress:n,userAddress:a,connection:e,sendTransaction:s,depositData:i}){let u=i.brokerHash,m=i.tokenHash;console.log("-- vault address",n);let r=new v(n),o=new mn(le,r,{connection:e}),c=new v(i.USDCAddress),S=new v(a),D=L(c,S),k=ce(r),E=L(c,k),M=$e(r,u),R=en(r,m),b=pe(r);console.log("-- oappconfig pda",b.toBase58());let A=Me(r),H=fe(r,b,A),q=ye(r,b,A),W=nn(),X=ge(b,A),J=Se(A),$=an(W),ee=be(),ne=Ae(r,b,A),ae=tn(),U=sn(),te=Pe(b,A),se=ke(A),h=rn(),V=he(),O=De(),re=Ee(),T=gn(a,i),x=yield Te({vaultAddress:n,userAddress:a,connection:e,depositData:i}),Re={nativeFee:new _e(x.toString()),lzTokenFee:new _e(0)};console.log("--- value params",{vaultDepositParams:T,sendParam:Re});let Pn=yield o.methods.deposit(T,Re).accounts({userTokenAccount:D,vaultAuthority:k,vaultTokenAccount:E,depositToken:c,user:S,peer:H,enforcedOptions:q,oappConfig:b,allowedBroker:M,allowedToken:R}).remainingAccounts([{isSigner:!1,isWritable:!1,pubkey:g},{isSigner:!1,isWritable:!1,pubkey:b},{isSigner:!1,isWritable:!1,pubkey:f},{isSigner:!1,isWritable:!1,pubkey:X},{isSigner:!1,isWritable:!1,pubkey:J},{isSigner:!1,isWritable:!1,pubkey:$},{isSigner:!1,isWritable:!1,pubkey:ee},{isSigner:!1,isWritable:!0,pubkey:ne},{isSigner:!1,isWritable:!1,pubkey:ae},{isSigner:!1,isWritable:!1,pubkey:g},{isSigner:!1,isWritable:!1,pubkey:U},{isSigner:!1,isWritable:!1,pubkey:te},{isSigner:!1,isWritable:!1,pubkey:se},{isSigner:!0,isWritable:!1,pubkey:S},{isSigner:!1,isWritable:!1,pubkey:Ne},{isSigner:!1,isWritable:!1,pubkey:Fn.programId},{isSigner:!1,isWritable:!1,pubkey:h},{isSigner:!1,isWritable:!1,pubkey:f},{isSigner:!1,isWritable:!1,pubkey:C},{isSigner:!1,isWritable:!0,pubkey:V},{isSigner:!1,isWritable:!1,pubkey:I},{isSigner:!1,isWritable:!1,pubkey:O},{isSigner:!1,isWritable:!1,pubkey:K},{isSigner:!1,isWritable:!0,pubkey:re},{isSigner:!1,isWritable:!1,pubkey:I},{isSigner:!1,isWritable:!1,pubkey:O}]).instruction(),kn=Ie(r),Oe=yield we(e,kn);if(!Oe){console.log("-- lookup table account error");return}let hn=Gn.setComputeUnitLimit({units:4e5}),Dn=yield e.getLatestBlockhash(),En=new dn({payerKey:S,recentBlockhash:Dn.blockhash,instructions:[Pn,hn]}).compileToV0Message([Oe]),Mn=new ln(En),Ce=yield s(Mn,e);return console.log("res",Ce),Ce})}function bn(n){let a=window.localStorage.getItem(Yn);if(!a)return!1;let e=JSON.parse(a!=null?a:"[]");return console.log("-- addressArr",e),!!e.includes(n)}import{bytesToHex as Jn}from"ethereum-cryptography/utils";import{getAccount as $n}from"@solana/spl-token";import{clusterApiUrl as ea,Connection as xe,PublicKey as _,Transaction as na,TransactionInstruction as Be}from"@solana/web3.js";import{WalletAdapterNetwork as aa}from"@solana/wallet-adapter-base";var ve=class extends Qn{constructor(){super();B(this,"chainNamespace",qn.solana);B(this,"_address");B(this,"_chainId");B(this,"_provider");B(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 xe(this._provider.rpcUrl,{commitment:"confirmed"}),this._connection;if(this._provider.network===aa.Devnet)return this._connection=new xe(ea(this._provider.network),{commitment:"confirmed"}),this._connection;let e=jn.get("account"),s="/v1/solana-rpc-proxy";return this._connection=new xe(`${e.apiBaseUrl}${s}`,{commitment:"confirmed",fetchMiddleware:(i,t,u)=>l(this,null,function*(){let m={url:s,method:t==null?void 0:t.method,data:JSON.parse(t==null?void 0:t.body)},r=yield this.signMessageByOrderlyKey(m);for(let o of Object.keys(r))(t==null?void 0:t.headers)[o]=r[o];return u(i,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=An.utils.randomPrivateKey(),s=Xn(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 l(this,null,function*(){if(bn(this._address)){let t=new na;t.add(new Be({keys:[],programId:new _("ComputeBudget111111111111111111111111111111"),data:new Uint8Array([3,0,0,0,0,0,0,0,0])})),t.add(new Be({keys:[],programId:new _("ComputeBudget111111111111111111111111111111"),data:new Uint8Array([2,0,0,0,0])})),t.add(new Be({keys:[],programId:new _("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),data:e}));let u=new _(this.address);t.feePayer=u;let m=new Uint8Array(32).fill(0);t.recentBlockhash=new _(m).toString();let o=(yield this._provider.signTransaction(t)).signatures[0].signature;if(o)return this.uint8ArrayToHexString(o);throw console.log("-- sign message error",o),new Error("Unsupported signature")}let i=yield this._provider.signMessage(e);return"0x"+Jn(i)})}generateRegisterAccountMessage(e){return l(this,null,function*(){let[s,i]=pn(P(y({},e),{chainId:this.chainId})),t=yield this.signMessage(i);return{message:P(y({},s),{chainType:"SOL"}),signatured:t}})}generateWithdrawMessage(e){return l(this,null,function*(){let[s,i]=fn(P(y({},e),{chainId:this.chainId})),t=yield this.signMessage(i);return{message:P(y({},s),{chainType:"SOL"}),domain:{name:"",version:"",chainId:this.chainId,verifyingContract:e.verifyContract},signatured:t}})}generateAddOrderlyKeyMessage(e){return l(this,null,function*(){let[s,i]=cn(P(y({},e),{chainId:this.chainId})),t=yield this.signMessage(i);return{message:P(y({},s),{chainType:"SOL"}),signatured:t}})}generateSettleMessage(e){return l(this,null,function*(){let[s,i]=yn(P(y({},e),{chainId:this.chainId})),t=yield this.signMessage(i);return{message:P(y({},s),{chainType:"SOL"}),domain:{name:"",version:"",chainId:this.chainId,verifyingContract:e.verifyContract},signatured:t}})}getBalance(){return l(this,null,function*(){return BigInt(0)})}call(e,s,i,t){return l(this,null,function*(){if(s==="balanceOf"){let u=new _(e),m=new _(this._address),r=L(u,m),o=this.connection;return(yield $n(o,r,"confirmed")).amount}return s==="allowance"?Zn:BigInt(0)})}sendTransaction(e,s,i,t){return l(this,null,function*(){if(console.log("-- solanan sendTransaction",{contractAddress:e,method:s,payload:i,options:t}),s==="deposit")return Sn({vaultAddress:e,userAddress:this._address,connection:this.connection,depositData:i.data[0],sendTransaction:this._provider.sendTransaction})})}callOnChain(e,s,i,t,u){return l(this,null,function*(){return console.log("-- params ",{chain:e,address:s,method:i,params:t}),i==="getDepositFee"?Te({vaultAddress:s,userAddress:this._address,connection:this.connection,depositData:t[1]}):0})}pollTransactionReceiptWithBackoff(e,s,i,t){return l(this,null,function*(){return Promise.resolve({status:1})})}};export{ve as DefaultSolanaWalletAdapter,Bn as version};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|