@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 504 kB
JavaScript
var qm=Object.defineProperty,Um=Object.defineProperties;var Gm=Object.getOwnPropertyDescriptors;var kr=Object.getOwnPropertySymbols;var tc=Object.prototype.hasOwnProperty,nc=Object.prototype.propertyIsEnumerable;var ec=(s,e,t)=>e in s?qm(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,M=(s,e)=>{for(var t in e||(e={}))tc.call(e,t)&&ec(s,t,e[t]);if(kr)for(var t of kr(e))nc.call(e,t)&&ec(s,t,e[t]);return s},D=(s,e)=>Um(s,Gm(e));var Ue=(s,e)=>{var t={};for(var n in s)tc.call(s,n)&&e.indexOf(n)<0&&(t[n]=s[n]);if(s!=null&&kr)for(var n of kr(s))e.indexOf(n)<0&&nc.call(s,n)&&(t[n]=s[n]);return t};import Dm from"axios";import{PublicKey as rc}from"@solana/web3.js";import{get as Oa,set as oc}from"lodash";var zm=(o=>(o[o.Error=0]="Error",o[o.Warning=1]="Warning",o[o.Info=2]="Info",o[o.Debug=3]="Debug",o))(zm||{}),Na=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}},Ma={},ic={};function ke(s){let e=Oa(Ma,s);if(!e){let t=Oa(ic,s);e=new Na({name:s,logLevel:t}),oc(Ma,s,e)}return e}function ob(s,e){oc(ic,s,e);let t=Oa(Ma,s);t&&(t.level=e)}import{MINT_SIZE as Xm,TOKEN_PROGRAM_ID as Ym,getTransferFeeConfig as Hm,unpackMint as Qm}from"@solana/spl-token";var Fa=ke("Raydium_accountInfo_util");async function wt(s,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:i=100}=M({batchRequest:!1},t),r=va(e,i),a=new Array(r.length).fill([]);if(n){let u=r.map(d=>{let p=s._buildArgs([d.map(m=>m.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:p}}),c=va(u,10);a=(await(await Promise.all(c.map(async d=>await s._rpcBatchRequest(d)))).flat()).map(d=>(d.error&&Fa.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"&&Fa.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(m[0],"base64"),executable:f,lamports:y,owner:new rc(b),rentEpoch:g}}return null})))}else try{a=await Promise.all(r.map(u=>s.getMultipleAccountsInfo(u,o)))}catch(u){u instanceof Error&&Fa.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${u.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 Zm=(n=>(n[n.Uninitialized=0]="Uninitialized",n[n.Mint=1]="Mint",n[n.Account=2]="Account",n))(Zm||{}),db=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(u=>({pubkey:Kt(u)})),t),o={};for(let u of n){if(!u.accountInfo||u.accountInfo.data.length<Xm){console.log("invalid mint account",u.pubkey.toBase58());continue}let c=Qm(u.pubkey,u.accountInfo,(i=u.accountInfo)==null?void 0:i.owner);o[u.pubkey.toString()]=D(M({},c),{programId:((r=u.accountInfo)==null?void 0:r.owner)||Ym,feeConfig:(a=Hm(c))!=null?a:void 0})}return o[rc.default.toBase58()]=o[J.toBase58()],o}import pt from"bn.js";import jy from"decimal.js";import od from"big.js";import Yn from"bn.js";import jm from"toformat";var $m=jm,fi=$m;import hr from"big.js";import Jm from"bn.js";import ed from"decimal.js-light";import yi from"bn.js";var _a=(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))(_a||{}),ac=9007199254740991;function ue(s){let e=ke("Raydium_parseBigNumberish");if(s instanceof yi)return s;if(typeof s=="string"){if(s.match(/^-?[0-9]+$/))return new yi(s);e.logWithError(`invalid BigNumberish string: ${s}`)}return typeof s=="number"?(s%1&&e.logWithError(`BigNumberish number underflow: ${s}`),(s>=ac||s<=-ac)&&e.logWithError(`BigNumberish number overflow: ${s}`),new yi(String(s))):typeof s=="bigint"?new yi(s.toString()):(e.error(`invalid BigNumberish value: ${s}`),new yi(0))}var Tr=ke("module/fraction"),Va=fi(hr),bi=fi(ed),td={[0]:bi.ROUND_DOWN,[1]:bi.ROUND_HALF_UP,[2]:bi.ROUND_UP},nd={[0]:hr.roundDown,[1]:hr.roundHalfUp,[2]:hr.roundUp},fe=class{constructor(e,t=new Jm(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)||Tr.logWithError(`${e} is not an integer.`),e<=0&&Tr.logWithError(`${e} is not positive.`),bi.set({precision:e+1,rounding:td[n]});let o=new bi(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)||Tr.logWithError(`${e} is not an integer.`),e<0&&Tr.logWithError(`${e} is negative.`),Va.DP=e,Va.RM=nd[n]||1,new Va(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var id=ke("Raydium_amount"),Ir=fi(od);function sc(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")):id.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 u=new Yn(0),c=new Yn(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[l,d]=sc(n.toString(),t.decimals);u=ue(l),c=ue(d)}u=u.mul(a),r=u.add(c)}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 Ir.DP=this.token.decimals,new Ir(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 u=new Yn(0),c=new Yn(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[l,d]=sc(n.toString(),t.decimals);u=ue(l),c=ue(d)}u=u.mul(a),r=u.add(c)}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 Ir.DP=this.currency.decimals,new Ir(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as rd}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as uc}from"@solana/spl-token";var Bn={chainId:101,address:rd.default.toBase58(),programId:uc.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:uc.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 Xe,SystemProgram as cc,SYSVAR_RENT_PUBKEY as ad}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as sd}from"@solana/spl-token";function h({pubkey:s,isSigner:e=!1,isWritable:t=!0}){return{pubkey:s,isWritable:t,isSigner:e}}var Ea=[h({pubkey:sd,isWritable:!1}),h({pubkey:cc.programId,isWritable:!1}),h({pubkey:ad,isWritable:!1})];function Da({publicKey:s,transformSol:e}){let t=Wa(s.toString());if(t instanceof Xe)return e&&t.equals(Tt)?J:t;if(e&&t.toString()===Tt.toBase58())return J;if(typeof t=="string"){if(t===Xe.default.toBase58())return Xe.default;try{return new Xe(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Wa(s){try{return new Xe(s)}catch{return s}}var en=new Xe("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ht=new Xe("SysvarRent111111111111111111111111111111111"),Gb=new Xe("SysvarC1ock11111111111111111111111111111111"),mn=new Xe("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Br=new Xe("Sysvar1nstructions1111111111111111111111111"),lc=cc.programId,zb=new Xe("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Xb=new Xe("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Yb=new Xe("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Hb=new Xe("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Qb=new Xe("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Zb=new Xe("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),jb=new Xe("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),$b=new Xe("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Jb=new Xe("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),eg=new Xe("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),tg=new Xe("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),J=new Xe("So11111111111111111111111111111111111111112"),Tt=Xe.default;function Kt(s){return Da({publicKey:s,transformSol:!0})}var Ua=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:Da({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},Oe=Ua;Oe.WSOL=new Ua(D(M({},kt),{mint:kt.address}));var Ga=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},gi=Ga;gi.SOL=new Ga(Bn);function lg(s,e){return s instanceof Oe&&e instanceof Oe?s.equals(e):s instanceof Oe||e instanceof Oe?!1:s===e}import ud from"bn.js";var mc=new fe(new ud(100)),$e=class extends fe{toSignificant(e=5,t,n){return this.mul(mc).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(mc).toFixed(e,t,n)}};var cd=ke("Raydium_price"),ft=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(za(n.decimals),za(o.decimals))}get raw(){return new fe(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new ft({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&cd.logWithError("mul token not equals");let n=super.mul(t);return new ft({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 Hy}from"lodash";var xr="please provide owner in load() initialization or you can set by calling raydium.setOwner(owner)",dc="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 Er,SystemProgram as Bp}from"@solana/web3.js";import{AccountLayout as Uo,createAssociatedTokenAccountIdempotentInstruction as ms,TOKEN_PROGRAM_ID as jn,TOKEN_2022_PROGRAM_ID as xp}from"@solana/spl-token";import{PublicKey as Do,sendAndConfirmTransaction as ja,SystemProgram as fd,Transaction as wi,TransactionMessage as ki,VersionedTransaction as Ti}from"@solana/web3.js";import yd from"axios";import{PublicKey as Xa,AddressLookupTableAccount as Vo}from"@solana/web3.js";async function Ya({connection:s,address:e,cluster:t="mainnet"}){let n=await wt(s,[...new Set(e.map(i=>i.toString()))].map(i=>new Xa(i))),o={};for(let i=0;i<e.length;i++){let r=n[i],a=e[i];if(!r)continue;let u=new Vo({key:a,state:Vo.deserialize(r.data)});o[a.toString()]=u,t==="devnet"?_o[a.toString()]=u:vo[a.toString()]=u}return o}var vo={},Ha=async s=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(vo[e])return vo;let t=new Xa(e),n=await s.getAccountInfo(t);return n&&(vo[e]=new Vo({key:t,state:Vo.deserialize(n.data)})),vo},_o={},Qa=async s=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(_o[e])return _o;let t=new Xa(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 pc,Keypair as fc,PublicKey as yc,Transaction as Kr,TransactionMessage as ld,VersionedTransaction as Za}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as md}from"@solana/spl-token";var Nn=ke("Raydium_txUtil"),bc=1644;function Cr(s){let e=[],t=[];return s.microLamports&&(e.push(pc.setComputeUnitPrice({microLamports:s.microLamports})),t.push(X.SetComputeUnitPrice)),s.units&&(e.push(pc.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 Rr(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 Lr(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 Kr;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 vg(s,e,t,n=!0){let o=new yc("RaydiumSimuLateTransaction11111111111111111"),i=[],r=new Kr;r.feePayer=o;for(let c of e)Lr([...r.instructions,c],[o])||(i.push(r),r=new Kr,r.feePayer=o),r.add(c);r.instructions.length>0&&i.push(r);let a=[];try{if(a=await dd(s,i,n),a.find(c=>c.err!==null))throw Error("rpc simulateTransaction error")}catch(c){c instanceof Error&&Nn.logWithError("failed to simulate for instructions","RPC_ERROR",{message:c.message})}let u=[];for(let c of a)if(Nn.debug("simulate result:",c),c.logs){let l=c.logs.filter(d=>d&&d.includes(t));Nn.debug("filteredLog:",u),l.length||Nn.logWithError("simulate log not match keyword","keyword",t),u.push(...l)}return u}function _g(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 Vg(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]=yc.findProgramAddressSync(s,e);return{publicKey:t,nonce:n}}async function dd(s,e,t){let n=[];if(t){let o=await s.getLatestBlockhash(),i=[];for(let c of e){c.recentBlockhash=o.blockhash,c.lastValidBlockHeight=o.lastValidBlockHeight;let d=c._compile().serialize(),m=c._serialize(d).toString("base64");i.push(m)}let r=i.map(c=>{let l=s._buildArgs([c],void 0,"base64");return{methodName:"simulateTransaction",args:l}}),a=[],u=20;for(let c=0;c<Math.ceil(r.length/u);c++)a.push(r.slice(c*u,(c+1)*u));n=await(await Promise.all(a.map(async c=>(await s._rpcBatchRequest(c)).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 Pi({instructions:s,payer:e,signers:t}){return Lr(s,[e,...t])}function Ai({instructions:s,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=fc.generate().publicKey.toString()}){let i=new ld({payerKey:e,recentBlockhash:n,instructions:s}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Za(i).serialize()).toString("base64").length<bc}catch{return!1}}var Sr={time:0,data:void 0};async function Eg(s){if(!Sr.data||(Date.now()-Sr.time)/1e3>30){let e=await s.getEpochInfo();return Sr={time:Date.now(),data:e},e}else return Sr.data}var gc=s=>Buffer.isBuffer(s)?s:s instanceof Uint8Array?Buffer.from(s.buffer,s.byteOffset,s.byteLength):Buffer.from(s),pd=s=>{let e=s.serialize({requireAllSignatures:!1,verifySignatures:!1});s instanceof Za&&(e=gc(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 Kr&&(t.recentBlockhash||(t.recentBlockhash=md.toBase58()),t.feePayer||(t.feePayer=fc.generate().publicKey)),e.push(pd(t))}),console.log("simulate tx string:",e),e}function Dg(s){let e=s.serialize({requireAllSignatures:!1,verifySignatures:!1});return s instanceof Za&&(e=gc(e)),e.toString("base64")}var Or=2e3,Nr=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 yd.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}=Cr(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(fd.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 wi;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:u}=o||{},c=i!=null?i:await Eo(this.connection,this.blockhashCommitment);if(t.recentBlockhash=c,this.signers.length&&t.sign(...this.signers),Po([t]),(l=this.owner)!=null&&l.isKeyPair)return{txId:a?await ja(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:u?"":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 c;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)],u=[...this.instructionTypes,...i.map(l=>l.instructionTypes).flat()];return(c=this.owner)!=null&&c.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:u,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 A=[],k=0;for(let I of r){if(++k,k<=m)continue;let P=await ja(this.connection,I,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:y});A.push(P)}return{txIds:A,signedTxs:r}}return{txIds:await await Promise.all(r.map(async A=>(A.recentBlockhash=b,await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:y})))),signedTxs:r}}if(this.signAllTransactions){let A=r.map((I,P)=>(I.recentBlockhash=b,a[P].length&&I.sign(...a[P]),I));Po(A);let k=await this.signAllTransactions(A);if(d){let I=0,P=[],T=async()=>{if(!k[I])return;let B=await this.connection.sendRawTransaction(k[I].serialize(),{skipPreflight:y});P.push({txId:B,status:"sent",signedTx:k[I]}),p==null||p([...P]),I++;let S=!1,K=null,x=null,C=R=>{K!==null&&clearInterval(K),x!==null&&this.connection.removeSignatureListener(x);let N=P.findIndex(L=>L.txId===B);if(N>-1){if(P[N].status==="error"||P[N].status==="success")return;P[N].status=R.err?"error":"success"}p==null||p([...P]),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)}},Or)),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:P.map(B=>B.txId),signedTxs:k}}else{let I=[];for(let P=0;P<k.length;P+=1){let T=await this.connection.sendRawTransaction(k[P].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=Ue(f,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=M(M({},this.cluster==="devnet"?await Qa(this.connection):await Ha(this.connection)),t),u=Array.from(new Set([...n,...this.lookupTableAddress])),c=[];for(let b of u)a[b]===void 0&&c.push(new Do(b));let l=await Ya({connection:this.connection,address:c});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 ki({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 Ti(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:A,notSendToRpc:k}=b||{};if(Po([m]),(I=this.owner)!=null&&I.isKeyPair){let P=await this.connection.sendTransaction(m,{skipPreflight:g});return A&&await Rr(this.connection,P),{txId:P,signedTx:m}}if(this.signAllTransactions){let P=await this.signAllTransactions([m]);if(this.signers.length)for(let T of P)try{T.sign(this.signers)}catch{}return{txId:k?"":await this.connection.sendTransaction(P[0],{skipPreflight:g}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async buildV0MultiTx(e){var c;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)],u=[...this.instructionTypes,...i.map(l=>l.instructionTypes).flat()];return(c=this.owner)!=null&&c.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:u,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 A=await this.connection.sendTransaction(g,{skipPreflight:f});await Rr(this.connection,A),b.push(A)}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,A=[],k=async()=>{if(!b[g])return;let I=await this.connection.sendTransaction(b[g],{skipPreflight:f});A.push({txId:I,status:"sent",signedTx:b[g]}),p==null||p([...A]),g++;let P=!1,T=null,B=null,S=K=>{T!==null&&clearInterval(T),B!==null&&this.connection.removeSignatureListener(B);let x=A.findIndex(C=>C.txId===I);if(x>-1){if(A[x].status==="error"||A[x].status==="success")return;A[x].status=K.err?"error":"success"}p==null||p([...A]),K.err||k()};this.loopMultiTxStatus&&(T=setInterval(async()=>{var K;if(P){clearInterval(T);return}try{let x=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});x&&(P=!0,clearInterval(T),S({err:((K=x.meta)==null?void 0:K.err)||null}),console.log("tx status from getTransaction:",I))}catch(x){P=!0,clearInterval(T),console.error("getTransaction timeout:",x,I)}},Or)),B=this.connection.onSignature(I,K=>{if(P){this.connection.removeSignatureListener(B);return}P=!0,S(K)},"confirmed"),this.connection.getSignatureStatus(I)};return k(),{txIds:[],signedTxs:b}}else{let g=[];for(let A=0;A<b.length;A+=1){let k=await this.connection.sendTransaction(b[A],{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=Ue(d,["splitIns","computeBudgetConfig"]),i=n?Cr(n):{instructions:[],instructionTypes:[]},r=this.signers.reduce((m,f)=>D(M({},m),{[f.publicKey.toBase58()]:f}),{}),a=[],u=[],c=[],l=0;if(this.allInstructions.forEach(m=>{let f=[...c,m],y=n?[...i.instructions,...f]:f,g=[...new Set(f.map(A=>A.keys.filter(k=>k.isSigner).map(k=>k.pubkey.toString())).flat()).values()].map(A=>new Do(A));if(m!==t[l]&&c.length<12&&(Pi({instructions:y,payer:this.feePayer,signers:g})||Pi({instructions:f,payer:this.feePayer,signers:g})))c.push(m);else{if(c.length===0)throw Error("item ins too big");l+=m===t[l]?1:0,Pi({instructions:n?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:g})?a.push(new wi().add(...i.instructions,...c)):a.push(new wi().add(...c)),u.push(Array.from(new Set(c.map(A=>A.keys.filter(k=>k.isSigner).map(k=>k.pubkey.toString())).flat())).map(A=>r[A]).filter(A=>A!==void 0)),c=[m]}}),c.length>0){let f=[...new Set(c.map(y=>y.keys.filter(b=>b.isSigner).map(b=>b.pubkey.toString())).flat()).values()].map(y=>r[y]).filter(y=>y!==void 0);Pi({instructions:n?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:f.map(y=>y.publicKey)})?a.push(new wi().add(...i.instructions,...c)):a.push(new wi().add(...c)),u.push(f)}return a.forEach(m=>m.feePayer=this.feePayer),(p=this.owner)!=null&&p.signer&&u.forEach(m=>{m.some(f=>f.publicKey.equals(this.owner.publicKey))||m.push(this.owner.signer)}),{builder:this,transactions:a,signers:u,instructionTypes:this.instructionTypes,execute:async m=>{var I;let{sequentially:f,onTxUpdate:y,skipTxCount:b=0,recentBlockHash:g,skipPreflight:A=!0}=m||{},k=g!=null?g:await Eo(this.connection,this.blockhashCommitment);if(a.forEach(async(P,T)=>{P.recentBlockhash=k,u[T].length&&P.sign(...u[T])}),Po(a),(I=this.owner)!=null&&I.isKeyPair){if(f){let P=0,T=[];for(let B of a){if(++P,P<=b){T.push("tx skipped");continue}let S=await ja(this.connection,B,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});T.push(S)}return{txIds:T,signedTxs:a}}return{txIds:await Promise.all(a.map(async P=>await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:A}))),signedTxs:a}}if(this.signAllTransactions){let P=await this.signAllTransactions(a.slice(b,a.length)),T=[...a.slice(0,b),...P];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:A});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)}},Or)),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:A});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=Ue(k,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),u=M(M({},this.cluster==="devnet"?await Qa(this.connection):await Ha(this.connection)),o),c=Array.from(new Set([...this.lookupTableAddress,...i])),l=[];for(let P of c)u[P]===void 0&&l.push(new Do(P));let d=await Ya({connection:this.connection,address:l});for(let[P,T]of Object.entries(d))u[P]=T;let p=t?Cr(t):{instructions:[],instructionTypes:[]},m=await Eo(this.connection,this.blockhashCommitment),f=this.signers.reduce((P,T)=>D(M({},P),{[T.publicKey.toBase58()]:T}),{}),y=[],b=[],g=[],A=0;if(this.allInstructions.forEach(P=>{let T=[...g,P],B=t?[...p.instructions,...T]:T;if(P!==n[A]&&g.length<r&&(Ai({instructions:B,payer:this.feePayer,lookupTableAddressAccount:u})||Ai({instructions:T,payer:this.feePayer,lookupTableAddressAccount:u})))g.push(P);else{if(g.length===0)throw Error("item ins too big");A+=P===n[A]?1:0;let S={};for(let K of[...new Set(c)])u[K]!==void 0&&(S[K]=u[K]);if(t&&Ai({instructions:[...p.instructions,...g],payer:this.feePayer,lookupTableAddressAccount:u,recentBlockhash:m})){let K=new ki({payerKey:this.feePayer,recentBlockhash:m,instructions:[...p.instructions,...g]}).compileToV0Message(Object.values(u));y.push(new Ti(K))}else{let K=new ki({payerKey:this.feePayer,recentBlockhash:m,instructions:[...g]}).compileToV0Message(Object.values(u));y.push(new Ti(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=[P]}}),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&&Ai({instructions:[...p.instructions,...g],payer:this.feePayer,lookupTableAddressAccount:u,recentBlockhash:m})){let B=new ki({payerKey:this.feePayer,recentBlockhash:m,instructions:[...p.instructions,...g]}).compileToV0Message(Object.values(u));y.push(new Ti(B))}else{let B=new ki({payerKey:this.feePayer,recentBlockhash:m,instructions:[...g]}).compileToV0Message(Object.values(u));y.push(new Ti(B))}b.push(T)}return(I=this.owner)!=null&&I.signer&&b.forEach(P=>{P.some(T=>T.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),y.forEach((P,T)=>{P.sign(b[T])}),{builder:this,transactions:y,buildProps:e,signers:b,instructionTypes:this.instructionTypes,execute:async P=>{var C;let{sequentially:T,onTxUpdate:B,skipTxCount:S=0,recentBlockHash:K,skipPreflight:x=!0}=P||{};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 Rr(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)}},Or)),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 $a=(...s)=>s.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),Ye=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=ke(t)}createTxBuilder(e){return this.scope.checkOwner(),new Nr({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($a(e))}logInfo(...e){this.logger.info($a(e))}logAndCreateError(...e){let t=$a(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Ap,SystemProgram as wp}from"@solana/web3.js";import kp from"bn.js";import{createCloseAccountInstruction as Tp,createInitializeAccountInstruction as hp,createTransferInstruction as Ip,TOKEN_PROGRAM_ID as qo}from"@solana/spl-token";import{Keypair as yp,PublicKey as Nc}from"@solana/web3.js";import bp from"bn.js";import{TOKEN_PROGRAM_ID as gp}from"@solana/spl-token";function bd(s){return s instanceof Uint8Array||s!=null&&typeof s=="object"&&s.constructor.name==="Uint8Array"}function Ja(s,...e){if(!bd(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 es(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 Pc(s,e){Ja(s);let t=e.outputLen;if(s.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var Fr=s=>new DataView(s.buffer,s.byteOffset,s.byteLength),pn=(s,e)=>s<<32-e|s>>>e;var aP=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function gd(s){if(typeof s!="string")throw new Error(`utf8ToBytes expected string, got ${typeof s}`);return new Uint8Array(new TextEncoder().encode(s))}function ts(s){return typeof s=="string"&&(s=gd(s)),Ja(s),s}var Mr=class{clone(){return this._cloneInto()}},sP={}.toString;function Ac(s){let e=n=>s().update(ts(n)).digest(),t=s();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>s(),e}function Pd(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),u=n?4:0,c=n?0:4;s.setUint32(e+u,r,n),s.setUint32(e+c,a,n)}var wc=(s,e,t)=>s&e^~s&t,kc=(s,e,t)=>s&e^s&t^e&t,vr=class extends Mr{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=Fr(this.buffer)}update(e){es(this);let{view:t,buffer:n,blockLen:o}=this;e=ts(e);let i=e.length;for(let r=0;r<i;){let a=Math.min(o-this.pos,i-r);if(a===o){let u=Fr(e);for(;o<=i-r;r+=o)this.process(u,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){es(this),Pc(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;Pd(n,o-8,BigInt(this.length*8),i),this.process(n,0);let a=Fr(e),u=this.outputLen;if(u%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let c=u/4,l=this.get();if(c>l.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;d<c;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 Ad=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]),Hn=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Qn=new Uint32Array(64),ns=class extends vr{constructor(){super(64,32,8,!1),this.A=Hn[0]|0,this.B=Hn[1]|0,this.C=Hn[2]|0,this.D=Hn[3]|0,this.E=Hn[4]|0,this.F=Hn[5]|0,this.G=Hn[6]|0,this.H=Hn[7]|0}get(){let{A:e,B:t,C:n,D:o,E:i,F:r,G:a,H:u}=this;return[e,t,n,o,i,r,a,u]}set(e,t,n,o,i,r,a,u){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=u|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=pn(p,7)^pn(p,18)^p>>>3,y=pn(m,17)^pn(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:u,G:c,H:l}=this;for(let d=0;d<64;d++){let p=pn(a,6)^pn(a,11)^pn(a,25),m=l+p+wc(a,u,c)+Ad[d]+Qn[d]|0,y=(pn(n,2)^pn(n,13)^pn(n,22))+kc(n,o,i)|0;l=c,c=u,u=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,u=u+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(n,o,i,r,a,u,c,l)}roundClean(){Qn.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Tc=Ac(()=>new ns);import{PublicKey as mp}from"@solana/web3.js";import Kc,{isBN as Cc}from"bn.js";import{bits as wd,BitStructure as kd,blob as Td,Blob as hd,cstr as Id,f32 as Bd,f32be as xd,f64 as Sd,f64be as Kd,greedy as Cd,Layout as Rd,ns64 as Ld,ns64be as Od,nu64 as Nd,nu64be as Md,offset as Fd,s16 as vd,s16be as _d,s24 as Vd,s24be as Ed,s32 as Dd,s32be as Wd,s40 as qd,s40be as Ud,s48 as Gd,s48be as zd,s8 as Xd,seq as Yd,struct as bP,Structure as Hd,u16 as Qd,u16be as Zd,u24 as jd,u24be as $d,u32 as Jd,u32be as ep,u40 as tp,u40be as np,u48 as op,u48be as ip,u8 as rp,UInt as ap,union as sp,Union as up,unionLayoutDiscriminator as cp,utf8 as lp}from"@solana/buffer-layout";var hi=Rd,hc=Hd,Ic=up,gP=kd,os=ap,Bc=hd,PP=Cd,_r=rp,st=Qd,AP=jd,Ii=Jd,wP=tp,kP=op,TP=Nd,hP=Zd,IP=$d,BP=ep,xP=np,SP=ip,KP=Md,CP=Xd,RP=vd,LP=Vd,ut=Dd,OP=qd,NP=Gd,MP=Ld,FP=_d,vP=Ed,_P=Wd,VP=Ud,EP=zd,DP=Od,WP=Bd,qP=xd,UP=Sd,GP=Kd;var xc=Yd,Sc=sp,zP=cp,Ae=Td,XP=Id,YP=lp,is=wd,rs=Fd;var Ao=class extends hi{constructor(t,n,o){super(t,o);this.blob=Ae(t),this.signed=n}decode(t,n=0){let o=new Kc(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 Kc(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},Vr=class extends hi{constructor(t){super(8,t);this._lower=is(Ii(),!1),this._upper=is(Ii(),!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 os(1,s)}function De(s){return new os(4,s)}function w(s){return new Ao(8,!1,s)}function me(s){return new Ao(16,!1,s)}function Rc(s){return new Ao(1,!0,s)}function Wo(s){return new Ao(8,!0,s)}function Lc(s){return new Ao(16,!0,s)}var Mn=class extends hi{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 mp(e),e=>e.toBuffer(),s)}var as=class extends hi{constructor(t,n){super(-1,n);this.layout=t,this.discriminator=_r()}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 $P(s,e){return new as(s,e)}function He(s){return new Mn(_r(),dp,pp,s)}function dp(s){if(s===0)return!1;if(s===1)return!0;throw new Error("Invalid bool: "+s)}function pp(s){return s?1:0}function Oc(s,e){let t=Ii("length"),n=v([t,Z(s,rs(t,-t.span),"values")]);return new Mn(n,({values:o})=>o,o=>({values:o}),e)}function JP(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 fp(s){let e=Ii("length"),t=v([e,Ae(rs(e,-e.span),"data")]);return new Mn(t,({data:n})=>n,n=>({data:n}),s)}function Ct(s){return new Mn(fp(),e=>e.toString("utf-8"),e=>Buffer.from(e,"utf-8"),s)}function eA(s,e){let t=Sc(_r(),e);return s.forEach((n,o)=>t.addVariant(o,n,n.property)),t}function tA(s,e,t){let n=v([Z(s,e,"values")]);return new Mn(n,({values:o})=>o,o=>({values:o}),t)}var ss=class extends hc{decode(e,t){return super.decode(e,t)}};function v(s,e,t){return new ss(s,e,t)}var us=class extends Ic{encodeInstruction(e)