@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 228 kB
JavaScript
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 Y,SystemProgram as la}from"@solana/web3.js";import{createTransferInstruction as ma,TOKEN_PROGRAM_ID as oe,TOKEN_2022_PROGRAM_ID as Rt,createAssociatedTokenAccountIdempotentInstruction as pn,createSyncNativeInstruction as da,createTransferCheckedInstruction as Kc}from"@solana/spl-token";import $ from"bn.js";import ue 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 dt(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 dt(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[Pe.toBase58()],o}import Et from"bn.js";import SR from"decimal.js";import Ra from"big.js";import Un from"bn.js";import ha from"toformat";var Ia=ha,yn=Ia;import qn from"big.js";import xa from"bn.js";import Sa from"decimal.js-light";import bn from"bn.js";var Ei=9007199254740991;function Ae(l){let e=te("Raydium_parseBigNumberish");if(l instanceof bn)return l;if(typeof l=="string"){if(l.match(/^-?[0-9]+$/))return new bn(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 bn(String(l))):typeof l=="bigint"?new bn(l.toString()):(e.error(`invalid BigNumberish value: ${l}`),new bn(0))}var Wn=te("module/fraction"),Oo=yn(qn),gn=yn(Sa),Ka={[0]:gn.ROUND_DOWN,[1]:gn.ROUND_HALF_UP,[2]:gn.ROUND_UP},Ca={[0]:qn.roundDown,[1]:qn.roundHalfUp,[2]:qn.roundUp},ce=class{constructor(e,t=new xa(1)){this.numerator=Ae(e),this.denominator=Ae(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new ce(this.denominator,this.numerator)}add(e){let t=e instanceof ce?e:new ce(Ae(e));return this.denominator.eq(t.denominator)?new ce(this.numerator.add(t.numerator),this.denominator):new ce(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof ce?e:new ce(Ae(e));return this.denominator.eq(t.denominator)?new ce(this.numerator.sub(t.numerator),this.denominator):new ce(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof ce?e:new ce(Ae(e));return new ce(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof ce?e:new ce(Ae(e));return new ce(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.`),gn.set({precision:e+1,rounding:Ka[n]});let o=new gn(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=yn(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 ce{constructor(t,n,o=!0,i){let r=new Un(0),a=No.pow(new Un(t.decimals));if(o)r=Ae(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=Ae(s),u=Ae(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"}},pt={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 Te,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 Te)return e&&t.equals(Dt)?Pe:t;if(e&&t.toString()===Dt.toBase58())return Pe;if(typeof t=="string"){if(t===Te.default.toBase58())return Te.default;try{return new Te(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Fo(l){try{return new Te(l)}catch{return l}}var It=new Te("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),at=new Te("SysvarRent111111111111111111111111111111111"),_a=new Te("SysvarC1ock11111111111111111111111111111111"),Ot=new Te("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Va=new Te("Sysvar1nstructions1111111111111111111111111"),Ui=qi.programId,bl=new Te("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),gl=new Te("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Pl=new Te("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Al=new Te("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),wl=new Te("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),kl=new Te("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Tl=new Te("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),hl=new Te("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Il=new Te("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Bl=new Te("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),xl=new Te("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Pe=new Te("So11111111111111111111111111111111111111112"),Dt=Te.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===Dt.toBase58()||e instanceof vo&&Dt.equals(e)){this.decimals=pt.decimals,this.symbol=pt.symbol,this.name=pt.name,this.mint=new vo(pt.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({},pt),{mint:pt.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 ce(new Ea(100)),ft=class extends ce{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 ce{constructor(t){let{baseToken:n,quoteToken:o,numerator:i,denominator:r}=t;super(i,r);this.baseToken=n,this.quoteToken=o,this.scalar=new ce(Eo(n.decimals),Eo(o.decimals))}get raw(){return new ce(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 SK}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 Xp,TOKEN_PROGRAM_ID as Yp,TOKEN_2022_PROGRAM_ID as Qp}from"@solana/spl-token";import{PublicKey as Jt,sendAndConfirmTransaction as zo,SystemProgram as Ya,Transaction as wn,TransactionMessage as kn,VersionedTransaction as Tn}from"@solana/web3.js";import Qa from"axios";import{PublicKey as Do,AddressLookupTableAccount as jt}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 jt({key:a,state:jt.deserialize(r.data)});o[a.toString()]=c,t==="devnet"?Zt[a.toString()]=c:Ht[a.toString()]=c}return o}var Ht={},qo=async l=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ht[e])return Ht;let t=new Do(e),n=await l.getAccountInfo(t);return n&&(Ht[e]=new jt({key:t,state:jt.deserialize(n.data)})),Ht},Zt={},Uo=async l=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Zt[e])return Zt;let t=new Do(e),n=await l.getAccountInfo(t);return n&&(Zt[e]=new jt({key:t,state:jt.deserialize(n.data)})),Zt};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 Xi,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 Yi=te("Raydium_txUtil"),ji=1644;function Xn(l){let e=[],t=[];return l.microLamports&&(e.push(Xi.setComputeUnitPrice({microLamports:l.microLamports})),t.push(j.SetComputeUnitPrice)),l.units&&(e.push(Xi.setComputeUnitLimit({units:l.units})),t.push(j.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function $t(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 Yn(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&&Yi.logWithError(`no instructions provided: ${l.toString()}`),e.length<1&&Yi.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 le(l,e){let[t,n]=qa.findProgramAddressSync(l,e);return{publicKey:t,nonce:n}}function Pn({instructions:l,payer:e,signers:t}){return Go(l,[e,...t])}function An({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),Xa=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 Wt(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(Xa(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}=Xn(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Ya.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Jt(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!==Jt.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 wn;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 $t(this.connection,this.blockhashCommitment);if(t.recentBlockhash=u,this.signers.length&&t.sign(...this.signers),Wt([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 $t(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));Wt(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 Jt(b));let s=await Wo({connection:this.connection,address:u});for(let[b,P]of Object.entries(s))a[b]=P;let p=o?Jt.default.toBase58():i!=null?i:await $t(this.connection,this.blockhashCommitment),d=new kn({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 Tn(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(Wt([f]),(x=this.owner)!=null&&x.isKeyPair){let A=await this.connection.sendTransaction(f,{skipPreflight:P});return w&&await Yn(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),Wt(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 Yn(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?Xn(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 Jt(w));if(f!==t[s]&&u.length<12&&(Pn({instructions:y,payer:this.feePayer,signers:P})||Pn({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,Pn({instructions:n?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:P})?a.push(new wn().add(...i.instructions,...u)):a.push(new wn().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);Pn({instructions:n?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:g.map(y=>y.publicKey)})?a.push(new wn().add(...i.instructions,...u)):a.push(new wn().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 $t(this.connection,this.blockhashCommitment);if(a.forEach(async(A,k)=>{A.recentBlockhash=I,c[k].length&&A.sign(...c[k])}),Wt(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 Jt(A));let p=await Wo({connection:this.connection,address:s});for(let[A,k]of Object.entries(p))c[A]=k;let d=t?Xn(t):{instructions:[],instructionTypes:[]},f=await $t(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&&(An({instructions:T,payer:this.feePayer,lookupTableAddressAccount:c})||An({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&&An({instructions:[...d.instructions,...P],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:f})){let S=new kn({payerKey:this.feePayer,recentBlockhash:f,instructions:[...d.instructions,...P]}).compileToV0Message(Object.values(c));y.push(new Tn(S))}else{let S=new kn({payerKey:this.feePayer,recentBlockhash:f,instructions:[...P]}).compileToV0Message(Object.values(c));y.push(new Tn(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&&An({instructions:[...d.instructions,...P],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:f})){let T=new kn({payerKey:this.feePayer,recentBlockhash:f,instructions:[...d.instructions,...P]}).compileToV0Message(Object.values(c));y.push(new Tn(T))}else{let T=new kn({payerKey:this.feePayer,recentBlockhash:f,instructions:[...P]}).compileToV0Message(Object.values(c));y.push(new Tn(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)}),Wt(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 Yn(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 ae=!1,ee=null,ye=null,be=se=>{ee!==null&&clearInterval(ee),ye!==null&&this.connection.removeSignatureListener(ye);let de=q.findIndex(xe=>xe.txId===z);if(de>-1){if(q[de].status==="error"||q[de].status==="success")return;q[de].status=se.err?"error":"success"}T==null||T([...q]),se.err||U()};this.loopMultiTxStatus&&(ee=setInterval(async()=>{var se;if(ae){clearInterval(ee);return}try{let de=await this.connection.getTransaction(z,{commitment:"confirmed",maxSupportedTransactionVersion:0});de&&(ae=!0,clearInterval(ee),be({err:((se=de.meta)==null?void 0:se.err)||null}),console.log("tx status from getTransaction:",z))}catch(de){ae=!0,clearInterval(ee),console.error("getTransaction timeout:",de,z)}},Qn)),ye=this.connection.onSignature(z,se=>{if(ae){this.connection.removeSignatureListener(ye);return}ae=!0,be(se)},"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 Xo=(...l)=>l.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),Xe=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(Xo(e))}logInfo(...e){this.logger.info(Xo(e))}logAndCreateError(...e){let t=Xo(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 In}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 Yo(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){Yo(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),yt=(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)),Yo(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=yt(d,7)^yt(d,18)^d>>>3,y=yt(f,17)^yt(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=yt(a,6)^yt(a,11)^yt(a,25),f=s+d+er(a,c,u)+$a[p]+Mt[p]|0,y=(yt(n,2)^yt(n,13)^yt(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 Xd,u48be as Yd,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,Ee=ss;var eo=us;var rr=ns;var Me=is;var ar=rs;var J=es;var $o=Ja,sr=os;var Ut=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 he(l){return new jo(4,l)}function m(l){return new Ut(8,!1,l)}function Q(l){return new Ut(16,!1,l)}function lr(l){return new Ut(1,!0,l)}function en(l){return new Ut(8,!0,l)}function mr(l){return new Ut(16,!0,l)}var hn=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 hn(J(32),e=>new ms(e),e=>e.toBuffer(),l)}function Ke(l){return new hn(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 hn(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 tn=L([h("mint"),h("owner"),m("amount"),he("delegateOption"),h("delegate"),M("state"),he("isNativeOption"),m("isNative"),m("delegatedAmount"),he("closeAuthorityOption"),h("closeAuthority")]);function nn({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=In}=l;return Ts(t,e,n,o)}function on(l){let{tokenAccount:e,payer:t,multiSigners:n=[],owner:o,programId:i=In}=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(tn.span,n),c=Ae(t).add(new ws(a)),u=nn({fromPublicKey:o,programId:In});return{addresses:{newAccount:u.publicKey},signers:[],instructions:[As.createAccountWithSeed({fromPubkey:o,basePubkey:o,seed:u.seed,newAccountPubkey:u.publicKey,lamports:c.toNumber(),space:tn.span,programId:In}),pr({mint:new Ps(pt.address),tokenAccount:u.publicKey,owner:i,programId:In})],instructionTypes:[j.CreateAccount,j.InitAccount],endInstructionTypes:r?[]:[j.CloseAccount],endInstructions:r?[]:[on({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 me(l,e,t){return le([l.toBuffer(),(t!=null?t:Is).toBuffer(),e.toBuffer()],new hs("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as X}from"@solana/web3.js";var fr=new X("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),yr=new X("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),br=new X("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),ei=new X("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),af=new X("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Bs=new X("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),ti=new X("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ni=new X("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),sf=new X("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),gr=new X("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),oi=new X("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),xs=new X("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ss=new X("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),oo=new X("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),uf=new X("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ks=new X("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Cs=new X("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Rs=new X("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ls=new X("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Os=new X("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),io=new X("CPMMoo8L3F4Nb