@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 228 kB
JavaScript
var ma=Object.defineProperty,da=Object.defineProperties;var pa=Object.getOwnPropertyDescriptors;var Vn=Object.getOwnPropertySymbols;var Ni=Object.prototype.hasOwnProperty,Mi=Object.prototype.propertyIsEnumerable;var Oi=(l,e,t)=>e in l?ma(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t,F=(l,e)=>{for(var t in e||(e={}))Ni.call(e,t)&&Oi(l,t,e[t]);if(Vn)for(var t of Vn(e))Mi.call(e,t)&&Oi(l,t,e[t]);return l},D=(l,e)=>da(l,pa(e));var it=(l,e)=>{var t={};for(var n in l)Ni.call(l,n)&&e.indexOf(n)<0&&(t[n]=l[n]);if(l!=null&&Vn)for(var n of Vn(l))e.indexOf(n)<0&&Mi.call(l,n)&&(t[n]=l[n]);return t};import{PublicKey as X,SystemProgram as sa}from"@solana/web3.js";import{createTransferInstruction as ua,TOKEN_PROGRAM_ID as oe,TOKEN_2022_PROGRAM_ID as Rt,createAssociatedTokenAccountIdempotentInstruction as pn,createSyncNativeInstruction as ca,createTransferCheckedInstruction as gc}from"@solana/spl-token";import $ from"bn.js";import ue from"decimal.js";import{PublicKey as _i}from"@solana/web3.js";import{get as Fi,set as fa}from"lodash";var Ko=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}},vi={},ya={};function te(l){let e=Fi(vi,l);if(!e){let t=Fi(ya,l);e=new Ko({name:l,logLevel:t}),fa(vi,l,e)}return e}import{MINT_SIZE as ba,TOKEN_PROGRAM_ID as ga,getTransferFeeConfig as Pa,unpackMint as Aa}from"@solana/spl-token";var Co=te("Raydium_accountInfo_util");async function rt(l,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:i=100}=F({batchRequest:!1},t),r=Ro(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=Ro(c,10);a=(await(await Promise.all(u.map(async p=>await l._rpcBatchRequest(p)))).flat()).map(p=>(p.error&&Co.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"&&Co.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(f[0],"base64"),executable:g,lamports:y,owner:new _i(b),rentEpoch:P}}return null})))}else try{a=await Promise.all(r.map(c=>l.getMultipleAccountsInfo(c,o)))}catch(c){c instanceof Error&&Co.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}async function mt(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 En({connection:l,mints:e,config:t}){var i,r,a;if(e.length===0)return{};let n=await mt(l,e.map(c=>({pubkey:nt(c)})),t),o={};for(let c of n){if(!c.accountInfo||c.accountInfo.data.length<ba){console.log("invalid mint account",c.pubkey.toBase58());continue}let u=Aa(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)||ga,feeConfig:(a=Pa(u))!=null?a:void 0})}return o[_i.default.toBase58()]=o[we.toBase58()],o}import Et from"bn.js";import UC from"decimal.js";import Sa from"big.js";import qn from"bn.js";import wa from"toformat";var ka=wa,yn=ka;import Wn from"big.js";import ha from"bn.js";import Ia from"decimal.js-light";import bn from"bn.js";var Vi=9007199254740991;function Pe(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>=Vi||l<=-Vi)&&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 Dn=te("module/fraction"),Lo=yn(Wn),gn=yn(Ia),Ba={[0]:gn.ROUND_DOWN,[1]:gn.ROUND_HALF_UP,[2]:gn.ROUND_UP},xa={[0]:Wn.roundDown,[1]:Wn.roundHalfUp,[2]:Wn.roundUp},ce=class{constructor(e,t=new ha(1)){this.numerator=Pe(e),this.denominator=Pe(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(Pe(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(Pe(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(Pe(e));return new ce(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof ce?e:new ce(Pe(e));return new ce(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||Dn.logWithError(`${e} is not an integer.`),e<=0&&Dn.logWithError(`${e} is not positive.`),gn.set({precision:e+1,rounding:Ba[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)||Dn.logWithError(`${e} is not an integer.`),e<0&&Dn.logWithError(`${e} is negative.`),Lo.DP=e,Lo.RM=xa[n]||1,new Lo(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Ka=te("Raydium_amount"),Ei=yn(Sa);function Ca(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")):Ka.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 qn(0),a=Oo.pow(new qn(t.decimals));if(o)r=Pe(n);else{let c=new qn(0),u=new qn(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[s,p]=Ca(n.toString(),t.decimals);c=Pe(s),u=Pe(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 Ei.DP=this.token.decimals,new Ei(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Ra}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Di}from"@solana/spl-token";var Un={chainId:101,address:Ra.default.toBase58(),programId:Di.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},dt={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Di.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 Fo}from"@solana/web3.js";import{PublicKey as Te,SystemProgram as Wi,SYSVAR_RENT_PUBKEY as La}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Oa}from"@solana/spl-token";function N({pubkey:l,isSigner:e=!1,isWritable:t=!0}){return{pubkey:l,isWritable:t,isSigner:e}}var Na=[N({pubkey:Oa,isWritable:!1}),N({pubkey:Wi.programId,isWritable:!1}),N({pubkey:La,isWritable:!1})];function No({publicKey:l,transformSol:e}){let t=Mo(l.toString());if(t instanceof Te)return e&&t.equals(Dt)?we:t;if(e&&t.toString()===Dt.toBase58())return we;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 Mo(l){try{return new Te(l)}catch{return l}}var It=new Te("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),pt=new Te("SysvarRent111111111111111111111111111111111"),rl=new Te("SysvarC1ock11111111111111111111111111111111"),Ot=new Te("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ma=new Te("Sysvar1nstructions1111111111111111111111111"),Fa=Wi.programId,al=new Te("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),sl=new Te("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ul=new Te("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),cl=new Te("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ll=new Te("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ml=new Te("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),dl=new Te("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),pl=new Te("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),fl=new Te("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),yl=new Te("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),bl=new Te("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),we=new Te("So11111111111111111111111111111111111111112"),Dt=Te.default;function nt(l){return No({publicKey:l,transformSol:!0})}var vo=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:i=!1,isToken2022:r=!1}){if(e===Dt.toBase58()||e instanceof Fo&&Dt.equals(e)){this.decimals=dt.decimals,this.symbol=dt.symbol,this.name=dt.name,this.mint=new Fo(dt.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?Fo.default:No({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},Se=vo;Se.WSOL=new vo(D(F({},dt),{mint:dt.address}));var _o=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},Gn=_o;Gn.SOL=new _o(Un);import va from"bn.js";var qi=new ce(new va(100)),ft=class extends ce{toSignificant(e=5,t,n){return this.mul(qi).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(qi).toFixed(e,t,n)}};var _a=te("Raydium_price"),Ze=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(Vo(n.decimals),Vo(o.decimals))}get raw(){return new ce(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Ze({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&_a.logWithError("mul token not equals");let n=super.mul(t);return new Ze({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 zS}from"lodash";import Dl from"axios";var Ui={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_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",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"},Va=D(F({},Ui),{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 cm=te("Raydium_Api");import{PublicKey as Rp,SystemProgram as Lp}from"@solana/web3.js";import{AccountLayout as vp,createAssociatedTokenAccountIdempotentInstruction as _p,TOKEN_PROGRAM_ID as Vp,TOKEN_2022_PROGRAM_ID as Ep}from"@solana/spl-token";import{PublicKey as Jt,sendAndConfirmTransaction as Go,SystemProgram as Ga,Transaction as wn,TransactionMessage as kn,VersionedTransaction as Tn}from"@solana/web3.js";import za from"axios";import{PublicKey as Eo,AddressLookupTableAccount as jt}from"@solana/web3.js";async function Do({connection:l,address:e,cluster:t="mainnet"}){let n=await rt(l,[...new Set(e.map(i=>i.toString()))].map(i=>new Eo(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:Qt[a.toString()]=c}return o}var Qt={},Wo=async l=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Qt[e])return Qt;let t=new Eo(e),n=await l.getAccountInfo(t);return n&&(Qt[e]=new jt({key:t,state:jt.deserialize(n.data)})),Qt},Zt={},qo=async l=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Zt[e])return Zt;let t=new Eo(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 Gi,Keypair as Xi,PublicKey as Ea,Transaction as Yi,TransactionMessage as Da,VersionedTransaction as Hi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Wa}from"@solana/spl-token";var zi=te("Raydium_txUtil"),Qi=1644;function zn(l){let e=[],t=[];return l.microLamports&&(e.push(Gi.setComputeUnitPrice({microLamports:l.microLamports})),t.push(j.SetComputeUnitPrice)),l.units&&(e.push(Gi.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 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 Uo(l,e){l.length<1&&zi.logWithError(`no instructions provided: ${l.toString()}`),e.length<1&&zi.logWithError(`no signers provided:, ${e.toString()}`);let t=new Yi;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...l);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Qi}catch{return!1}}function le(l,e){let[t,n]=Ea.findProgramAddressSync(l,e);return{publicKey:t,nonce:n}}function Pn({instructions:l,payer:e,signers:t}){return Uo(l,[e,...t])}function An({instructions:l,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=Xi.generate().publicKey.toString()}){let i=new Da({payerKey:e,recentBlockhash:n,instructions:l}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Hi(i).serialize()).toString("base64").length<Qi}catch{return!1}}var qa=l=>Buffer.isBuffer(l)?l:l instanceof Uint8Array?Buffer.from(l.buffer,l.byteOffset,l.byteLength):Buffer.from(l),Ua=l=>{let e=l.serialize({requireAllSignatures:!1,verifySignatures:!1});l instanceof Hi&&(e=qa(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 Yi&&(t.recentBlockhash||(t.recentBlockhash=Wa.toBase58()),t.feePayer||(t.feePayer=Xi.generate().publicKey)),e.push(Ua(t))}),console.log("simulate tx string:",e),e}var Yn=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 za.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}=zn(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Ga.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 Go(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 Go(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 K=!1,S=null,B=null,_=L=>{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=L.err?"error":"success"}d==null||d([...A]),L.err||k()};this.loopMultiTxStatus&&(S=setInterval(async()=>{var L;if(K){clearInterval(S);return}try{let V=await this.connection.getTransaction(T,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(K=!0,clearInterval(S),_({err:((L=V.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",T))}catch(V){K=!0,clearInterval(S),console.error("getTransaction timeout:",V,T)}},Yn)),B=this.connection.onSignature(T,L=>{if(K){this.connection.removeSignatureListener(B);return}K=!0,_(L)},"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 qo(this.connection):await Wo(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 Do({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 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),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 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,K=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),K({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)}},Yn)),T=this.connection.onSignature(x,S=>{if(A){this.connection.removeSignatureListener(T);return}A=!0,K(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?zn(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 K=await Go(this.connection,T,this.signers.find(S=>S.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});k.push(K)}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,K=[],S=async()=>{if(!k[T])return;T<b&&(K.push({txId:"",status:"success",signedTx:k[T]}),y==null||y([...K]),T++,S());let B=await this.connection.sendRawTransaction(k[T].serialize(),{skipPreflight:w});K.push({txId:B,status:"sent",signedTx:k[T]}),y==null||y([...K]),T++;let _=!1,L=null,V=null,E=q=>{L!==null&&clearInterval(L),V!==null&&this.connection.removeSignatureListener(V);let U=K.findIndex(z=>z.txId===B);if(U>-1){if(K[U].status==="error"||K[U].status==="success")return;K[U].status=q.err?"error":"success"}y==null||y([...K]),q.err||S()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(_){clearInterval(L);return}try{let U=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});U&&(_=!0,clearInterval(L),E({err:((q=U.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",B))}catch(U){_=!0,clearInterval(L),console.error("getTransaction timeout:",U,B)}},Yn)),V=this.connection.onSignature(B,q=>{if(_){this.connection.removeSignatureListener(V);return}_=!0,E(q)},"confirmed"),this.connection.getSignatureStatus(B)};return await S(),{txIds:K.map(B=>B.txId),signedTxs:k}}else{let T=[];for(let K=0;K<k.length;K+=1){let S=await this.connection.sendRawTransaction(k[K].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 qo(this.connection):await Wo(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 Do({connection:this.connection,address:s});for(let[A,k]of Object.entries(p))c[A]=k;let d=t?zn(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 K={};for(let S of[...new Set(u)])c[S]!==void 0&&(K[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(K=>K.isSigner).map(K=>K.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:K=0,recentBlockHash:S,skipPreflight:B=!0}=A||{};if(y.map(async(L,V)=>{b[V].length&&L.sign(b[V]),S&&(L.message.recentBlockhash=S)}),Wt(y),(_=this.owner)!=null&&_.isKeyPair){if(k){let L=0,V=[];for(let E of y){if(++L,L<=K){console.log("skip tx: ",L),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 L=>await this.connection.sendTransaction(L,{skipPreflight:B}))),signedTxs:y}}if(this.signAllTransactions){let L=await this.signAllTransactions(y.slice(K,y.length)),V=[...y.slice(0,K),...L];if(k){let E=0,q=[],U=async()=>{if(!V[E])return;if(E<K){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)}},Yn)),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 zo=(...l)=>l.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),je=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(zo(e))}logInfo(...e){this.logger.info(zo(e))}logAndCreateError(...e){let t=zo(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as fs,SystemProgram as ys}from"@solana/web3.js";import bs from"bn.js";import{createCloseAccountInstruction as gs,createInitializeAccountInstruction as Ps,createTransferInstruction as wp,TOKEN_PROGRAM_ID as In}from"@solana/spl-token";import{Keypair as ls,PublicKey as ms}from"@solana/web3.js";import rp from"bn.js";import{TOKEN_PROGRAM_ID as ds}from"@solana/spl-token";function Xa(l){return l instanceof Uint8Array||l!=null&&typeof l=="object"&&l.constructor.name==="Uint8Array"}function Xo(l,...e){if(!Xa(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 Yo(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 Zi(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 Zn=l=>new DataView(l.buffer,l.byteOffset,l.byteLength),yt=(l,e)=>l<<32-e|l>>>e;var $m=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Ya(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=Ya(l)),Xo(l),l}var Qn=class{clone(){return this._cloneInto()}},Jm={}.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 Ha(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 $i=(l,e,t)=>l&e^~l&t,Ji=(l,e,t)=>l&e^l&t^e&t,jn=class extends Qn{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=Zn(this.buffer)}update(e){Yo(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=Zn(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){Yo(this),Zi(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;Ha(n,o-8,BigInt(this.length*8),i),this.process(n,0);let a=Zn(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 Qa=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),Qo=class extends jn{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+$i(a,c,u)+Qa[p]+Mt[p]|0,y=(yt(n,2)^yt(n,13)^yt(n,22))+Ji(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 er=ji(()=>new Qo);import{PublicKey as ss}from"@solana/web3.js";import rr,{isBN as ar}from"bn.js";import{bits as Za,BitStructure as ud,blob as ja,Blob as cd,cstr as ld,f32 as md,f32be as dd,f64 as pd,f64be as fd,greedy as yd,Layout as $a,ns64 as bd,ns64be as gd,nu64 as Pd,nu64be as Ad,offset as Ja,s16 as wd,s16be as kd,s24 as Td,s24be as hd,s32 as es,s32be as Id,s40 as Bd,s40be as xd,s48 as Sd,s48be as Kd,s8 as Cd,seq as ts,struct as Rd,Structure as ns,u16 as os,u16be as Ld,u24 as Od,u24be as Nd,u32 as is,u32be as Md,u40 as Fd,u40be as vd,u48 as _d,u48be as Vd,u8 as rs,UInt as as,union as Ed,Union as Dd,unionLayoutDiscriminator as Wd,utf8 as qd}from"@solana/buffer-layout";var $n=$a,tr=ns;var Zo=as;var nr=rs,Ee=os;var Jn=is;var Me=es;var or=ts;var J=ja;var jo=Za,ir=Ja;var Ut=class extends $n{constructor(t,n,o){super(t,o);this.blob=J(t),this.signed=n}decode(t,n=0){let o=new rr(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 rr(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},eo=class extends $n{constructor(t){super(8,t);this._lower=jo(Jn(),!1),this._upper=jo(Jn(),!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 Zo(1,l)}function he(l){return new Zo(4,l)}function m(l){return new Ut(8,!1,l)}function Y(l){return new Ut(16,!1,l)}function sr(l){return new Ut(1,!0,l)}function en(l){return new Ut(8,!0,l)}function ur(l){return new Ut(16,!0,l)}var hn=class extends $n{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 ss(e),e=>e.toBuffer(),l)}function Ke(l){return new hn(nr(),us,cs,l)}function us(l){if(l===0)return!1;if(l===1)return!0;throw new Error("Invalid bool: "+l)}function cs(l){return l?1:0}function cr(l,e){let t=Jn("length"),n=O([t,W(l,ir(t,-t.span),"values")]);return new hn(n,({values:o})=>o,o=>({values:o}),e)}var $o=class extends tr{decode(e,t){return super.decode(e,t)}};function O(l,e,t){return new $o(l,e,t)}function W(l,e,t){let n,o=typeof e=="number"?e:ar(e)?e.toNumber():new Proxy(e,{get(i,r){if(!n){let a=Reflect.get(i,"count");n=ar(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 or(l,o,t)}var tn=O([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=ds,assignSeed:t}){let n=t?btoa(t).slice(0,32):ls.generate().publicKey.toBase58().slice(0,32);return{publicKey:ps(l,n,e),seed:n}}function ps(l,e,t){let n=Buffer.concat([l.toBuffer(),Buffer.from(e),t.toBuffer()]),o=er(n);return new ms(o)}function lr(l){let{mint:e,tokenAccount:t,owner:n,programId:o=In}=l;return Ps(t,e,n,o)}function on(l){let{tokenAccount:e,payer:t,multiSigners:n=[],owner:o,programId:i=In}=l;return gs(e,t,o,n,i)}async function to(l){let{connection:e,amount:t,commitment:n,payer:o,owner:i,skipCloseAccount:r}=l,a=await e.getMinimumBalanceForRentExemption(tn.span,n),c=Pe(t).add(new bs(a)),u=nn({fromPublicKey:o,programId:In});return{addresses:{newAccount:u.publicKey},signers:[],instructions:[ys.createAccountWithSeed({fromPubkey:o,basePubkey:o,seed:u.seed,newAccountPubkey:u.publicKey,lamports:c.toNumber(),space:tn.span,programId:In}),lr({mint:new fs(dt.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 OA,SystemProgram as NA}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as FA}from"@solana/spl-token";import{PublicKey as As}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ws}from"@solana/spl-token";function me(l,e,t){return le([l.toBuffer(),(t!=null?t:ws).toBuffer(),e.toBuffer()],new As("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as H}from"@solana/web3.js";var mr=new H("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),dr=new H("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),pr=new H("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Jo=new H("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Zp=new H("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ks=new H("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),ei=new H("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ti=new H("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),jp=new H("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),fr=new H("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ni=new H("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ts=new H("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),hs=new H("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),no=new H("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),$p=new H("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Is=new H("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),oo=new H("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Bs=new H("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Jp=new H("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),xs=new H("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ss=new H("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ks=new H("LanMV9sAd7wArD4vJFi2q