@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 509 kB
JavaScript
var $m=Object.defineProperty,Jm=Object.defineProperties;var ed=Object.getOwnPropertyDescriptors;var Ir=Object.getOwnPropertySymbols;var mc=Object.prototype.hasOwnProperty,dc=Object.prototype.propertyIsEnumerable;var lc=(s,e,t)=>e in s?$m(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,M=(s,e)=>{for(var t in e||(e={}))mc.call(e,t)&&lc(s,t,e[t]);if(Ir)for(var t of Ir(e))dc.call(e,t)&&lc(s,t,e[t]);return s},D=(s,e)=>Jm(s,ed(e));var ze=(s,e)=>{var t={};for(var n in s)mc.call(s,n)&&e.indexOf(n)<0&&(t[n]=s[n]);if(s!=null&&Ir)for(var n of Ir(s))e.indexOf(n)<0&&dc.call(s,n)&&(t[n]=s[n]);return t};import Zm from"axios";import{PublicKey as yc}from"@solana/web3.js";import{get as _a,set as pc}from"lodash";var td=(o=>(o[o.Error=0]="Error",o[o.Warning=1]="Warning",o[o.Info=2]="Info",o[o.Debug=3]="Debug",o))(td||{}),Va=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(n=>typeof n=="object"?JSON.stringify(n):n).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},Ea={},fc={};function ke(s){let e=_a(Ea,s);if(!e){let t=_a(fc,s);e=new Va({name:s,logLevel:t}),pc(Ea,s,e)}return e}function gb(s,e){pc(fc,s,e);let t=_a(Ea,s);t&&(t.level=e)}import{MINT_SIZE as nd,TOKEN_PROGRAM_ID as od,getTransferFeeConfig as id,unpackMint as rd}from"@solana/spl-token";var Da=ke("Raydium_accountInfo_util");async function wt(s,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:i=100}=M({batchRequest:!1},t),r=Wa(e,i),a=new Array(r.length).fill([]);if(n){let c=r.map(d=>{let p=s._buildArgs([d.map(m=>m.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:p}}),u=Wa(c,10);a=(await(await Promise.all(u.map(async d=>await s._rpcBatchRequest(d)))).flat()).map(d=>(d.error&&Da.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${d.error.message}`),d.result.value.map(p=>{if(p){let{data:m,executable:f,lamports:y,owner:b,rentEpoch:g}=p;return m.length!==2&&m[1]!=="base64"&&Da.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(m[0],"base64"),executable:f,lamports:y,owner:new yc(b),rentEpoch:g}}return null})))}else try{a=await Promise.all(r.map(c=>s.getMultipleAccountsInfo(c,o)))}catch(c){c instanceof Error&&Da.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}async function Me(s,e,t){let n=await wt(s,e.map(o=>o.pubkey),t);return e.map((o,i)=>D(M({},o),{accountInfo:n[i]}))}var ad=(n=>(n[n.Uninitialized=0]="Uninitialized",n[n.Mint=1]="Mint",n[n.Account=2]="Account",n))(ad||{}),xb=1;async function bo({connection:s,mints:e,config:t}){var i,r,a;if(e.length===0)return{};let n=await Me(s,e.map(c=>({pubkey:St(c)})),t),o={};for(let c of n){if(!c.accountInfo||c.accountInfo.data.length<nd){console.log("invalid mint account",c.pubkey.toBase58());continue}let u=rd(c.pubkey,c.accountInfo,(i=c.accountInfo)==null?void 0:i.owner);o[c.pubkey.toString()]=D(M({},u),{programId:((r=c.accountInfo)==null?void 0:r.owner)||od,feeConfig:(a=id(u))!=null?a:void 0})}return o[yc.default.toBase58()]=o[j.toBase58()],o}import ft from"bn.js";import mb from"decimal.js";import pd from"big.js";import Yn from"bn.js";import sd from"toformat";var ud=sd,gi=ud;import xr from"big.js";import cd from"bn.js";import ld from"decimal.js-light";import Pi from"bn.js";var qa=(n=>(n[n.ROUND_DOWN=0]="ROUND_DOWN",n[n.ROUND_HALF_UP=1]="ROUND_HALF_UP",n[n.ROUND_UP=2]="ROUND_UP",n))(qa||{}),bc=9007199254740991;function se(s){let e=ke("Raydium_parseBigNumberish");if(s instanceof Pi)return s;if(typeof s=="string"){if(s.match(/^-?[0-9]+$/))return new Pi(s);e.logWithError(`invalid BigNumberish string: ${s}`)}return typeof s=="number"?(s%1&&e.logWithError(`BigNumberish number underflow: ${s}`),(s>=bc||s<=-bc)&&e.logWithError(`BigNumberish number overflow: ${s}`),new Pi(String(s))):typeof s=="bigint"?new Pi(s.toString()):(e.error(`invalid BigNumberish value: ${s}`),new Pi(0))}var Br=ke("module/fraction"),Ua=gi(xr),Ai=gi(ld),md={[0]:Ai.ROUND_DOWN,[1]:Ai.ROUND_HALF_UP,[2]:Ai.ROUND_UP},dd={[0]:xr.roundDown,[1]:xr.roundHalfUp,[2]:xr.roundUp},fe=class{constructor(e,t=new cd(1)){this.numerator=se(e),this.denominator=se(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new fe(this.denominator,this.numerator)}add(e){let t=e instanceof fe?e:new fe(se(e));return this.denominator.eq(t.denominator)?new fe(this.numerator.add(t.numerator),this.denominator):new fe(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof fe?e:new fe(se(e));return this.denominator.eq(t.denominator)?new fe(this.numerator.sub(t.numerator),this.denominator):new fe(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof fe?e:new fe(se(e));return new fe(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof fe?e:new fe(se(e));return new fe(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||Br.logWithError(`${e} is not an integer.`),e<=0&&Br.logWithError(`${e} is not positive.`),Ai.set({precision:e+1,rounding:md[n]});let o=new Ai(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return o.toFormat(o.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},n=1){return Number.isInteger(e)||Br.logWithError(`${e} is not an integer.`),e<0&&Br.logWithError(`${e} is negative.`),Ua.DP=e,Ua.RM=dd[n]||1,new Ua(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var fd=ke("Raydium_amount"),Sr=gi(pd);function gc(s,e){let t="0",n="0";if(s.includes(".")){let o=s.split(".");o.length===2?([t,n]=o,n=n.padEnd(e,"0")):fd.logWithError(`invalid number string, num: ${s}`)}else t=s;return[t,n.slice(0,e)||n]}var he=class extends fe{constructor(t,n,o=!0,i){let r=new Yn(0),a=Po.pow(new Yn(t.decimals));if(o)r=se(n);else{let c=new Yn(0),u=new Yn(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[l,d]=gc(n.toString(),t.decimals);c=se(l),u=se(d)}c=c.mul(a),r=c.add(u)}super(r,a);this.logger=ke(i||"TokenAmount"),this.token=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.token.equals(t.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(t.raw)}lt(t){return this.token.equals(t.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(t.raw)}add(t){return this.token.equals(t.token)||this.logger.logWithError("add token not equals"),new he(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new he(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,n,o=0){return super.toSignificant(t,n,o)}toFixed(t=this.token.decimals,n,o=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,n,o)}toExact(t={groupSeparator:""}){return Sr.DP=this.token.decimals,new Sr(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}},go=class extends fe{constructor(t,n,o=!0,i){let r=new Yn(0),a=Po.pow(new Yn(t.decimals));if(o)r=se(n);else{let c=new Yn(0),u=new Yn(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[l,d]=gc(n.toString(),t.decimals);c=se(l),u=se(d)}c=c.mul(a),r=c.add(u)}super(r,a);this.logger=ke(i||"TokenAmount"),this.currency=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.currency.equals(t.currency)||this.logger.logWithError("gt currency not equals"),this.raw.gt(t.raw)}lt(t){return this.currency.equals(t.currency)||this.logger.logWithError("lt currency not equals"),this.raw.lt(t.raw)}add(t){return this.currency.equals(t.currency)||this.logger.logWithError("add currency not equals"),new go(this.currency,this.raw.add(t.raw))}sub(t){return this.currency.equals(t.currency)||this.logger.logWithError("sub currency not equals"),new go(this.currency,this.raw.sub(t.raw))}toSignificant(t=this.currency.decimals,n,o=0){return super.toSignificant(t,n,o)}toFixed(t=this.currency.decimals,n,o=0){return t>this.currency.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,n,o)}toExact(t={groupSeparator:""}){return Sr.DP=this.currency.decimals,new Sr(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as yd}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Pc}from"@solana/spl-token";var Bn={chainId:101,address:yd.default.toBase58(),programId:Pc.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},kt={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Pc.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as Qa}from"@solana/web3.js";import{PublicKey as Qe,SystemProgram as Ac,SYSVAR_RENT_PUBKEY as bd}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as gd}from"@solana/spl-token";function T({pubkey:s,isSigner:e=!1,isWritable:t=!0}){return{pubkey:s,isWritable:t,isSigner:e}}var Ga=[T({pubkey:gd,isWritable:!1}),T({pubkey:Ac.programId,isWritable:!1}),T({pubkey:bd,isWritable:!1})];function za({publicKey:s,transformSol:e}){let t=Ya(s.toString());if(t instanceof Qe)return e&&t.equals(Tt)?j:t;if(e&&t.toString()===Tt.toBase58())return j;if(typeof t=="string"){if(t===Qe.default.toBase58())return Qe.default;try{return new Qe(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Ya(s){try{return new Qe(s)}catch{return s}}var en=new Qe("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),st=new Qe("SysvarRent111111111111111111111111111111111"),Xa=new Qe("SysvarC1ock11111111111111111111111111111111"),dn=new Qe("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Kr=new Qe("Sysvar1nstructions1111111111111111111111111"),Cr=Ac.programId,ig=new Qe("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),rg=new Qe("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ag=new Qe("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),sg=new Qe("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ug=new Qe("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),cg=new Qe("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),lg=new Qe("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),mg=new Qe("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),dg=new Qe("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),pg=new Qe("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),fg=new Qe("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),j=new Qe("So11111111111111111111111111111111111111112"),Tt=Qe.default;function St(s){return za({publicKey:s,transformSol:!0})}var Ha=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:i=!1,isToken2022:r=!1}){if(e===Tt.toBase58()||e instanceof Qa&&Tt.equals(e)){this.decimals=kt.decimals,this.symbol=kt.symbol,this.name=kt.name,this.mint=new Qa(kt.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=n||e.toString().substring(0,6),this.name=o||e.toString().substring(0,6),this.mint=i?Qa.default:za({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},Oe=Ha;Oe.WSOL=new Ha(D(M({},kt),{mint:kt.address}));var Za=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},wi=Za;wi.SOL=new Za(Bn);function hg(s,e){return s instanceof Oe&&e instanceof Oe?s.equals(e):s instanceof Oe||e instanceof Oe?!1:s===e}import Pd from"bn.js";var wc=new fe(new Pd(100)),Je=class extends fe{toSignificant(e=5,t,n){return this.mul(wc).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(wc).toFixed(e,t,n)}};var Ad=ke("Raydium_price"),yt=class extends fe{constructor(t){let{baseToken:n,quoteToken:o,numerator:i,denominator:r}=t;super(i,r);this.baseToken=n,this.quoteToken=o,this.scalar=new fe(ja(n.decimals),ja(o.decimals))}get raw(){return new fe(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new yt({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Ad.logWithError("mul token not equals");let n=super.mul(t);return new yt({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:n.denominator,numerator:n.numerator})}toSignificant(t=this.quoteToken.decimals,n,o){return this.adjusted.toSignificant(t,n,o)}toFixed(t=this.quoteToken.decimals,n,o){return this.adjusted.toFixed(t,n,o)}};import{merge as ub}from"lodash";var Rr="please provide owner in load() initialization or you can set by calling raydium.setOwner(owner)",kc="please provide connection in load() initialization or set it by raydium.setConnection(connection)";var pn=class{constructor(e){this._owner=e}get publicKey(){return pn.isKeyPair(this._owner)?this._owner.publicKey:this._owner}get signer(){return pn.isKeyPair(this._owner)?this._owner:void 0}get isKeyPair(){return pn.isKeyPair(this._owner)}get isPublicKey(){return pn.isPublicKey(this._owner)}static isKeyPair(e){return e.secretKey!==void 0}static isPublicKey(e){return!pn.isKeyPair(e)}};import{PublicKey as Ur,SystemProgram as Fp}from"@solana/web3.js";import{AccountLayout as Go,createAssociatedTokenAccountIdempotentInstruction as gs,TOKEN_PROGRAM_ID as Zn,TOKEN_2022_PROGRAM_ID as vp}from"@solana/spl-token";import{PublicKey as Wo,sendAndConfirmTransaction as os,SystemProgram as Id,Transaction as hi,TransactionMessage as Ii,VersionedTransaction as Bi}from"@solana/web3.js";import Bd from"axios";import{PublicKey as $a,AddressLookupTableAccount as Eo}from"@solana/web3.js";async function Ja({connection:s,address:e,cluster:t="mainnet"}){let n=await wt(s,[...new Set(e.map(i=>i.toString()))].map(i=>new $a(i))),o={};for(let i=0;i<e.length;i++){let r=n[i],a=e[i];if(!r)continue;let c=new Eo({key:a,state:Eo.deserialize(r.data)});o[a.toString()]=c,t==="devnet"?Vo[a.toString()]=c:_o[a.toString()]=c}return o}var _o={},es=async s=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(_o[e])return _o;let t=new $a(e),n=await s.getAccountInfo(t);return n&&(_o[e]=new Eo({key:t,state:Eo.deserialize(n.data)})),_o},Vo={},ts=async s=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Vo[e])return Vo;let t=new $a(e),n=await s.getAccountInfo(t);return n&&(Vo[e]=new Eo({key:t,state:Eo.deserialize(n.data)})),Vo};var Ln=(t=>(t[t.V0=0]="V0",t[t.LEGACY=1]="LEGACY",t))(Ln||{}),Y={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as Tc,Keypair as hc,PublicKey as Ic,Transaction as Or,TransactionMessage as wd,VersionedTransaction as ns}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as kd}from"@solana/spl-token";var On=ke("Raydium_txUtil"),Bc=1644;function Nr(s){let e=[],t=[];return s.microLamports&&(e.push(Tc.setComputeUnitPrice({microLamports:s.microLamports})),t.push(Y.SetComputeUnitPrice)),s.units&&(e.push(Tc.setComputeUnitLimit({units:s.units})),t.push(Y.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Do(s,e){var n,o;let t=e!=null?e:"confirmed";return(o=await((n=s.getLatestBlockhash)==null?void 0:n.call(s,{commitment:t})))==null?void 0:o.blockhash}async function Mr(s,e){return s.getSignatureStatuses([e]),new Promise((t,n)=>{let o=setTimeout(n,6e4);s.onSignature(e,i=>{if(clearTimeout(o),!i.err){t("");return}n(Object.assign(i.err,{txId:e}))},"confirmed")})}function Fr(s,e){s.length<1&&On.logWithError(`no instructions provided: ${s.toString()}`),e.length<1&&On.logWithError(`no signers provided:, ${e.toString()}`);let t=new Or;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...s);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Bc}catch{return!1}}async function Hg(s,e,t,n=!0){let o=new Ic("RaydiumSimuLateTransaction11111111111111111"),i=[],r=new Or;r.feePayer=o;for(let u of e)Fr([...r.instructions,u],[o])||(i.push(r),r=new Or,r.feePayer=o),r.add(u);r.instructions.length>0&&i.push(r);let a=[];try{if(a=await Td(s,i,n),a.find(u=>u.err!==null))throw Error("rpc simulateTransaction error")}catch(u){u instanceof Error&&On.logWithError("failed to simulate for instructions","RPC_ERROR",{message:u.message})}let c=[];for(let u of a)if(On.debug("simulate result:",u),u.logs){let l=u.logs.filter(d=>d&&d.includes(t));On.debug("filteredLog:",c),l.length||On.logWithError("simulate log not match keyword","keyword",t),c.push(...l)}return c}function Zg(s,e){let t=s.match(/{["\w:,]+}/g);return!t||t.length!==1?On.logWithError(`simulate log fail to match json, keyword: ${e}`):t[0]}function jg(s,e){let n=new RegExp(`"${e}":(\\d+)`,"g").exec(s);return!n||n.length!==2?On.logWithError(`simulate log fail to match key", key: ${e}`):n[1]}function ie(s,e){let[t,n]=Ic.findProgramAddressSync(s,e);return{publicKey:t,nonce:n}}async function Td(s,e,t){let n=[];if(t){let o=await s.getLatestBlockhash(),i=[];for(let u of e){u.recentBlockhash=o.blockhash,u.lastValidBlockHeight=o.lastValidBlockHeight;let d=u._compile().serialize(),m=u._serialize(d).toString("base64");i.push(m)}let r=i.map(u=>{let l=s._buildArgs([u],void 0,"base64");return{methodName:"simulateTransaction",args:l}}),a=[],c=20;for(let u=0;u<Math.ceil(r.length/c);u++)a.push(r.slice(u*c,(u+1)*c));n=await(await Promise.all(a.map(async u=>(await s._rpcBatchRequest(u)).map(l=>l.result.value)))).flat()}else try{n=await Promise.all(e.map(async o=>await(await s.simulateTransaction(o)).value))}catch(o){o instanceof Error&&On.logWithError("failed to get info for multiple accounts","RPC_ERROR",{message:o.message})}return n}function ki({instructions:s,payer:e,signers:t}){return Fr(s,[e,...t])}function Ti({instructions:s,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=hc.generate().publicKey.toString()}){let i=new wd({payerKey:e,recentBlockhash:n,instructions:s}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new ns(i).serialize()).toString("base64").length<Bc}catch{return!1}}var Lr={time:0,data:void 0};async function $g(s){if(!Lr.data||(Date.now()-Lr.time)/1e3>30){let e=await s.getEpochInfo();return Lr={time:Date.now(),data:e},e}else return Lr.data}var xc=s=>Buffer.isBuffer(s)?s:s instanceof Uint8Array?Buffer.from(s.buffer,s.byteOffset,s.byteLength):Buffer.from(s),hd=s=>{let e=s.serialize({requireAllSignatures:!1,verifySignatures:!1});s instanceof ns&&(e=xc(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ao(s){let e=[];return s.forEach(t=>{t instanceof Or&&(t.recentBlockhash||(t.recentBlockhash=kd.toBase58()),t.feePayer||(t.feePayer=hc.generate().publicKey)),e.push(hd(t))}),console.log("simulate tx string:",e),e}function Jg(s){let e=s.serialize({requireAllSignatures:!1,verifySignatures:!1});return s instanceof ns&&(e=xc(e)),e.toString("base64")}var vr=2e3,_r=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var n;let e=(await Bd.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(n=e==null?void 0:e[15])!=null?n:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:n}=Nr(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Id.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Wo(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(Y.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let n=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(n))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:n=[],instructionTypes:o=[],endInstructionTypes:i=[],lookupTableAddress:r=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...n),this.instructionTypes.push(...o),this.endInstructionTypes.push(...i),this.lookupTableAddress.push(...r.filter(a=>a!==Wo.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:n}){return e===0?await this.buildV0(D(M({},t||{}),{lookupTableAddress:n})):this.build(t)}build(e){var n;let t=new hi;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((n=this.owner)==null?void 0:n.signer)&&!this.signers.some(o=>o.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async o=>{var l;let{recentBlockHash:i,skipPreflight:r=!0,sendAndConfirm:a,notSendToRpc:c}=o||{},u=i!=null?i:await Do(this.connection,this.blockhashCommitment);if(t.recentBlockhash=u,this.signers.length&&t.sign(...this.signers),Ao([t]),(l=this.owner)!=null&&l.isKeyPair)return{txId:a?await os(this.connection,t,this.signers.find(p=>p.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:r}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:r}),signedTx:t};if(this.signAllTransactions){let d=await this.signAllTransactions([t]);if(this.signers.length)for(let p of d)try{p.sign(...this.signers)}catch{}return{txId:c?"":await this.connection.sendRawTransaction(d[0].serialize(),{skipPreflight:r}),signedTx:d[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var u;let{extraPreBuildData:t=[],extInfo:n}=e,{transaction:o}=this.build(n),i=t.filter(l=>l.transaction.instructions.length>0),r=[o,...i.map(l=>l.transaction)],a=[this.signers,...i.map(l=>l.signers)],c=[...this.instructionTypes,...i.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&a.forEach(l=>{l.some(d=>d.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:r,signers:a,instructionTypes:c,execute:async l=>{var g;let{sequentially:d,onTxUpdate:p,skipTxCount:m=0,recentBlockHash:f,skipPreflight:y=!0}=l||{},b=f!=null?f:await Do(this.connection,this.blockhashCommitment);if((g=this.owner)!=null&&g.isKeyPair){if(d){let P=[],k=0;for(let I of r){if(++k,k<=m)continue;let A=await os(this.connection,I,this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:y});P.push(A)}return{txIds:P,signedTxs:r}}return{txIds:await await Promise.all(r.map(async P=>(P.recentBlockhash=b,await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:y})))),signedTxs:r}}if(this.signAllTransactions){let P=r.map((I,A)=>(I.recentBlockhash=b,a[A].length&&I.sign(...a[A]),I));Ao(P);let k=await this.signAllTransactions(P);if(d){let I=0,A=[],h=async()=>{if(!k[I])return;let B=await this.connection.sendRawTransaction(k[I].serialize(),{skipPreflight:y});A.push({txId:B,status:"sent",signedTx:k[I]}),p==null||p([...A]),I++;let S=!1,K=null,x=null,C=R=>{K!==null&&clearInterval(K),x!==null&&this.connection.removeSignatureListener(x);let N=A.findIndex(O=>O.txId===B);if(N>-1){if(A[N].status==="error"||A[N].status==="success")return;A[N].status=R.err?"error":"success"}p==null||p([...A]),R.err||h()};this.loopMultiTxStatus&&(K=setInterval(async()=>{var R;if(S){clearInterval(K);return}try{let N=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});N&&(S=!0,clearInterval(K),C({err:((R=N.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",B))}catch(N){S=!0,clearInterval(K),console.error("getTransaction timeout:",N,B)}},vr)),x=this.connection.onSignature(B,R=>{if(S){this.connection.removeSignatureListener(x);return}S=!0,C(R)},"confirmed"),this.connection.getSignatureStatus(B)};return await h(),{txIds:A.map(B=>B.txId),signedTxs:k}}else{let I=[];for(let A=0;A<k.length;A+=1){let h=await this.connection.sendRawTransaction(k[A].serialize(),{skipPreflight:y});I.push(h)}return{txIds:I,signedTxs:k}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:n}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:n||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:n})}async buildV0(e){var y;let f=e||{},{lookupTableCache:t={},lookupTableAddress:n=[],forerunCreate:o,recentBlockhash:i}=f,r=ze(f,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=M(M({},this.cluster==="devnet"?await ts(this.connection):await es(this.connection)),t),c=Array.from(new Set([...n,...this.lookupTableAddress])),u=[];for(let b of c)a[b]===void 0&&u.push(new Wo(b));let l=await Ja({connection:this.connection,address:u});for(let[b,g]of Object.entries(l))a[b]=g;let d=o?Wo.default.toBase58():i!=null?i:await Do(this.connection,this.blockhashCommitment),p=new Ii({payerKey:this.feePayer,recentBlockhash:d,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(a));((y=this.owner)==null?void 0:y.signer)&&!this.signers.some(b=>b.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let m=new Bi(p);return m.sign(this.signers),{builder:this,transaction:m,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async b=>{var I;let{skipPreflight:g=!0,sendAndConfirm:P,notSendToRpc:k}=b||{};if(Ao([m]),(I=this.owner)!=null&&I.isKeyPair){let A=await this.connection.sendTransaction(m,{skipPreflight:g});return P&&await Mr(this.connection,A),{txId:A,signedTx:m}}if(this.signAllTransactions){let A=await this.signAllTransactions([m]);if(this.signers.length)for(let h of A)try{h.sign(this.signers)}catch{}return{txId:k?"":await this.connection.sendTransaction(A[0],{skipPreflight:g}),signedTx:A[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async buildV0MultiTx(e){var u;let{extraPreBuildData:t=[],buildProps:n}=e,{transaction:o}=await this.buildV0(n),i=t.filter(l=>l.builder.instructions.length>0),r=[o,...i.map(l=>l.transaction)],a=[this.signers,...i.map(l=>l.signers)],c=[...this.instructionTypes,...i.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&a.forEach(l=>{l.some(d=>d.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),r.forEach(async(l,d)=>{l.sign(a[d])}),{builder:this,transactions:r,signers:a,instructionTypes:c,buildProps:n,execute:async l=>{var y;let{sequentially:d,onTxUpdate:p,recentBlockHash:m,skipPreflight:f=!0}=l||{};if(m&&r.forEach(b=>b.message.recentBlockhash=m),Ao(r),(y=this.owner)!=null&&y.isKeyPair){if(d){let b=[];for(let g of r){let P=await this.connection.sendTransaction(g,{skipPreflight:f});await Mr(this.connection,P),b.push(P)}return{txIds:b,signedTxs:r}}return{txIds:await Promise.all(r.map(async b=>await this.connection.sendTransaction(b,{skipPreflight:f}))),signedTxs:r}}if(this.signAllTransactions){let b=await this.signAllTransactions(r);if(d){let g=0,P=[],k=async()=>{if(!b[g])return;let I=await this.connection.sendTransaction(b[g],{skipPreflight:f});P.push({txId:I,status:"sent",signedTx:b[g]}),p==null||p([...P]),g++;let A=!1,h=null,B=null,S=K=>{h!==null&&clearInterval(h),B!==null&&this.connection.removeSignatureListener(B);let x=P.findIndex(C=>C.txId===I);if(x>-1){if(P[x].status==="error"||P[x].status==="success")return;P[x].status=K.err?"error":"success"}p==null||p([...P]),K.err||k()};this.loopMultiTxStatus&&(h=setInterval(async()=>{var K;if(A){clearInterval(h);return}try{let x=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});x&&(A=!0,clearInterval(h),S({err:((K=x.meta)==null?void 0:K.err)||null}),console.log("tx status from getTransaction:",I))}catch(x){A=!0,clearInterval(h),console.error("getTransaction timeout:",x,I)}},vr)),B=this.connection.onSignature(I,K=>{if(A){this.connection.removeSignatureListener(B);return}A=!0,S(K)},"confirmed"),this.connection.getSignatureStatus(I)};return k(),{txIds:[],signedTxs:b}}else{let g=[];for(let P=0;P<b.length;P+=1){let k=await this.connection.sendTransaction(b[P],{skipPreflight:f});g.push(k)}return{txIds:g,signedTxs:b}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async sizeCheckBuild(e){var p;let d=e||{},{splitIns:t=[],computeBudgetConfig:n}=d,o=ze(d,["splitIns","computeBudgetConfig"]),i=n?Nr(n):{instructions:[],instructionTypes:[]},r=this.signers.reduce((m,f)=>D(M({},m),{[f.publicKey.toBase58()]:f}),{}),a=[],c=[],u=[],l=0;if(this.allInstructions.forEach(m=>{let f=[...u,m],y=n?[...i.instructions,...f]:f,g=[...new Set(f.map(P=>P.keys.filter(k=>k.isSigner).map(k=>k.pubkey.toString())).flat()).values()].map(P=>new Wo(P));if(m!==t[l]&&u.length<12&&(ki({instructions:y,payer:this.feePayer,signers:g})||ki({instructions:f,payer:this.feePayer,signers:g})))u.push(m);else{if(u.length===0)throw Error("item ins too big");l+=m===t[l]?1:0,ki({instructions:n?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:g})?a.push(new hi().add(...i.instructions,...u)):a.push(new hi().add(...u)),c.push(Array.from(new Set(u.map(P=>P.keys.filter(k=>k.isSigner).map(k=>k.pubkey.toString())).flat())).map(P=>r[P]).filter(P=>P!==void 0)),u=[m]}}),u.length>0){let f=[...new Set(u.map(y=>y.keys.filter(b=>b.isSigner).map(b=>b.pubkey.toString())).flat()).values()].map(y=>r[y]).filter(y=>y!==void 0);ki({instructions:n?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:f.map(y=>y.publicKey)})?a.push(new hi().add(...i.instructions,...u)):a.push(new hi().add(...u)),c.push(f)}return a.forEach(m=>m.feePayer=this.feePayer),(p=this.owner)!=null&&p.signer&&c.forEach(m=>{m.some(f=>f.publicKey.equals(this.owner.publicKey))||m.push(this.owner.signer)}),{builder:this,transactions:a,signers:c,instructionTypes:this.instructionTypes,execute:async m=>{var I;let{sequentially:f,onTxUpdate:y,skipTxCount:b=0,recentBlockHash:g,skipPreflight:P=!0}=m||{},k=g!=null?g:await Do(this.connection,this.blockhashCommitment);if(a.forEach(async(A,h)=>{A.recentBlockhash=k,c[h].length&&A.sign(...c[h])}),Ao(a),(I=this.owner)!=null&&I.isKeyPair){if(f){let A=0,h=[];for(let B of a){if(++A,A<=b){h.push("tx skipped");continue}let S=await os(this.connection,B,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});h.push(S)}return{txIds:h,signedTxs:a}}return{txIds:await Promise.all(a.map(async A=>await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:P}))),signedTxs:a}}if(this.signAllTransactions){let A=await this.signAllTransactions(a.slice(b,a.length)),h=[...a.slice(0,b),...A];if(f){let B=0,S=[],K=async()=>{if(!h[B])return;B<b&&(S.push({txId:"",status:"success",signedTx:h[B]}),y==null||y([...S]),B++,K());let x=await this.connection.sendRawTransaction(h[B].serialize(),{skipPreflight:P});S.push({txId:x,status:"sent",signedTx:h[B]}),y==null||y([...S]),B++;let C=!1,R=null,N=null,O=L=>{R!==null&&clearInterval(R),N!==null&&this.connection.removeSignatureListener(N);let _=S.findIndex(W=>W.txId===x);if(_>-1){if(S[_].status==="error"||S[_].status==="success")return;S[_].status=L.err?"error":"success"}y==null||y([...S]),L.err||K()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var L;if(C){clearInterval(R);return}try{let _=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(C=!0,clearInterval(R),O({err:((L=_.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",x))}catch(_){C=!0,clearInterval(R),console.error("getTransaction timeout:",_,x)}},vr)),N=this.connection.onSignature(x,L=>{if(C){this.connection.removeSignatureListener(N);return}C=!0,O(L)},"confirmed"),this.connection.getSignatureStatus(x)};return await K(),{txIds:S.map(x=>x.txId),signedTxs:h}}else{let B=[];for(let S=0;S<h.length;S+=1){let K=await this.connection.sendRawTransaction(h[S].serialize(),{skipPreflight:P});B.push(K)}return{txIds:B,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(e){var I;let k=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:o={},lookupTableAddress:i=[],insCountLimit:r=12}=k,a=ze(k,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),c=M(M({},this.cluster==="devnet"?await ts(this.connection):await es(this.connection)),o),u=Array.from(new Set([...this.lookupTableAddress,...i])),l=[];for(let A of u)c[A]===void 0&&l.push(new Wo(A));let d=await Ja({connection:this.connection,address:l});for(let[A,h]of Object.entries(d))c[A]=h;let p=t?Nr(t):{instructions:[],instructionTypes:[]},m=await Do(this.connection,this.blockhashCommitment),f=this.signers.reduce((A,h)=>D(M({},A),{[h.publicKey.toBase58()]:h}),{}),y=[],b=[],g=[],P=0;if(this.allInstructions.forEach(A=>{let h=[...g,A],B=t?[...p.instructions,...h]:h;if(A!==n[P]&&g.length<r&&(Ti({instructions:B,payer:this.feePayer,lookupTableAddressAccount:c})||Ti({instructions:h,payer:this.feePayer,lookupTableAddressAccount:c})))g.push(A);else{if(g.length===0)throw Error("item ins too big");P+=A===n[P]?1:0;let S={};for(let K of[...new Set(u)])c[K]!==void 0&&(S[K]=c[K]);if(t&&Ti({instructions:[...p.instructions,...g],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:m})){let K=new Ii({payerKey:this.feePayer,recentBlockhash:m,instructions:[...p.instructions,...g]}).compileToV0Message(Object.values(c));y.push(new Bi(K))}else{let K=new Ii({payerKey:this.feePayer,recentBlockhash:m,instructions:[...g]}).compileToV0Message(Object.values(c));y.push(new Bi(K))}b.push(Array.from(new Set(g.map(K=>K.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat())).map(K=>f[K]).filter(K=>K!==void 0)),g=[A]}}),g.length>0){let h=[...new Set(g.map(B=>B.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat()).values()].map(B=>f[B]).filter(B=>B!==void 0);if(t&&Ti({instructions:[...p.instructions,...g],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:m})){let B=new Ii({payerKey:this.feePayer,recentBlockhash:m,instructions:[...p.instructions,...g]}).compileToV0Message(Object.values(c));y.push(new Bi(B))}else{let B=new Ii({payerKey:this.feePayer,recentBlockhash:m,instructions:[...g]}).compileToV0Message(Object.values(c));y.push(new Bi(B))}b.push(h)}return(I=this.owner)!=null&&I.signer&&b.forEach(A=>{A.some(h=>h.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),y.forEach((A,h)=>{A.sign(b[h])}),{builder:this,transactions:y,buildProps:e,signers:b,instructionTypes:this.instructionTypes,execute:async A=>{var C;let{sequentially:h,onTxUpdate:B,skipTxCount:S=0,recentBlockHash:K,skipPreflight:x=!0}=A||{};if(y.map(async(R,N)=>{b[N].length&&R.sign(b[N]),K&&(R.message.recentBlockhash=K)}),Ao(y),(C=this.owner)!=null&&C.isKeyPair){if(h){let R=0,N=[];for(let O of y){if(++R,R<=S){console.log("skip tx: ",R),N.push("tx skipped");continue}let L=await this.connection.sendTransaction(O,{skipPreflight:x});await Mr(this.connection,L),N.push(L)}return{txIds:N,signedTxs:y}}return{txIds:await Promise.all(y.map(async R=>await this.connection.sendTransaction(R,{skipPreflight:x}))),signedTxs:y}}if(this.signAllTransactions){let R=await this.signAllTransactions(y.slice(S,y.length)),N=[...y.slice(0,S),...R];if(h){let O=0,L=[],_=async()=>{if(!N[O])return;if(O<S){L.push({txId:"",status:"success",signedTx:N[O]}),B==null||B([...L]),O++,_();return}let W=await this.connection.sendTransaction(N[O],{skipPreflight:x});L.push({txId:W,status:"sent",signedTx:N[O]}),B==null||B([...L]),O++;let X=!1,J=null,ne=null,ae=ue=>{J!==null&&clearInterval(J),ne!==null&&this.connection.removeSignatureListener(ne);let te=L.findIndex(oe=>oe.txId===W);if(te>-1){if(L[te].status==="error"||L[te].status==="success")return;L[te].status=ue.err?"error":"success"}B==null||B([...L]),ue.err||_()};this.loopMultiTxStatus&&(J=setInterval(async()=>{var ue;if(X){clearInterval(J);return}try{let te=await this.connection.getTransaction(W,{commitment:"confirmed",maxSupportedTransactionVersion:0});te&&(X=!0,clearInterval(J),ae({err:((ue=te.meta)==null?void 0:ue.err)||null}),console.log("tx status from getTransaction:",W))}catch(te){X=!0,clearInterval(J),console.error("getTransaction timeout:",te,W)}},vr)),ne=this.connection.onSignature(W,ue=>{if(X){this.connection.removeSignatureListener(ne);return}X=!0,ae(ue)},"confirmed"),this.connection.getSignatureStatus(W)};return _(),{txIds:[],signedTxs:N}}else{let O=[];for(let L=0;L<N.length;L+=1){let _=await this.connection.sendTransaction(N[L],{skipPreflight:x});O.push(_)}return{txIds:O,signedTxs:N}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}};var is=(...s)=>s.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),We=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=ke(t)}createTxBuilder(e){return this.scope.checkOwner(),new _r({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(is(e))}logInfo(...e){this.logger.info(is(e))}logAndCreateError(...e){let t=is(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Cp,SystemProgram as Rp}from"@solana/web3.js";import Lp from"bn.js";import{createCloseAccountInstruction as Op,createInitializeAccountInstruction as Np,createTransferInstruction as Mp,TOKEN_PROGRAM_ID as Uo}from"@solana/spl-token";import{Keypair as Bp,PublicKey as Uc}from"@solana/web3.js";import xp from"bn.js";import{TOKEN_PROGRAM_ID as Sp}from"@solana/spl-token";function xd(s){return s instanceof Uint8Array||s!=null&&typeof s=="object"&&s.constructor.name==="Uint8Array"}function rs(s,...e){if(!xd(s))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(s.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${s.length}`)}function as(s,e=!0){if(s.destroyed)throw new Error("Hash instance has been destroyed");if(e&&s.finished)throw new Error("Hash#digest() has already been called")}function Sc(s,e){rs(s);let t=e.outputLen;if(s.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var Er=s=>new DataView(s.buffer,s.byteOffset,s.byteLength),fn=(s,e)=>s<<32-e|s>>>e;var AP=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Sd(s){if(typeof s!="string")throw new Error(`utf8ToBytes expected string, got ${typeof s}`);return new Uint8Array(new TextEncoder().encode(s))}function ss(s){return typeof s=="string"&&(s=Sd(s)),rs(s),s}var Vr=class{clone(){return this._cloneInto()}},wP={}.toString;function Kc(s){let e=n=>s().update(ss(n)).digest(),t=s();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>s(),e}function Kd(s,e,t,n){if(typeof s.setBigUint64=="function")return s.setBigUint64(e,t,n);let o=BigInt(32),i=BigInt(4294967295),r=Number(t>>o&i),a=Number(t&i),c=n?4:0,u=n?0:4;s.setUint32(e+c,r,n),s.setUint32(e+u,a,n)}var Cc=(s,e,t)=>s&e^~s&t,Rc=(s,e,t)=>s&e^s&t^e&t,Dr=class extends Vr{constructor(e,t,n,o){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Er(this.buffer)}update(e){as(this);let{view:t,buffer:n,blockLen:o}=this;e=ss(e);let i=e.length;for(let r=0;r<i;){let a=Math.min(o-this.pos,i-r);if(a===o){let c=Er(e);for(;o<=i-r;r+=o)this.process(c,r);continue}n.set(e.subarray(r,r+a),this.pos),this.pos+=a,r+=a,this.pos===o&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){as(this),Sc(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:o,isLE:i}=this,{pos:r}=this;t[r++]=128,this.buffer.subarray(r).fill(0),this.padOffset>o-r&&(this.process(n,0),r=0);for(let d=r;d<o;d++)t[d]=0;Kd(n,o-8,BigInt(this.length*8),i),this.process(n,0);let a=Er(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,l=this.get();if(u>l.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;d<u;d++)a.setUint32(4*d,l[d],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:n,length:o,finished:i,destroyed:r,pos:a}=this;return e.length=o,e.pos=a,e.finished=i,e.destroyed=r,o%t&&e.buffer.set(n),e}};var Cd=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Xn=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Qn=new Uint32Array(64),us=class extends Dr{constructor(){super(64,32,8,!1),this.A=Xn[0]|0,this.B=Xn[1]|0,this.C=Xn[2]|0,this.D=Xn[3]|0,this.E=Xn[4]|0,this.F=Xn[5]|0,this.G=Xn[6]|0,this.H=Xn[7]|0}get(){let{A:e,B:t,C:n,D:o,E:i,F:r,G:a,H:c}=this;return[e,t,n,o,i,r,a,c]}set(e,t,n,o,i,r,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=o|0,this.E=i|0,this.F=r|0,this.G=a|0,this.H=c|0}process(e,t){for(let d=0;d<16;d++,t+=4)Qn[d]=e.getUint32(t,!1);for(let d=16;d<64;d++){let p=Qn[d-15],m=Qn[d-2],f=fn(p,7)^fn(p,18)^p>>>3,y=fn(m,17)^fn(m,19)^m>>>10;Qn[d]=y+Qn[d-7]+f+Qn[d-16]|0}let{A:n,B:o,C:i,D:r,E:a,F:c,G:u,H:l}=this;for(let d=0;d<64;d++){let p=fn(a,6)^fn(a,11)^fn(a,25),m=l+p+Cc(a,c,u)+Cd[d]+Qn[d]|0,y=(fn(n,2)^fn(n,13)^fn(n,22))+Rc(n,o,i)|0;l=u,u=c,c=a,a=r+m|0,r=i,i=o,o=n,n=m+y|0}n=n+this.A|0,o=o+this.B|0,i=i+this.C|0,r=r+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(n,o,i,r,a,c,u,l)}roundClean(){Qn.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Lc=Kc(()=>new us);import{PublicKey as kp}from"@solana/web3.js";import Vc,{isBN as Ec}from"bn.js";import{bits as Rd,BitStructure as Ld,blob as Od,Blob as Nd,cstr as Md,f32 as Fd,f32be as vd,f64 as _d,f64be as Vd,greedy as Ed,Layout as Dd,ns64 as Wd,ns64be as qd,nu64 as Ud,nu64be as Gd,offset as zd,s16 as Yd,s16be as Xd,s24 as Qd,s24be as Hd,s32 as Zd,s32be as jd,s40 as $d,s40be as Jd,s48 as ep,s48be as tp,s8 as np,seq as op,struct as CP,Structure as ip,u16 as rp,u16be as ap,u24 as sp,u24be as up,u32 as cp,u32be as lp,u40 as mp,u40be as dp,u48 as pp,u48be as fp,u8 as yp,UInt as bp,union as gp,Union as Pp,unionLayoutDiscriminator as Ap,utf8 as wp}from"@solana/buffer-layout";var xi=Dd,Oc=ip,Nc=Pp,RP=Ld,cs=bp,Mc=Nd,LP=Ed,Wr=yp,ut=rp,OP=sp,Si=cp,NP=mp,MP=pp,Fc=Ud,FP=ap,vP=up,_P=lp,VP=dp,EP=fp,DP=Gd,WP=np,qP=Yd,UP=Qd,ct=Zd,GP=$d,zP=ep,YP=Wd,XP=Xd,QP=Hd,HP=jd,ZP=Jd,jP=tp,$P=qd,JP=Fd,eA=vd,tA=_d,nA=Vd;var vc=op,_c=gp,oA=Ap,Ae=Od,iA=Md,rA=wp,ls=Rd,ms=zd;var wo=class extends xi{constructor(t,n,o){super(t,o);this.blob=Ae(t),this.signed=n}decode(t,n=0){let o=new Vc(this.blob.decode(t,n),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(t,n,o=0){return typeof t=="number"&&(t=new Vc(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},qr=class extends xi{constructor(t){super(8,t);this._lower=ls(Si(),!1),this._upper=ls(Si(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,n=0){let o=this._lower.decode(t,n),i=this._upper.decode(t,n+this._lower.span);return M(M({},o),i)}encode(t,n,o=0){return this._lower.encode(t,n,o)+this._upper.encode(t,n,o+this._lower.span)}};function V(s){return new cs(1,s)}function qe(s){return new cs(4,s)}function w(s){return new wo(8,!1,s)}function de(s){return new wo(16,!1,s)}function Dc(s){return new wo(1,!0,s)}function qo(s){return new wo(8,!0,s)}function Wc(s){return new wo(16,!0,s)}var Nn=class extends xi{constructor(t,n,o,i){super(t.span,i);this.layout=t,this.decoder=n,this.encoder=o}decode(t,n){return this.decoder(this.layout.decode(t,n))}encode(t,n,o){return this.layout.encode(this.encoder(t),n,o)}getSpan(t,n){return this.layout.getSpan(t,n)}};function F(s){return new Nn(Ae(32),e=>new kp(e),e=>e.toBuffer(),s)}var ds=class extends xi{constructor(t,n){super(-1,n);this.layout=t,this.discriminator=Wr()}encode(t,n,o=0){return t==null?this.discriminator.encode(0,n,o):(this.discriminator.encode(1,n,o),this.layout.encode(t,n,o+1)+1)}decode(t,n=0){let o=this.discriminator.decode(t,n);if(o===0)return null;if(o===1)return this.layout.decode(t,n+1);throw new Error("Invalid option "+this.property)}getSpan(t,n=0){let o=this.discriminator.decode(t,n);if(o===0)return 1;if(o===1)return this.layout.getSpan(t,n+1)+1;throw new Error("Invalid option "+this.property)}};function lA(s,e){return new ds(s,e)}function He(s){return new Nn(Wr(),Tp,hp,s)}function Tp(s){if(s===0)return!1;if(s===1)return!0;throw new Error("Invalid bool: "+s)}function hp(s){return s?1:0}function qc(s,e){let t=Si("length"),n=v([t,Z(s,ms(t,-t.span),"values")]);return new Nn(n,({values:o})=>o,o=>({values:o}),e)}function mA(s,e,t){let n=v([w("tag"),e.replicate("data")]);function o({tag:i,data:r}){if(!i.eq(s))throw new Error("Invalid tag, expected: "+s.toString("hex")+", got: "+i.toString("hex"));return r}return new Nn(n,o,i=>({tag:s,data:i}),t)}function Ip(s){let e=Si("length"),t=v([e,Ae(ms(e,-e.span),"data")]);return new Nn(t,({data:n})=>n,n=>({data:n}),s)}function Kt(s){return new Nn(Ip(),e=>e.toString("utf-8"),e=>Buffer.from(e,"utf-8"),s)}function dA(s,e){let t=_c(Wr(),e);return s.forEach((n,o)=>t.addVariant(o,n,n.property)),t}function pA(s,e,t){let n=v([Z(s,e,"values")]);return new Nn(n,({values:o})=>o,o=>({values:o}),t)}var ps=class extends Oc{decode(e,t){return super.decode(e,t)}};function v(s,e,t){return new ps(s,e,t)}var fs=class extends Nc{encodeInstruction(e)