UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 229 kB
var fa=Object.defineProperty,ya=Object.defineProperties;var ba=Object.getOwnPropertyDescriptors;var En=Object.getOwnPropertySymbols;var Mi=Object.prototype.hasOwnProperty,Fi=Object.prototype.propertyIsEnumerable;var Ni=(l,e,t)=>e in l?fa(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t,F=(l,e)=>{for(var t in e||(e={}))Mi.call(e,t)&&Ni(l,t,e[t]);if(En)for(var t of En(e))Fi.call(e,t)&&Ni(l,t,e[t]);return l},D=(l,e)=>ya(l,ba(e));var it=(l,e)=>{var t={};for(var n in l)Mi.call(l,n)&&e.indexOf(n)<0&&(t[n]=l[n]);if(l!=null&&En)for(var n of En(l))e.indexOf(n)<0&&Fi.call(l,n)&&(t[n]=l[n]);return t};import{PublicKey as X,SystemProgram as la}from"@solana/web3.js";import{createTransferInstruction as ma,TOKEN_PROGRAM_ID as oe,TOKEN_2022_PROGRAM_ID as Rt,createAssociatedTokenAccountIdempotentInstruction as yn,createSyncNativeInstruction as da,createTransferCheckedInstruction as Kc}from"@solana/spl-token";import $ from"bn.js";import ce from"decimal.js";import{PublicKey as Vi}from"@solana/web3.js";import{get as vi,set as ga}from"lodash";var Co=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}},_i={},Pa={};function te(l){let e=vi(_i,l);if(!e){let t=vi(Pa,l);e=new Co({name:l,logLevel:t}),ga(_i,l,e)}return e}import{MINT_SIZE as Aa,TOKEN_PROGRAM_ID as wa,getTransferFeeConfig as ka,unpackMint as Ta}from"@solana/spl-token";var Ro=te("Raydium_accountInfo_util");async function rt(l,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:i=100}=F({batchRequest:!1},t),r=Lo(e,i),a=new Array(r.length).fill([]);if(n){let c=r.map(p=>{let d=l._buildArgs([p.map(f=>f.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:d}}),u=Lo(c,10);a=(await(await Promise.all(u.map(async p=>await l._rpcBatchRequest(p)))).flat()).map(p=>(p.error&&Ro.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${p.error.message}`),p.result.value.map(d=>{if(d){let{data:f,executable:g,lamports:y,owner:b,rentEpoch:P}=d;return f.length!==2&&f[1]!=="base64"&&Ro.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(f[0],"base64"),executable:g,lamports:y,owner:new Vi(b),rentEpoch:P}}return null})))}else try{a=await Promise.all(r.map(c=>l.getMultipleAccountsInfo(c,o)))}catch(c){c instanceof Error&&Ro.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}async function pt(l,e,t){let n=await rt(l,e.map(o=>o.pubkey),t);return e.map((o,i)=>D(F({},o),{accountInfo:n[i]}))}async function Dn({connection:l,mints:e,config:t}){var i,r,a;if(e.length===0)return{};let n=await pt(l,e.map(c=>({pubkey:nt(c)})),t),o={};for(let c of n){if(!c.accountInfo||c.accountInfo.data.length<Aa){console.log("invalid mint account",c.pubkey.toBase58());continue}let u=Ta(c.pubkey,c.accountInfo,(i=c.accountInfo)==null?void 0:i.owner);o[c.pubkey.toString()]=D(F({},u),{programId:((r=c.accountInfo)==null?void 0:r.owner)||wa,feeConfig:(a=ka(u))!=null?a:void 0})}return o[Vi.default.toBase58()]=o[Ae.toBase58()],o}import Dt from"bn.js";import IR from"decimal.js";import Ra from"big.js";import Un from"bn.js";import ha from"toformat";var Ia=ha,gn=Ia;import qn from"big.js";import xa from"bn.js";import Sa from"decimal.js-light";import Pn from"bn.js";var Ei=9007199254740991;function we(l){let e=te("Raydium_parseBigNumberish");if(l instanceof Pn)return l;if(typeof l=="string"){if(l.match(/^-?[0-9]+$/))return new Pn(l);e.logWithError(`invalid BigNumberish string: ${l}`)}return typeof l=="number"?(l%1&&e.logWithError(`BigNumberish number underflow: ${l}`),(l>=Ei||l<=-Ei)&&e.logWithError(`BigNumberish number overflow: ${l}`),new Pn(String(l))):typeof l=="bigint"?new Pn(l.toString()):(e.error(`invalid BigNumberish value: ${l}`),new Pn(0))}var Wn=te("module/fraction"),Oo=gn(qn),An=gn(Sa),Ka={[0]:An.ROUND_DOWN,[1]:An.ROUND_HALF_UP,[2]:An.ROUND_UP},Ca={[0]:qn.roundDown,[1]:qn.roundHalfUp,[2]:qn.roundUp},le=class{constructor(e,t=new xa(1)){this.numerator=we(e),this.denominator=we(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new le(this.denominator,this.numerator)}add(e){let t=e instanceof le?e:new le(we(e));return this.denominator.eq(t.denominator)?new le(this.numerator.add(t.numerator),this.denominator):new le(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof le?e:new le(we(e));return this.denominator.eq(t.denominator)?new le(this.numerator.sub(t.numerator),this.denominator):new le(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof le?e:new le(we(e));return new le(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof le?e:new le(we(e));return new le(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||Wn.logWithError(`${e} is not an integer.`),e<=0&&Wn.logWithError(`${e} is not positive.`),An.set({precision:e+1,rounding:Ka[n]});let o=new An(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)||Wn.logWithError(`${e} is not an integer.`),e<0&&Wn.logWithError(`${e} is negative.`),Oo.DP=e,Oo.RM=Ca[n]||1,new Oo(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var La=te("Raydium_amount"),Di=gn(Ra);function Oa(l,e){let t="0",n="0";if(l.includes(".")){let o=l.split(".");o.length===2?([t,n]=o,n=n.padEnd(e,"0")):La.logWithError(`invalid number string, num: ${l}`)}else t=l;return[t,n.slice(0,e)||n]}var fe=class extends le{constructor(t,n,o=!0,i){let r=new Un(0),a=No.pow(new Un(t.decimals));if(o)r=we(n);else{let c=new Un(0),u=new Un(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[s,p]=Oa(n.toString(),t.decimals);c=we(s),u=we(p)}c=c.mul(a),r=c.add(u)}super(r,a);this.logger=te(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 fe(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new fe(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 Di.DP=this.token.decimals,new Di(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Na}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Wi}from"@solana/spl-token";var Gn={chainId:101,address:Na.default.toBase58(),programId:Wi.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ft={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Wi.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 vo}from"@solana/web3.js";import{PublicKey as he,SystemProgram as qi,SYSVAR_RENT_PUBKEY as Ma}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Fa}from"@solana/spl-token";function N({pubkey:l,isSigner:e=!1,isWritable:t=!0}){return{pubkey:l,isWritable:t,isSigner:e}}var va=[N({pubkey:Fa,isWritable:!1}),N({pubkey:qi.programId,isWritable:!1}),N({pubkey:Ma,isWritable:!1})];function Mo({publicKey:l,transformSol:e}){let t=Fo(l.toString());if(t instanceof he)return e&&t.equals(Wt)?Ae:t;if(e&&t.toString()===Wt.toBase58())return Ae;if(typeof t=="string"){if(t===he.default.toBase58())return he.default;try{return new he(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Fo(l){try{return new he(l)}catch{return l}}var It=new he("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),at=new he("SysvarRent111111111111111111111111111111111"),_a=new he("SysvarC1ock11111111111111111111111111111111"),Ot=new he("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Va=new he("Sysvar1nstructions1111111111111111111111111"),Ui=qi.programId,bl=new he("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),gl=new he("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Pl=new he("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Al=new he("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),wl=new he("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),kl=new he("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Tl=new he("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),hl=new he("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Il=new he("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Bl=new he("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),xl=new he("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ae=new he("So11111111111111111111111111111111111111112"),Wt=he.default;function nt(l){return Mo({publicKey:l,transformSol:!0})}var _o=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:i=!1,isToken2022:r=!1}){if(e===Wt.toBase58()||e instanceof vo&&Wt.equals(e)){this.decimals=ft.decimals,this.symbol=ft.symbol,this.name=ft.name,this.mint=new vo(ft.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?vo.default:Mo({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},Se=_o;Se.WSOL=new _o(D(F({},ft),{mint:ft.address}));var Vo=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},zn=Vo;zn.SOL=new Vo(Gn);import Ea from"bn.js";var Gi=new le(new Ea(100)),yt=class extends le{toSignificant(e=5,t,n){return this.mul(Gi).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(Gi).toFixed(e,t,n)}};var Da=te("Raydium_price"),je=class extends le{constructor(t){let{baseToken:n,quoteToken:o,numerator:i,denominator:r}=t;super(i,r);this.baseToken=n,this.quoteToken=o,this.scalar=new le(Eo(n.decimals),Eo(o.decimals))}get raw(){return new le(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new je({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Da.logWithError("mul token not equals");let n=super.mul(t);return new je({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 IK}from"lodash";import Zl from"axios";var zi={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Wa=D(F({},zi),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var Am=te("Raydium_Api");import{PublicKey as Ep,SystemProgram as Dp}from"@solana/web3.js";import{AccountLayout as zp,createAssociatedTokenAccountIdempotentInstruction as Yp,TOKEN_PROGRAM_ID as Xp,TOKEN_2022_PROGRAM_ID as Qp}from"@solana/spl-token";import{PublicKey as en,sendAndConfirmTransaction as zo,SystemProgram as Xa,Transaction as Tn,TransactionMessage as hn,VersionedTransaction as In}from"@solana/web3.js";import Qa from"axios";import{PublicKey as Do,AddressLookupTableAccount as $t}from"@solana/web3.js";async function Wo({connection:l,address:e,cluster:t="mainnet"}){let n=await rt(l,[...new Set(e.map(i=>i.toString()))].map(i=>new Do(i))),o={};for(let i=0;i<e.length;i++){let r=n[i],a=e[i];if(!r)continue;let c=new $t({key:a,state:$t.deserialize(r.data)});o[a.toString()]=c,t==="devnet"?jt[a.toString()]=c:Zt[a.toString()]=c}return o}var Zt={},qo=async l=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Zt[e])return Zt;let t=new Do(e),n=await l.getAccountInfo(t);return n&&(Zt[e]=new $t({key:t,state:$t.deserialize(n.data)})),Zt},jt={},Uo=async l=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(jt[e])return jt;let t=new Do(e),n=await l.getAccountInfo(t);return n&&(jt[e]=new $t({key:t,state:$t.deserialize(n.data)})),jt};var j={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 Yi,Keypair as Qi,PublicKey as qa,Transaction as Hi,TransactionMessage as Ua,VersionedTransaction as Zi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ga}from"@solana/spl-token";var Xi=te("Raydium_txUtil"),ji=1644;function Yn(l){let e=[],t=[];return l.microLamports&&(e.push(Yi.setComputeUnitPrice({microLamports:l.microLamports})),t.push(j.SetComputeUnitPrice)),l.units&&(e.push(Yi.setComputeUnitLimit({units:l.units})),t.push(j.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Jt(l,e){var n,o;let t=e!=null?e:"confirmed";return(o=await((n=l.getLatestBlockhash)==null?void 0:n.call(l,{commitment:t})))==null?void 0:o.blockhash}async function Xn(l,e){return l.getSignatureStatuses([e]),new Promise((t,n)=>{let o=setTimeout(n,6e4);l.onSignature(e,i=>{if(clearTimeout(o),!i.err){t("");return}n(Object.assign(i.err,{txId:e}))},"confirmed")})}function Go(l,e){l.length<1&&Xi.logWithError(`no instructions provided: ${l.toString()}`),e.length<1&&Xi.logWithError(`no signers provided:, ${e.toString()}`);let t=new Hi;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...l);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<ji}catch{return!1}}function me(l,e){let[t,n]=qa.findProgramAddressSync(l,e);return{publicKey:t,nonce:n}}function wn({instructions:l,payer:e,signers:t}){return Go(l,[e,...t])}function kn({instructions:l,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=Qi.generate().publicKey.toString()}){let i=new Ua({payerKey:e,recentBlockhash:n,instructions:l}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Zi(i).serialize()).toString("base64").length<ji}catch{return!1}}var za=l=>Buffer.isBuffer(l)?l:l instanceof Uint8Array?Buffer.from(l.buffer,l.byteOffset,l.byteLength):Buffer.from(l),Ya=l=>{let e=l.serialize({requireAllSignatures:!1,verifySignatures:!1});l instanceof Zi&&(e=za(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function qt(l){let e=[];return l.forEach(t=>{t instanceof Hi&&(t.recentBlockhash||(t.recentBlockhash=Ga.toBase58()),t.feePayer||(t.feePayer=Qi.generate().publicKey)),e.push(Ya(t))}),console.log("simulate tx string:",e),e}var Qn=2e3,Hn=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 Qa.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}=Yn(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Xa.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new en(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(j.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!==en.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:n}){return e===0?await this.buildV0(D(F({},t||{}),{lookupTableAddress:n})):this.build(t)}build(e){var n;let t=new Tn;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 s;let{recentBlockHash:i,skipPreflight:r=!0,sendAndConfirm:a,notSendToRpc:c}=o||{},u=i!=null?i:await Jt(this.connection,this.blockhashCommitment);if(t.recentBlockhash=u,this.signers.length&&t.sign(...this.signers),qt([t]),(s=this.owner)!=null&&s.isKeyPair)return{txId:a?await zo(this.connection,t,this.signers.find(d=>d.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 p=await this.signAllTransactions([t]);if(this.signers.length)for(let d of p)try{d.sign(...this.signers)}catch{}return{txId:c?"":await this.connection.sendRawTransaction(p[0].serialize(),{skipPreflight:r}),signedTx:p[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(s=>s.transaction.instructions.length>0),r=[o,...i.map(s=>s.transaction)],a=[this.signers,...i.map(s=>s.signers)],c=[...this.instructionTypes,...i.map(s=>s.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&a.forEach(s=>{s.some(p=>p.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:r,signers:a,instructionTypes:c,execute:async s=>{var P;let{sequentially:p,onTxUpdate:d,skipTxCount:f=0,recentBlockHash:g,skipPreflight:y=!0}=s||{},b=g!=null?g:await Jt(this.connection,this.blockhashCommitment);if((P=this.owner)!=null&&P.isKeyPair){if(p){let w=[],I=0;for(let x of r){if(++I,I<=f)continue;let A=await zo(this.connection,x,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:y});w.push(A)}return{txIds:w,signedTxs:r}}return{txIds:await await Promise.all(r.map(async w=>(w.recentBlockhash=b,await this.connection.sendRawTransaction(w.serialize(),{skipPreflight:y})))),signedTxs:r}}if(this.signAllTransactions){let w=r.map((x,A)=>(x.recentBlockhash=b,a[A].length&&x.sign(...a[A]),x));qt(w);let I=await this.signAllTransactions(w);if(p){let x=0,A=[],k=async()=>{if(!I[x])return;let T=await this.connection.sendRawTransaction(I[x].serialize(),{skipPreflight:y});A.push({txId:T,status:"sent",signedTx:I[x]}),d==null||d([...A]),x++;let R=!1,S=null,B=null,_=O=>{S!==null&&clearInterval(S),B!==null&&this.connection.removeSignatureListener(B);let V=A.findIndex(E=>E.txId===T);if(V>-1){if(A[V].status==="error"||A[V].status==="success")return;A[V].status=O.err?"error":"success"}d==null||d([...A]),O.err||k()};this.loopMultiTxStatus&&(S=setInterval(async()=>{var O;if(R){clearInterval(S);return}try{let V=await this.connection.getTransaction(T,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(R=!0,clearInterval(S),_({err:((O=V.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",T))}catch(V){R=!0,clearInterval(S),console.error("getTransaction timeout:",V,T)}},Qn)),B=this.connection.onSignature(T,O=>{if(R){this.connection.removeSignatureListener(B);return}R=!0,_(O)},"confirmed"),this.connection.getSignatureStatus(T)};return await k(),{txIds:A.map(T=>T.txId),signedTxs:I}}else{let x=[];for(let A=0;A<I.length;A+=1){let k=await this.connection.sendRawTransaction(I[A].serialize(),{skipPreflight:y});x.push(k)}return{txIds:x,signedTxs:I}}}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 g=e||{},{lookupTableCache:t={},lookupTableAddress:n=[],forerunCreate:o,recentBlockhash:i}=g,r=it(g,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=F(F({},this.cluster==="devnet"?await Uo(this.connection):await qo(this.connection)),t),c=Array.from(new Set([...n,...this.lookupTableAddress])),u=[];for(let b of c)a[b]===void 0&&u.push(new en(b));let s=await Wo({connection:this.connection,address:u});for(let[b,P]of Object.entries(s))a[b]=P;let p=o?en.default.toBase58():i!=null?i:await Jt(this.connection,this.blockhashCommitment),d=new hn({payerKey:this.feePayer,recentBlockhash:p,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 f=new In(d);return f.sign(this.signers),{builder:this,transaction:f,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async b=>{var x;let{skipPreflight:P=!0,sendAndConfirm:w,notSendToRpc:I}=b||{};if(qt([f]),(x=this.owner)!=null&&x.isKeyPair){let A=await this.connection.sendTransaction(f,{skipPreflight:P});return w&&await Xn(this.connection,A),{txId:A,signedTx:f}}if(this.signAllTransactions){let A=await this.signAllTransactions([f]);if(this.signers.length)for(let k of A)try{k.sign(this.signers)}catch{}return{txId:I?"":await this.connection.sendTransaction(A[0],{skipPreflight:P}),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(s=>s.builder.instructions.length>0),r=[o,...i.map(s=>s.transaction)],a=[this.signers,...i.map(s=>s.signers)],c=[...this.instructionTypes,...i.map(s=>s.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&a.forEach(s=>{s.some(p=>p.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),r.forEach(async(s,p)=>{s.sign(a[p])}),{builder:this,transactions:r,signers:a,instructionTypes:c,buildProps:n,execute:async s=>{var y;let{sequentially:p,onTxUpdate:d,recentBlockHash:f,skipPreflight:g=!0}=s||{};if(f&&r.forEach(b=>b.message.recentBlockhash=f),qt(r),(y=this.owner)!=null&&y.isKeyPair){if(p){let b=[];for(let P of r){let w=await this.connection.sendTransaction(P,{skipPreflight:g});await Xn(this.connection,w),b.push(w)}return{txIds:b,signedTxs:r}}return{txIds:await Promise.all(r.map(async b=>await this.connection.sendTransaction(b,{skipPreflight:g}))),signedTxs:r}}if(this.signAllTransactions){let b=await this.signAllTransactions(r);if(p){let P=0,w=[],I=async()=>{if(!b[P])return;let x=await this.connection.sendTransaction(b[P],{skipPreflight:g});w.push({txId:x,status:"sent",signedTx:b[P]}),d==null||d([...w]),P++;let A=!1,k=null,T=null,R=S=>{k!==null&&clearInterval(k),T!==null&&this.connection.removeSignatureListener(T);let B=w.findIndex(_=>_.txId===x);if(B>-1){if(w[B].status==="error"||w[B].status==="success")return;w[B].status=S.err?"error":"success"}d==null||d([...w]),S.err||I()};this.loopMultiTxStatus&&(k=setInterval(async()=>{var S;if(A){clearInterval(k);return}try{let B=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});B&&(A=!0,clearInterval(k),R({err:((S=B.meta)==null?void 0:S.err)||null}),console.log("tx status from getTransaction:",x))}catch(B){A=!0,clearInterval(k),console.error("getTransaction timeout:",B,x)}},Qn)),T=this.connection.onSignature(x,S=>{if(A){this.connection.removeSignatureListener(T);return}A=!0,R(S)},"confirmed"),this.connection.getSignatureStatus(x)};return I(),{txIds:[],signedTxs:b}}else{let P=[];for(let w=0;w<b.length;w+=1){let I=await this.connection.sendTransaction(b[w],{skipPreflight:g});P.push(I)}return{txIds:P,signedTxs:b}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async sizeCheckBuild(e){var d;let p=e||{},{splitIns:t=[],computeBudgetConfig:n}=p,o=it(p,["splitIns","computeBudgetConfig"]),i=n?Yn(n):{instructions:[],instructionTypes:[]},r=this.signers.reduce((f,g)=>D(F({},f),{[g.publicKey.toBase58()]:g}),{}),a=[],c=[],u=[],s=0;if(this.allInstructions.forEach(f=>{let g=[...u,f],y=n?[...i.instructions,...g]:g,P=[...new Set(g.map(w=>w.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(w=>new en(w));if(f!==t[s]&&u.length<12&&(wn({instructions:y,payer:this.feePayer,signers:P})||wn({instructions:g,payer:this.feePayer,signers:P})))u.push(f);else{if(u.length===0)throw Error("item ins too big");s+=f===t[s]?1:0,wn({instructions:n?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:P})?a.push(new Tn().add(...i.instructions,...u)):a.push(new Tn().add(...u)),c.push(Array.from(new Set(u.map(w=>w.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat())).map(w=>r[w]).filter(w=>w!==void 0)),u=[f]}}),u.length>0){let g=[...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);wn({instructions:n?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:g.map(y=>y.publicKey)})?a.push(new Tn().add(...i.instructions,...u)):a.push(new Tn().add(...u)),c.push(g)}return a.forEach(f=>f.feePayer=this.feePayer),(d=this.owner)!=null&&d.signer&&c.forEach(f=>{f.some(g=>g.publicKey.equals(this.owner.publicKey))||f.push(this.owner.signer)}),{builder:this,transactions:a,signers:c,instructionTypes:this.instructionTypes,execute:async f=>{var x;let{sequentially:g,onTxUpdate:y,skipTxCount:b=0,recentBlockHash:P,skipPreflight:w=!0}=f||{},I=P!=null?P:await Jt(this.connection,this.blockhashCommitment);if(a.forEach(async(A,k)=>{A.recentBlockhash=I,c[k].length&&A.sign(...c[k])}),qt(a),(x=this.owner)!=null&&x.isKeyPair){if(g){let A=0,k=[];for(let T of a){if(++A,A<=b){k.push("tx skipped");continue}let R=await zo(this.connection,T,this.signers.find(S=>S.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});k.push(R)}return{txIds:k,signedTxs:a}}return{txIds:await Promise.all(a.map(async A=>await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:w}))),signedTxs:a}}if(this.signAllTransactions){let A=await this.signAllTransactions(a.slice(b,a.length)),k=[...a.slice(0,b),...A];if(g){let T=0,R=[],S=async()=>{if(!k[T])return;T<b&&(R.push({txId:"",status:"success",signedTx:k[T]}),y==null||y([...R]),T++,S());let B=await this.connection.sendRawTransaction(k[T].serialize(),{skipPreflight:w});R.push({txId:B,status:"sent",signedTx:k[T]}),y==null||y([...R]),T++;let _=!1,O=null,V=null,E=q=>{O!==null&&clearInterval(O),V!==null&&this.connection.removeSignatureListener(V);let U=R.findIndex(z=>z.txId===B);if(U>-1){if(R[U].status==="error"||R[U].status==="success")return;R[U].status=q.err?"error":"success"}y==null||y([...R]),q.err||S()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var q;if(_){clearInterval(O);return}try{let U=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});U&&(_=!0,clearInterval(O),E({err:((q=U.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",B))}catch(U){_=!0,clearInterval(O),console.error("getTransaction timeout:",U,B)}},Qn)),V=this.connection.onSignature(B,q=>{if(_){this.connection.removeSignatureListener(V);return}_=!0,E(q)},"confirmed"),this.connection.getSignatureStatus(B)};return await S(),{txIds:R.map(B=>B.txId),signedTxs:k}}else{let T=[];for(let R=0;R<k.length;R+=1){let S=await this.connection.sendRawTransaction(k[R].serialize(),{skipPreflight:w});T.push(S)}return{txIds:T,signedTxs:k}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(e){var x;let I=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:o={},lookupTableAddress:i=[],insCountLimit:r=12}=I,a=it(I,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),c=F(F({},this.cluster==="devnet"?await Uo(this.connection):await qo(this.connection)),o),u=Array.from(new Set([...this.lookupTableAddress,...i])),s=[];for(let A of u)c[A]===void 0&&s.push(new en(A));let p=await Wo({connection:this.connection,address:s});for(let[A,k]of Object.entries(p))c[A]=k;let d=t?Yn(t):{instructions:[],instructionTypes:[]},f=await Jt(this.connection,this.blockhashCommitment),g=this.signers.reduce((A,k)=>D(F({},A),{[k.publicKey.toBase58()]:k}),{}),y=[],b=[],P=[],w=0;if(this.allInstructions.forEach(A=>{let k=[...P,A],T=t?[...d.instructions,...k]:k;if(A!==n[w]&&P.length<r&&(kn({instructions:T,payer:this.feePayer,lookupTableAddressAccount:c})||kn({instructions:k,payer:this.feePayer,lookupTableAddressAccount:c})))P.push(A);else{if(P.length===0)throw Error("item ins too big");w+=A===n[w]?1:0;let R={};for(let S of[...new Set(u)])c[S]!==void 0&&(R[S]=c[S]);if(t&&kn({instructions:[...d.instructions,...P],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:f})){let S=new hn({payerKey:this.feePayer,recentBlockhash:f,instructions:[...d.instructions,...P]}).compileToV0Message(Object.values(c));y.push(new In(S))}else{let S=new hn({payerKey:this.feePayer,recentBlockhash:f,instructions:[...P]}).compileToV0Message(Object.values(c));y.push(new In(S))}b.push(Array.from(new Set(P.map(S=>S.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat())).map(S=>g[S]).filter(S=>S!==void 0)),P=[A]}}),P.length>0){let k=[...new Set(P.map(T=>T.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(T=>g[T]).filter(T=>T!==void 0);if(t&&kn({instructions:[...d.instructions,...P],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:f})){let T=new hn({payerKey:this.feePayer,recentBlockhash:f,instructions:[...d.instructions,...P]}).compileToV0Message(Object.values(c));y.push(new In(T))}else{let T=new hn({payerKey:this.feePayer,recentBlockhash:f,instructions:[...P]}).compileToV0Message(Object.values(c));y.push(new In(T))}b.push(k)}return(x=this.owner)!=null&&x.signer&&b.forEach(A=>{A.some(k=>k.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),y.forEach((A,k)=>{A.sign(b[k])}),{builder:this,transactions:y,buildProps:e,signers:b,instructionTypes:this.instructionTypes,execute:async A=>{var _;let{sequentially:k,onTxUpdate:T,skipTxCount:R=0,recentBlockHash:S,skipPreflight:B=!0}=A||{};if(y.map(async(O,V)=>{b[V].length&&O.sign(b[V]),S&&(O.message.recentBlockhash=S)}),qt(y),(_=this.owner)!=null&&_.isKeyPair){if(k){let O=0,V=[];for(let E of y){if(++O,O<=R){console.log("skip tx: ",O),V.push("tx skipped");continue}let q=await this.connection.sendTransaction(E,{skipPreflight:B});await Xn(this.connection,q),V.push(q)}return{txIds:V,signedTxs:y}}return{txIds:await Promise.all(y.map(async O=>await this.connection.sendTransaction(O,{skipPreflight:B}))),signedTxs:y}}if(this.signAllTransactions){let O=await this.signAllTransactions(y.slice(R,y.length)),V=[...y.slice(0,R),...O];if(k){let E=0,q=[],U=async()=>{if(!V[E])return;if(E<R){q.push({txId:"",status:"success",signedTx:V[E]}),T==null||T([...q]),E++,U();return}let z=await this.connection.sendTransaction(V[E],{skipPreflight:B});q.push({txId:z,status:"sent",signedTx:V[E]}),T==null||T([...q]),E++;let se=!1,ee=null,ye=null,be=ue=>{ee!==null&&clearInterval(ee),ye!==null&&this.connection.removeSignatureListener(ye);let pe=q.findIndex(xe=>xe.txId===z);if(pe>-1){if(q[pe].status==="error"||q[pe].status==="success")return;q[pe].status=ue.err?"error":"success"}T==null||T([...q]),ue.err||U()};this.loopMultiTxStatus&&(ee=setInterval(async()=>{var ue;if(se){clearInterval(ee);return}try{let pe=await this.connection.getTransaction(z,{commitment:"confirmed",maxSupportedTransactionVersion:0});pe&&(se=!0,clearInterval(ee),be({err:((ue=pe.meta)==null?void 0:ue.err)||null}),console.log("tx status from getTransaction:",z))}catch(pe){se=!0,clearInterval(ee),console.error("getTransaction timeout:",pe,z)}},Qn)),ye=this.connection.onSignature(z,ue=>{if(se){this.connection.removeSignatureListener(ye);return}se=!0,be(ue)},"confirmed"),this.connection.getSignatureStatus(z)};return U(),{txIds:[],signedTxs:V}}else{let E=[];for(let q=0;q<V.length;q+=1){let U=await this.connection.sendTransaction(V[q],{skipPreflight:B});E.push(U)}return{txIds:E,signedTxs:V}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}};var Yo=(...l)=>l.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=te(t)}createTxBuilder(e){return this.scope.checkOwner(),new Hn({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(Yo(e))}logInfo(...e){this.logger.info(Yo(e))}logAndCreateError(...e){let t=Yo(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Ps,SystemProgram as As}from"@solana/web3.js";import ws from"bn.js";import{createCloseAccountInstruction as ks,createInitializeAccountInstruction as Ts,createTransferInstruction as Cp,TOKEN_PROGRAM_ID as xn}from"@solana/spl-token";import{Keypair as fs,PublicKey as ys}from"@solana/web3.js";import fp from"bn.js";import{TOKEN_PROGRAM_ID as bs}from"@solana/spl-token";function Ha(l){return l instanceof Uint8Array||l!=null&&typeof l=="object"&&l.constructor.name==="Uint8Array"}function Xo(l,...e){if(!Ha(l))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(l.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${l.length}`)}function Qo(l,e=!0){if(l.destroyed)throw new Error("Hash instance has been destroyed");if(e&&l.finished)throw new Error("Hash#digest() has already been called")}function $i(l,e){Xo(l);let t=e.outputLen;if(l.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var jn=l=>new DataView(l.buffer,l.byteOffset,l.byteLength),bt=(l,e)=>l<<32-e|l>>>e;var ud=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Za(l){if(typeof l!="string")throw new Error(`utf8ToBytes expected string, got ${typeof l}`);return new Uint8Array(new TextEncoder().encode(l))}function Ho(l){return typeof l=="string"&&(l=Za(l)),Xo(l),l}var Zn=class{clone(){return this._cloneInto()}},cd={}.toString;function Ji(l){let e=n=>l().update(Ho(n)).digest(),t=l();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>l(),e}function ja(l,e,t,n){if(typeof l.setBigUint64=="function")return l.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;l.setUint32(e+c,r,n),l.setUint32(e+u,a,n)}var er=(l,e,t)=>l&e^~l&t,tr=(l,e,t)=>l&e^l&t^e&t,$n=class extends Zn{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=jn(this.buffer)}update(e){Qo(this);let{view:t,buffer:n,blockLen:o}=this;e=Ho(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=jn(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){Qo(this),$i(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 p=r;p<o;p++)t[p]=0;ja(n,o-8,BigInt(this.length*8),i),this.process(n,0);let a=jn(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,s=this.get();if(u>s.length)throw new Error("_sha2: outputLen bigger than state");for(let p=0;p<u;p++)a.setUint32(4*p,s[p],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 $a=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]),Nt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Mt=new Uint32Array(64),Zo=class extends $n{constructor(){super(64,32,8,!1),this.A=Nt[0]|0,this.B=Nt[1]|0,this.C=Nt[2]|0,this.D=Nt[3]|0,this.E=Nt[4]|0,this.F=Nt[5]|0,this.G=Nt[6]|0,this.H=Nt[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 p=0;p<16;p++,t+=4)Mt[p]=e.getUint32(t,!1);for(let p=16;p<64;p++){let d=Mt[p-15],f=Mt[p-2],g=bt(d,7)^bt(d,18)^d>>>3,y=bt(f,17)^bt(f,19)^f>>>10;Mt[p]=y+Mt[p-7]+g+Mt[p-16]|0}let{A:n,B:o,C:i,D:r,E:a,F:c,G:u,H:s}=this;for(let p=0;p<64;p++){let d=bt(a,6)^bt(a,11)^bt(a,25),f=s+d+er(a,c,u)+$a[p]+Mt[p]|0,y=(bt(n,2)^bt(n,13)^bt(n,22))+tr(n,o,i)|0;s=u,u=c,c=a,a=r+f|0,r=i,i=o,o=n,n=f+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,s=s+this.H|0,this.set(n,o,i,r,a,c,u,s)}roundClean(){Mt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var nr=Ji(()=>new Zo);import{PublicKey as ms}from"@solana/web3.js";import ur,{isBN as cr}from"bn.js";import{bits as Ja,BitStructure as Pd,blob as es,Blob as Ad,cstr as wd,f32 as kd,f32be as Td,f64 as hd,f64be as Id,greedy as Bd,Layout as ts,ns64 as xd,ns64be as Sd,nu64 as ns,nu64be as Kd,offset as os,s16 as Cd,s16be as Rd,s24 as Ld,s24be as Od,s32 as is,s32be as Nd,s40 as Md,s40be as Fd,s48 as vd,s48be as _d,s8 as Vd,seq as rs,struct as Ed,Structure as as,u16 as ss,u16be as Dd,u24 as Wd,u24be as qd,u32 as us,u32be as Ud,u40 as Gd,u40be as zd,u48 as Yd,u48be as Xd,u8 as cs,UInt as ls,union as Qd,Union as Hd,unionLayoutDiscriminator as Zd,utf8 as jd}from"@solana/buffer-layout";var Jn=ts,or=as;var jo=ls;var ir=cs,De=ss;var eo=us;var rr=ns;var Me=is;var ar=rs;var J=es;var $o=Ja,sr=os;var Gt=class extends Jn{constructor(t,n,o){super(t,o);this.blob=J(t),this.signed=n}decode(t,n=0){let o=new ur(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 ur(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},to=class extends Jn{constructor(t){super(8,t);this._lower=$o(eo(),!1),this._upper=$o(eo(),!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 F(F({},o),i)}encode(t,n,o=0){return this._lower.encode(t,n,o)+this._upper.encode(t,n,o+this._lower.span)}};function M(l){return new jo(1,l)}function Ie(l){return new jo(4,l)}function m(l){return new Gt(8,!1,l)}function Q(l){return new Gt(16,!1,l)}function lr(l){return new Gt(1,!0,l)}function tn(l){return new Gt(8,!0,l)}function mr(l){return new Gt(16,!0,l)}var Bn=class extends Jn{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 h(l){return new Bn(J(32),e=>new ms(e),e=>e.toBuffer(),l)}function Ke(l){return new Bn(ir(),ds,ps,l)}function ds(l){if(l===0)return!1;if(l===1)return!0;throw new Error("Invalid bool: "+l)}function ps(l){return l?1:0}function dr(l,e){let t=eo("length"),n=L([t,W(l,sr(t,-t.span),"values")]);return new Bn(n,({values:o})=>o,o=>({values:o}),e)}var Jo=class extends or{decode(e,t){return super.decode(e,t)}};function L(l,e,t){return new Jo(l,e,t)}function W(l,e,t){let n,o=typeof e=="number"?e:cr(e)?e.toNumber():new Proxy(e,{get(i,r){if(!n){let a=Reflect.get(i,"count");n=cr(a)?a.toNumber():a,Reflect.set(i,"count",n)}return Reflect.get(i,r)},set(i,r,a){return r==="count"&&(n=a),Reflect.set(i,r,a)}});return ar(l,o,t)}var nn=L([h("mint"),h("owner"),m("amount"),Ie("delegateOption"),h("delegate"),M("state"),Ie("isNativeOption"),m("isNative"),m("delegatedAmount"),Ie("closeAuthorityOption"),h("closeAuthority")]);function on({fromPublicKey:l,programId:e=bs,assignSeed:t}){let n=t?btoa(t).slice(0,32):fs.generate().publicKey.toBase58().slice(0,32);return{publicKey:gs(l,n,e),seed:n}}function gs(l,e,t){let n=Buffer.concat([l.toBuffer(),Buffer.from(e),t.toBuffer()]),o=nr(n);return new ys(o)}function pr(l){let{mint:e,tokenAccount:t,owner:n,programId:o=xn}=l;return Ts(t,e,n,o)}function rn(l){let{tokenAccount:e,payer:t,multiSigners:n=[],owner:o,programId:i=xn}=l;return ks(e,t,o,n,i)}async function no(l){let{connection:e,amount:t,commitment:n,payer:o,owner:i,skipCloseAccount:r}=l,a=await e.getMinimumBalanceForRentExemption(nn.span,n),c=we(t).add(new ws(a)),u=on({fromPublicKey:o,programId:xn});return{addresses:{newAccount:u.publicKey},signers:[],instructions:[As.createAccountWithSeed({fromPubkey:o,basePubkey:o,seed:u.seed,newAccountPubkey:u.publicKey,lamports:c.toNumber(),space:nn.span,programId:xn}),pr({mint:new Ps(ft.address),tokenAccount:u.publicKey,owner:i,programId:xn})],instructionTypes:[j.CreateAccount,j.InitAccount],endInstructionTypes:r?[]:[j.CloseAccount],endInstructions:r?[]:[rn({tokenAccount:u.publicKey,payer:o,owner:i})]}}import{PublicKey as VA,SystemProgram as EA}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as WA}from"@solana/spl-token";import{PublicKey as hs}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Is}from"@solana/spl-token";function de(l,e,t){return me([l.toBuffer(),(t!=null?t:Is).toBuffer(),e.toBuffer()],new hs("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as Y}from"@solana/web3.js";var fr=new Y("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),yr=new Y("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),br=new Y("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),ei=new Y("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),af=new Y("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Bs=new Y("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),ti=new Y("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ni=new Y("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),sf=new Y("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),gr=new Y("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),oi=new Y("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),xs=new Y("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ss=new Y("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),oo=new Y("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),uf=new Y("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ks=new Y("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Cs=new Y("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Rs=new Y("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ls=new Y("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Os=new Y("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),io=new Y("CPMMoo8L3F4Nb