UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 509 kB
var ed=Object.defineProperty,td=Object.defineProperties;var nd=Object.getOwnPropertyDescriptors;var Br=Object.getOwnPropertySymbols;var dc=Object.prototype.hasOwnProperty,pc=Object.prototype.propertyIsEnumerable;var mc=(s,e,t)=>e in s?ed(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,M=(s,e)=>{for(var t in e||(e={}))dc.call(e,t)&&mc(s,t,e[t]);if(Br)for(var t of Br(e))pc.call(e,t)&&mc(s,t,e[t]);return s},D=(s,e)=>td(s,nd(e));var ze=(s,e)=>{var t={};for(var n in s)dc.call(s,n)&&e.indexOf(n)<0&&(t[n]=s[n]);if(s!=null&&Br)for(var n of Br(s))e.indexOf(n)<0&&pc.call(s,n)&&(t[n]=s[n]);return t};import $m from"axios";import{PublicKey as bc}from"@solana/web3.js";import{get as Va,set as fc}from"lodash";var od=(o=>(o[o.Error=0]="Error",o[o.Warning=1]="Warning",o[o.Info=2]="Info",o[o.Debug=3]="Debug",o))(od||{}),Ea=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}},Da={},yc={};function ke(s){let e=Va(Da,s);if(!e){let t=Va(yc,s);e=new Ea({name:s,logLevel:t}),fc(Da,s,e)}return e}function wb(s,e){fc(yc,s,e);let t=Va(Da,s);t&&(t.level=e)}import{MINT_SIZE as id,TOKEN_PROGRAM_ID as rd,getTransferFeeConfig as ad,unpackMint as sd}from"@solana/spl-token";var Wa=ke("Raydium_accountInfo_util");async function wt(s,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:i=100}=M({batchRequest:!1},t),r=qa(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=qa(c,10);a=(await(await Promise.all(u.map(async d=>await s._rpcBatchRequest(d)))).flat()).map(d=>(d.error&&Wa.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"&&Wa.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(m[0],"base64"),executable:f,lamports:y,owner:new bc(b),rentEpoch:g}}return null})))}else try{a=await Promise.all(r.map(c=>s.getMultipleAccountsInfo(c,o)))}catch(c){c instanceof Error&&Wa.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 ud=(n=>(n[n.Uninitialized=0]="Uninitialized",n[n.Mint=1]="Mint",n[n.Account=2]="Account",n))(ud||{}),Cb=1;async function yo({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<id){console.log("invalid mint account",c.pubkey.toBase58());continue}let u=sd(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)||rd,feeConfig:(a=ad(u))!=null?a:void 0})}return o[bc.default.toBase58()]=o[$.toBase58()],o}import ft from"bn.js";import fb from"decimal.js";import yd from"big.js";import Yn from"bn.js";import cd from"toformat";var ld=cd,yi=ld;import Sr from"big.js";import md from"bn.js";import dd from"decimal.js-light";import bi from"bn.js";var Ua=(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))(Ua||{}),gc=9007199254740991;function ue(s){let e=ke("Raydium_parseBigNumberish");if(s instanceof bi)return s;if(typeof s=="string"){if(s.match(/^-?[0-9]+$/))return new bi(s);e.logWithError(`invalid BigNumberish string: ${s}`)}return typeof s=="number"?(s%1&&e.logWithError(`BigNumberish number underflow: ${s}`),(s>=gc||s<=-gc)&&e.logWithError(`BigNumberish number overflow: ${s}`),new bi(String(s))):typeof s=="bigint"?new bi(s.toString()):(e.error(`invalid BigNumberish value: ${s}`),new bi(0))}var xr=ke("module/fraction"),Ga=yi(Sr),gi=yi(dd),pd={[0]:gi.ROUND_DOWN,[1]:gi.ROUND_HALF_UP,[2]:gi.ROUND_UP},fd={[0]:Sr.roundDown,[1]:Sr.roundHalfUp,[2]:Sr.roundUp},fe=class{constructor(e,t=new md(1)){this.numerator=ue(e),this.denominator=ue(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(ue(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(ue(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(ue(e));return new fe(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof fe?e:new fe(ue(e));return new fe(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||xr.logWithError(`${e} is not an integer.`),e<=0&&xr.logWithError(`${e} is not positive.`),gi.set({precision:e+1,rounding:pd[n]});let o=new gi(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)||xr.logWithError(`${e} is not an integer.`),e<0&&xr.logWithError(`${e} is negative.`),Ga.DP=e,Ga.RM=fd[n]||1,new Ga(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var bd=ke("Raydium_amount"),Kr=yi(yd);function Pc(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")):bd.logWithError(`invalid number string, num: ${s}`)}else t=s;return[t,n.slice(0,e)||n]}var Te=class extends fe{constructor(t,n,o=!0,i){let r=new Yn(0),a=go.pow(new Yn(t.decimals));if(o)r=ue(n);else{let c=new Yn(0),u=new Yn(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[l,d]=Pc(n.toString(),t.decimals);c=ue(l),u=ue(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 Te(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new Te(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 Kr.DP=this.token.decimals,new Kr(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}},bo=class extends fe{constructor(t,n,o=!0,i){let r=new Yn(0),a=go.pow(new Yn(t.decimals));if(o)r=ue(n);else{let c=new Yn(0),u=new Yn(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[l,d]=Pc(n.toString(),t.decimals);c=ue(l),u=ue(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 bo(this.currency,this.raw.add(t.raw))}sub(t){return this.currency.equals(t.currency)||this.logger.logWithError("sub currency not equals"),new bo(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 Kr.DP=this.currency.decimals,new Kr(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as gd}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ac}from"@solana/spl-token";var Bn={chainId:101,address:gd.default.toBase58(),programId:Ac.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:Ac.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 Ha}from"@solana/web3.js";import{PublicKey as Qe,SystemProgram as wc,SYSVAR_RENT_PUBKEY as Pd}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ad}from"@solana/spl-token";function h({pubkey:s,isSigner:e=!1,isWritable:t=!0}){return{pubkey:s,isWritable:t,isSigner:e}}var za=[h({pubkey:Ad,isWritable:!1}),h({pubkey:wc.programId,isWritable:!1}),h({pubkey:Pd,isWritable:!1})];function Xa({publicKey:s,transformSol:e}){let t=Ya(s.toString());if(t instanceof Qe)return e&&t.equals(Tt)?$:t;if(e&&t.toString()===Tt.toBase58())return $;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"),Qa=new Qe("SysvarC1ock11111111111111111111111111111111"),mn=new Qe("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Cr=new Qe("Sysvar1nstructions1111111111111111111111111"),Rr=wc.programId,sg=new Qe("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ug=new Qe("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),cg=new Qe("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),lg=new Qe("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),mg=new Qe("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),dg=new Qe("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),pg=new Qe("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),fg=new Qe("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),yg=new Qe("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),bg=new Qe("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),gg=new Qe("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),$=new Qe("So11111111111111111111111111111111111111112"),Tt=Qe.default;function St(s){return Xa({publicKey:s,transformSol:!0})}var Za=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:i=!1,isToken2022:r=!1}){if(e===Tt.toBase58()||e instanceof Ha&&Tt.equals(e)){this.decimals=kt.decimals,this.symbol=kt.symbol,this.name=kt.name,this.mint=new Ha(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?Ha.default:Xa({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},Oe=Za;Oe.WSOL=new Za(D(M({},kt),{mint:kt.address}));var ja=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},Pi=ja;Pi.SOL=new ja(Bn);function xg(s,e){return s instanceof Oe&&e instanceof Oe?s.equals(e):s instanceof Oe||e instanceof Oe?!1:s===e}import wd from"bn.js";var kc=new fe(new wd(100)),$e=class extends fe{toSignificant(e=5,t,n){return this.mul(kc).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(kc).toFixed(e,t,n)}};var kd=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($a(n.decimals),$a(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&&kd.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 mb}from"lodash";var Lr="please provide owner in load() initialization or you can set by calling raydium.setOwner(owner)",Tc="please provide connection in load() initialization or set it by raydium.setConnection(connection)";var dn=class{constructor(e){this._owner=e}get publicKey(){return dn.isKeyPair(this._owner)?this._owner.publicKey:this._owner}get signer(){return dn.isKeyPair(this._owner)?this._owner:void 0}get isKeyPair(){return dn.isKeyPair(this._owner)}get isPublicKey(){return dn.isPublicKey(this._owner)}static isKeyPair(e){return e.secretKey!==void 0}static isPublicKey(e){return!dn.isKeyPair(e)}};import{PublicKey as Gr,SystemProgram as _p}from"@solana/web3.js";import{AccountLayout as Uo,createAssociatedTokenAccountIdempotentInstruction as Ps,TOKEN_PROGRAM_ID as jn,TOKEN_2022_PROGRAM_ID as Vp}from"@solana/spl-token";import{PublicKey as Do,sendAndConfirmTransaction as is,SystemProgram as xd,Transaction as ki,TransactionMessage as Ti,VersionedTransaction as hi}from"@solana/web3.js";import Sd from"axios";import{PublicKey as Ja,AddressLookupTableAccount as Vo}from"@solana/web3.js";async function es({connection:s,address:e,cluster:t="mainnet"}){let n=await wt(s,[...new Set(e.map(i=>i.toString()))].map(i=>new Ja(i))),o={};for(let i=0;i<e.length;i++){let r=n[i],a=e[i];if(!r)continue;let c=new Vo({key:a,state:Vo.deserialize(r.data)});o[a.toString()]=c,t==="devnet"?_o[a.toString()]=c:vo[a.toString()]=c}return o}var vo={},ts=async s=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(vo[e])return vo;let t=new Ja(e),n=await s.getAccountInfo(t);return n&&(vo[e]=new Vo({key:t,state:Vo.deserialize(n.data)})),vo},_o={},ns=async s=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(_o[e])return _o;let t=new Ja(e),n=await s.getAccountInfo(t);return n&&(_o[e]=new Vo({key:t,state:Vo.deserialize(n.data)})),_o};var On=(t=>(t[t.V0=0]="V0",t[t.LEGACY=1]="LEGACY",t))(On||{}),X={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 hc,Keypair as Ic,PublicKey as Bc,Transaction as Nr,TransactionMessage as Td,VersionedTransaction as os}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as hd}from"@solana/spl-token";var Nn=ke("Raydium_txUtil"),xc=1644;function Mr(s){let e=[],t=[];return s.microLamports&&(e.push(hc.setComputeUnitPrice({microLamports:s.microLamports})),t.push(X.SetComputeUnitPrice)),s.units&&(e.push(hc.setComputeUnitLimit({units:s.units})),t.push(X.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Eo(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 Fr(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 vr(s,e){s.length<1&&Nn.logWithError(`no instructions provided: ${s.toString()}`),e.length<1&&Nn.logWithError(`no signers provided:, ${e.toString()}`);let t=new Nr;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...s);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<xc}catch{return!1}}async function $g(s,e,t,n=!0){let o=new Bc("RaydiumSimuLateTransaction11111111111111111"),i=[],r=new Nr;r.feePayer=o;for(let u of e)vr([...r.instructions,u],[o])||(i.push(r),r=new Nr,r.feePayer=o),r.add(u);r.instructions.length>0&&i.push(r);let a=[];try{if(a=await Id(s,i,n),a.find(u=>u.err!==null))throw Error("rpc simulateTransaction error")}catch(u){u instanceof Error&&Nn.logWithError("failed to simulate for instructions","RPC_ERROR",{message:u.message})}let c=[];for(let u of a)if(Nn.debug("simulate result:",u),u.logs){let l=u.logs.filter(d=>d&&d.includes(t));Nn.debug("filteredLog:",c),l.length||Nn.logWithError("simulate log not match keyword","keyword",t),c.push(...l)}return c}function Jg(s,e){let t=s.match(/{["\w:,]+}/g);return!t||t.length!==1?Nn.logWithError(`simulate log fail to match json, keyword: ${e}`):t[0]}function eP(s,e){let n=new RegExp(`"${e}":(\\d+)`,"g").exec(s);return!n||n.length!==2?Nn.logWithError(`simulate log fail to match key", key: ${e}`):n[1]}function re(s,e){let[t,n]=Bc.findProgramAddressSync(s,e);return{publicKey:t,nonce:n}}async function Id(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&&Nn.logWithError("failed to get info for multiple accounts","RPC_ERROR",{message:o.message})}return n}function Ai({instructions:s,payer:e,signers:t}){return vr(s,[e,...t])}function wi({instructions:s,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=Ic.generate().publicKey.toString()}){let i=new Td({payerKey:e,recentBlockhash:n,instructions:s}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new os(i).serialize()).toString("base64").length<xc}catch{return!1}}var Or={time:0,data:void 0};async function tP(s){if(!Or.data||(Date.now()-Or.time)/1e3>30){let e=await s.getEpochInfo();return Or={time:Date.now(),data:e},e}else return Or.data}var Sc=s=>Buffer.isBuffer(s)?s:s instanceof Uint8Array?Buffer.from(s.buffer,s.byteOffset,s.byteLength):Buffer.from(s),Bd=s=>{let e=s.serialize({requireAllSignatures:!1,verifySignatures:!1});s instanceof os&&(e=Sc(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Po(s){let e=[];return s.forEach(t=>{t instanceof Nr&&(t.recentBlockhash||(t.recentBlockhash=hd.toBase58()),t.feePayer||(t.feePayer=Ic.generate().publicKey)),e.push(Bd(t))}),console.log("simulate tx string:",e),e}function nP(s){let e=s.serialize({requireAllSignatures:!1,verifySignatures:!1});return s instanceof os&&(e=Sc(e)),e.toString("base64")}var _r=2e3,Vr=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 Sd.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}=Mr(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(xd.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Do(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(X.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!==Do.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 ki;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 Eo(this.connection,this.blockhashCommitment);if(t.recentBlockhash=u,this.signers.length&&t.sign(...this.signers),Po([t]),(l=this.owner)!=null&&l.isKeyPair)return{txId:a?await is(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 Eo(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 is(this.connection,I,this.signers.find(T=>T.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));Po(P);let k=await this.signAllTransactions(P);if(d){let I=0,A=[],T=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(L=>L.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||T()};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)}},_r)),x=this.connection.onSignature(B,R=>{if(S){this.connection.removeSignatureListener(x);return}S=!0,C(R)},"confirmed"),this.connection.getSignatureStatus(B)};return await T(),{txIds:A.map(B=>B.txId),signedTxs:k}}else{let I=[];for(let A=0;A<k.length;A+=1){let T=await this.connection.sendRawTransaction(k[A].serialize(),{skipPreflight:y});I.push(T)}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 ns(this.connection):await ts(this.connection)),t),c=Array.from(new Set([...n,...this.lookupTableAddress])),u=[];for(let b of c)a[b]===void 0&&u.push(new Do(b));let l=await es({connection:this.connection,address:u});for(let[b,g]of Object.entries(l))a[b]=g;let d=o?Do.default.toBase58():i!=null?i:await Eo(this.connection,this.blockhashCommitment),p=new Ti({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 hi(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(Po([m]),(I=this.owner)!=null&&I.isKeyPair){let A=await this.connection.sendTransaction(m,{skipPreflight:g});return P&&await Fr(this.connection,A),{txId:A,signedTx:m}}if(this.signAllTransactions){let A=await this.signAllTransactions([m]);if(this.signers.length)for(let T of A)try{T.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),Po(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 Fr(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,T=null,B=null,S=K=>{T!==null&&clearInterval(T),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&&(T=setInterval(async()=>{var K;if(A){clearInterval(T);return}try{let x=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});x&&(A=!0,clearInterval(T),S({err:((K=x.meta)==null?void 0:K.err)||null}),console.log("tx status from getTransaction:",I))}catch(x){A=!0,clearInterval(T),console.error("getTransaction timeout:",x,I)}},_r)),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?Mr(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 Do(P));if(m!==t[l]&&u.length<12&&(Ai({instructions:y,payer:this.feePayer,signers:g})||Ai({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,Ai({instructions:n?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:g})?a.push(new ki().add(...i.instructions,...u)):a.push(new ki().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);Ai({instructions:n?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:f.map(y=>y.publicKey)})?a.push(new ki().add(...i.instructions,...u)):a.push(new ki().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 Eo(this.connection,this.blockhashCommitment);if(a.forEach(async(A,T)=>{A.recentBlockhash=k,c[T].length&&A.sign(...c[T])}),Po(a),(I=this.owner)!=null&&I.isKeyPair){if(f){let A=0,T=[];for(let B of a){if(++A,A<=b){T.push("tx skipped");continue}let S=await is(this.connection,B,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});T.push(S)}return{txIds:T,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)),T=[...a.slice(0,b),...A];if(f){let B=0,S=[],K=async()=>{if(!T[B])return;B<b&&(S.push({txId:"",status:"success",signedTx:T[B]}),y==null||y([...S]),B++,K());let x=await this.connection.sendRawTransaction(T[B].serialize(),{skipPreflight:P});S.push({txId:x,status:"sent",signedTx:T[B]}),y==null||y([...S]),B++;let C=!1,R=null,N=null,L=O=>{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=O.err?"error":"success"}y==null||y([...S]),O.err||K()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var O;if(C){clearInterval(R);return}try{let _=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(C=!0,clearInterval(R),L({err:((O=_.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",x))}catch(_){C=!0,clearInterval(R),console.error("getTransaction timeout:",_,x)}},_r)),N=this.connection.onSignature(x,O=>{if(C){this.connection.removeSignatureListener(N);return}C=!0,L(O)},"confirmed"),this.connection.getSignatureStatus(x)};return await K(),{txIds:S.map(x=>x.txId),signedTxs:T}}else{let B=[];for(let S=0;S<T.length;S+=1){let K=await this.connection.sendRawTransaction(T[S].serialize(),{skipPreflight:P});B.push(K)}return{txIds:B,signedTxs:T}}}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 ns(this.connection):await ts(this.connection)),o),u=Array.from(new Set([...this.lookupTableAddress,...i])),l=[];for(let A of u)c[A]===void 0&&l.push(new Do(A));let d=await es({connection:this.connection,address:l});for(let[A,T]of Object.entries(d))c[A]=T;let p=t?Mr(t):{instructions:[],instructionTypes:[]},m=await Eo(this.connection,this.blockhashCommitment),f=this.signers.reduce((A,T)=>D(M({},A),{[T.publicKey.toBase58()]:T}),{}),y=[],b=[],g=[],P=0;if(this.allInstructions.forEach(A=>{let T=[...g,A],B=t?[...p.instructions,...T]:T;if(A!==n[P]&&g.length<r&&(wi({instructions:B,payer:this.feePayer,lookupTableAddressAccount:c})||wi({instructions:T,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&&wi({instructions:[...p.instructions,...g],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:m})){let K=new Ti({payerKey:this.feePayer,recentBlockhash:m,instructions:[...p.instructions,...g]}).compileToV0Message(Object.values(c));y.push(new hi(K))}else{let K=new Ti({payerKey:this.feePayer,recentBlockhash:m,instructions:[...g]}).compileToV0Message(Object.values(c));y.push(new hi(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 T=[...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&&wi({instructions:[...p.instructions,...g],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:m})){let B=new Ti({payerKey:this.feePayer,recentBlockhash:m,instructions:[...p.instructions,...g]}).compileToV0Message(Object.values(c));y.push(new hi(B))}else{let B=new Ti({payerKey:this.feePayer,recentBlockhash:m,instructions:[...g]}).compileToV0Message(Object.values(c));y.push(new hi(B))}b.push(T)}return(I=this.owner)!=null&&I.signer&&b.forEach(A=>{A.some(T=>T.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),y.forEach((A,T)=>{A.sign(b[T])}),{builder:this,transactions:y,buildProps:e,signers:b,instructionTypes:this.instructionTypes,execute:async A=>{var C;let{sequentially:T,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)}),Po(y),(C=this.owner)!=null&&C.isKeyPair){if(T){let R=0,N=[];for(let L of y){if(++R,R<=S){console.log("skip tx: ",R),N.push("tx skipped");continue}let O=await this.connection.sendTransaction(L,{skipPreflight:x});await Fr(this.connection,O),N.push(O)}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(T){let L=0,O=[],_=async()=>{if(!N[L])return;if(L<S){O.push({txId:"",status:"success",signedTx:N[L]}),B==null||B([...O]),L++,_();return}let W=await this.connection.sendTransaction(N[L],{skipPreflight:x});O.push({txId:W,status:"sent",signedTx:N[L]}),B==null||B([...O]),L++;let Y=!1,j=null,te=null,ie=se=>{j!==null&&clearInterval(j),te!==null&&this.connection.removeSignatureListener(te);let ne=O.findIndex(oe=>oe.txId===W);if(ne>-1){if(O[ne].status==="error"||O[ne].status==="success")return;O[ne].status=se.err?"error":"success"}B==null||B([...O]),se.err||_()};this.loopMultiTxStatus&&(j=setInterval(async()=>{var se;if(Y){clearInterval(j);return}try{let ne=await this.connection.getTransaction(W,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(Y=!0,clearInterval(j),ie({err:((se=ne.meta)==null?void 0:se.err)||null}),console.log("tx status from getTransaction:",W))}catch(ne){Y=!0,clearInterval(j),console.error("getTransaction timeout:",ne,W)}},_r)),te=this.connection.onSignature(W,se=>{if(Y){this.connection.removeSignatureListener(te);return}Y=!0,ie(se)},"confirmed"),this.connection.getSignatureStatus(W)};return _(),{txIds:[],signedTxs:N}}else{let L=[];for(let O=0;O<N.length;O+=1){let _=await this.connection.sendTransaction(N[O],{skipPreflight:x});L.push(_)}return{txIds:L,signedTxs:N}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}};var rs=(...s)=>s.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),De=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=ke(t)}createTxBuilder(e){return this.scope.checkOwner(),new Vr({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(rs(e))}logInfo(...e){this.logger.info(rs(e))}logAndCreateError(...e){let t=rs(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Lp,SystemProgram as Op}from"@solana/web3.js";import Np from"bn.js";import{createCloseAccountInstruction as Mp,createInitializeAccountInstruction as Fp,createTransferInstruction as vp,TOKEN_PROGRAM_ID as qo}from"@solana/spl-token";import{Keypair as Sp,PublicKey as Gc}from"@solana/web3.js";import Kp from"bn.js";import{TOKEN_PROGRAM_ID as Cp}from"@solana/spl-token";function Kd(s){return s instanceof Uint8Array||s!=null&&typeof s=="object"&&s.constructor.name==="Uint8Array"}function as(s,...e){if(!Kd(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 ss(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 Kc(s,e){as(s);let t=e.outputLen;if(s.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var Dr=s=>new DataView(s.buffer,s.byteOffset,s.byteLength),pn=(s,e)=>s<<32-e|s>>>e;var TP=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Cd(s){if(typeof s!="string")throw new Error(`utf8ToBytes expected string, got ${typeof s}`);return new Uint8Array(new TextEncoder().encode(s))}function us(s){return typeof s=="string"&&(s=Cd(s)),as(s),s}var Er=class{clone(){return this._cloneInto()}},hP={}.toString;function Cc(s){let e=n=>s().update(us(n)).digest(),t=s();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>s(),e}function Rd(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 Rc=(s,e,t)=>s&e^~s&t,Lc=(s,e,t)=>s&e^s&t^e&t,Wr=class extends Er{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=Dr(this.buffer)}update(e){ss(this);let{view:t,buffer:n,blockLen:o}=this;e=us(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=Dr(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){ss(this),Kc(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;Rd(n,o-8,BigInt(this.length*8),i),this.process(n,0);let a=Dr(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 Ld=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]),Qn=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Hn=new Uint32Array(64),cs=class extends Wr{constructor(){super(64,32,8,!1),this.A=Qn[0]|0,this.B=Qn[1]|0,this.C=Qn[2]|0,this.D=Qn[3]|0,this.E=Qn[4]|0,this.F=Qn[5]|0,this.G=Qn[6]|0,this.H=Qn[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)Hn[d]=e.getUint32(t,!1);for(let d=16;d<64;d++){let p=Hn[d-15],m=Hn[d-2],f=pn(p,7)^pn(p,18)^p>>>3,y=pn(m,17)^pn(m,19)^m>>>10;Hn[d]=y+Hn[d-7]+f+Hn[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=pn(a,6)^pn(a,11)^pn(a,25),m=l+p+Rc(a,c,u)+Ld[d]+Hn[d]|0,y=(pn(n,2)^pn(n,13)^pn(n,22))+Lc(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(){Hn.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Oc=Cc(()=>new cs);import{PublicKey as hp}from"@solana/web3.js";import Ec,{isBN as Dc}from"bn.js";import{bits as Od,BitStructure as Nd,blob as Md,Blob as Fd,cstr as vd,f32 as _d,f32be as Vd,f64 as Ed,f64be as Dd,greedy as Wd,Layout as qd,ns64 as Ud,ns64be as Gd,nu64 as zd,nu64be as Xd,offset as Yd,s16 as Qd,s16be as Hd,s24 as Zd,s24be as jd,s32 as $d,s32be as Jd,s40 as ep,s40be as tp,s48 as np,s48be as op,s8 as ip,seq as rp,struct as OP,Structure as ap,u16 as sp,u16be as up,u24 as cp,u24be as lp,u32 as mp,u32be as dp,u40 as pp,u40be as fp,u48 as yp,u48be as bp,u8 as gp,UInt as Pp,union as Ap,Union as wp,unionLayoutDiscriminator as kp,utf8 as Tp}from"@solana/buffer-layout";var Ii=qd,Nc=ap,Mc=wp,NP=Nd,ls=Pp,Fc=Fd,MP=Wd,qr=gp,ut=sp,FP=cp,Bi=mp,vP=pp,_P=yp,vc=zd,VP=up,EP=lp,DP=dp,WP=fp,qP=bp,UP=Xd,GP=ip,zP=Qd,XP=Zd,ct=$d,YP=ep,QP=np,HP=Ud,ZP=Hd,jP=jd,$P=Jd,JP=tp,eA=op,tA=Gd,nA=_d,oA=Vd,iA=Ed,rA=Dd;var _c=rp,Vc=Ap,aA=kp,Ae=Md,sA=vd,uA=Tp,ms=Od,ds=Yd;var Ao=class extends Ii{constructor(t,n,o){super(t,o);this.blob=Ae(t),this.signed=n}decode(t,n=0){let o=new Ec(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 Ec(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},Ur=class extends Ii{constructor(t){super(8,t);this._lower=ms(Bi(),!1),this._upper=ms(Bi(),!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 ls(1,s)}function We(s){return new ls(4,s)}function w(s){return new Ao(8,!1,s)}function de(s){return new Ao(16,!1,s)}function Wc(s){return new Ao(1,!0,s)}function Wo(s){return new Ao(8,!0,s)}function qc(s){return new Ao(16,!0,s)}var Mn=class extends Ii{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 Mn(Ae(32),e=>new hp(e),e=>e.toBuffer(),s)}var ps=class extends Ii{constructor(t,n){super(-1,n);this.layout=t,this.discriminator=qr()}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 pA(s,e){return new ps(s,e)}function He(s){return new Mn(qr(),Ip,Bp,s)}function Ip(s){if(s===0)return!1;if(s===1)return!0;throw new Error("Invalid bool: "+s)}function Bp(s){return s?1:0}function Uc(s,e){let t=Bi("length"),n=v([t,Z(s,ds(t,-t.span),"values")]);return new Mn(n,({values:o})=>o,o=>({values:o}),e)}function fA(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 Mn(n,o,i=>({tag:s,data:i}),t)}function xp(s){let e=Bi("length"),t=v([e,Ae(ds(e,-e.span),"data")]);return new Mn(t,({data:n})=>n,n=>({data:n}),s)}function Kt(s){return new Mn(xp(),e=>e.toString("utf-8"),e=>Buffer.from(e,"utf-8"),s)}function yA(s,e){let t=Vc(qr(),e);return s.forEach((n,o)=>t.addVariant(o,n,n.property)),t}function bA(s,e,t){let n=v([Z(s,e,"values")]);return new Mn(n,({values:o})=>o,o=>({values:o}),t)}var fs=class extends Nc{decode(e,t){return super.decode(e,t)}};function v(s,e,t){return new fs(s,e,t)}var ys=class extends Mc{encodeInstruction(e)