UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 108 kB
var Bi=Object.defineProperty,xi=Object.defineProperties;var Si=Object.getOwnPropertyDescriptors;var Bt=Object.getOwnPropertySymbols;var Jn=Object.prototype.hasOwnProperty,eo=Object.prototype.propertyIsEnumerable;var $n=(i,e,t)=>e in i?Bi(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,v=(i,e)=>{for(var t in e||(e={}))Jn.call(e,t)&&$n(i,t,e[t]);if(Bt)for(var t of Bt(e))eo.call(e,t)&&$n(i,t,e[t]);return i},q=(i,e)=>xi(i,Si(e));var xe=(i,e)=>{var t={};for(var o in i)Jn.call(i,o)&&e.indexOf(o)<0&&(t[o]=i[o]);if(i!=null&&Bt)for(var o of Bt(i))e.indexOf(o)<0&&eo.call(i,o)&&(t[o]=i[o]);return t};import{PublicKey as Z,SystemProgram as Ds}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as hi}from"@solana/spl-token";import{PublicKey as Ri}from"@solana/web3.js";import{get as to,set as Ki}from"lodash";var en=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(o=>typeof o=="object"?JSON.stringify(o):o).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}},no={},Ci={};function Q(i){let e=to(no,i);if(!e){let t=to(Ci,i);e=new en({name:i,logLevel:t}),Ki(no,i,e)}return e}import{MINT_SIZE as js,TOKEN_PROGRAM_ID as $s,getTransferFeeConfig as Js,unpackMint as eu}from"@solana/spl-token";var tn=Q("Raydium_accountInfo_util");async function Ae(i,e,t){let{batchRequest:o,commitment:r="confirmed",chunkCount:s=100}=v({batchRequest:!1},t),c=nn(e,s),u=new Array(c.length).fill([]);if(o){let b=c.map(m=>{let y=i._buildArgs([m.map(w=>w.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:y}}),l=nn(b,10);u=(await(await Promise.all(l.map(async m=>await i._rpcBatchRequest(m)))).flat()).map(m=>(m.error&&tn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${m.error.message}`),m.result.value.map(y=>{if(y){let{data:w,executable:P,lamports:A,owner:k,rentEpoch:x}=y;return w.length!==2&&w[1]!=="base64"&&tn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:P,lamports:A,owner:new Ri(k),rentEpoch:x}}return null})))}else try{u=await Promise.all(c.map(b=>i.getMultipleAccountsInfo(b,r)))}catch(b){b instanceof Error&&tn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.message}`)}return u.flat()}import Ge from"bn.js";import kR from"decimal.js";import Vi from"big.js";import Kt from"bn.js";import Li from"toformat";var Oi=Li,rt=Oi;import St from"big.js";import Mi from"bn.js";import Fi from"decimal.js-light";import at from"bn.js";var oo=9007199254740991;function D(i){let e=Q("Raydium_parseBigNumberish");if(i instanceof at)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new at(i);e.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&e.logWithError(`BigNumberish number underflow: ${i}`),(i>=oo||i<=-oo)&&e.logWithError(`BigNumberish number overflow: ${i}`),new at(String(i))):typeof i=="bigint"?new at(i.toString()):(e.error(`invalid BigNumberish value: ${i}`),new at(0))}var xt=Q("module/fraction"),on=rt(St),st=rt(Fi),vi={[0]:st.ROUND_DOWN,[1]:st.ROUND_HALF_UP,[2]:st.ROUND_UP},_i={[0]:St.roundDown,[1]:St.roundHalfUp,[2]:St.roundUp},j=class{constructor(e,t=new Mi(1)){this.numerator=D(e),this.denominator=D(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new j(this.denominator,this.numerator)}add(e){let t=e instanceof j?e:new j(D(e));return this.denominator.eq(t.denominator)?new j(this.numerator.add(t.numerator),this.denominator):new j(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof j?e:new j(D(e));return this.denominator.eq(t.denominator)?new j(this.numerator.sub(t.numerator),this.denominator):new j(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof j?e:new j(D(e));return new j(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof j?e:new j(D(e));return new j(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},o=1){Number.isInteger(e)||xt.logWithError(`${e} is not an integer.`),e<=0&&xt.logWithError(`${e} is not positive.`),st.set({precision:e+1,rounding:vi[o]});let r=new st(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},o=1){return Number.isInteger(e)||xt.logWithError(`${e} is not an integer.`),e<0&&xt.logWithError(`${e} is negative.`),on.DP=e,on.RM=_i[o]||1,new on(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Ei=Q("Raydium_amount"),io=rt(Vi);function Di(i,e){let t="0",o="0";if(i.includes(".")){let r=i.split(".");r.length===2?([t,o]=r,o=o.padEnd(e,"0")):Ei.logWithError(`invalid number string, num: ${i}`)}else t=i;return[t,o.slice(0,e)||o]}var pe=class extends j{constructor(t,o,r=!0,s){let c=new Kt(0),u=rn.pow(new Kt(t.decimals));if(r)c=D(o);else{let b=new Kt(0),l=new Kt(0);if(typeof o=="string"||typeof o=="number"||typeof o=="bigint"){let[d,m]=Di(o.toString(),t.decimals);b=D(d),l=D(m)}b=b.mul(u),c=b.add(l)}super(c,u);this.logger=Q(s||"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 pe(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new pe(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,o,r=0){return super.toSignificant(t,o,r)}toFixed(t=this.token.decimals,o,r=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,o,r)}toExact(t={groupSeparator:""}){return io.DP=this.token.decimals,new io(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Wi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ro}from"@solana/spl-token";var Ct={chainId:101,address:Wi.default.toBase58(),programId:ro.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},se={chainId:101,address:"So11111111111111111111111111111111111111112",programId:ro.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 ln}from"@solana/web3.js";import{PublicKey as J,SystemProgram as ao,SYSVAR_RENT_PUBKEY as qi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ui}from"@solana/spl-token";function g({pubkey:i,isSigner:e=!1,isWritable:t=!0}){return{pubkey:i,isWritable:t,isSigner:e}}var an=[g({pubkey:Ui,isWritable:!1}),g({pubkey:ao.programId,isWritable:!1}),g({pubkey:qi,isWritable:!1})];function sn({publicKey:i,transformSol:e}){let t=un(i.toString());if(t instanceof J)return e&&t.equals(oe)?le:t;if(e&&t.toString()===oe.toBase58())return le;if(typeof t=="string"){if(t===J.default.toBase58())return J.default;try{return new J(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function un(i){try{return new J(i)}catch{return i}}var cn=new J("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ye=new J("SysvarRent111111111111111111111111111111111"),Gi=new J("SysvarC1ock11111111111111111111111111111111"),Rt=new J("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),zi=new J("Sysvar1nstructions1111111111111111111111111"),so=ao.programId,Ou=new J("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Nu=new J("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Mu=new J("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Fu=new J("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),vu=new J("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),_u=new J("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Vu=new J("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Eu=new J("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Du=new J("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Wu=new J("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),qu=new J("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),le=new J("So11111111111111111111111111111111111111112"),oe=J.default;function Oe(i){return sn({publicKey:i,transformSol:!0})}var mn=class{constructor({mint:e,decimals:t,symbol:o,name:r,skipMint:s=!1,isToken2022:c=!1}){if(e===oe.toBase58()||e instanceof ln&&oe.equals(e)){this.decimals=se.decimals,this.symbol=se.symbol,this.name=se.name,this.mint=new ln(se.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=o||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=s?ln.default:sn({publicKey:e}),this.isToken2022=c}equals(e){return this===e?!0:this.mint.equals(e.mint)}},re=mn;re.WSOL=new mn(q(v({},se),{mint:se.address}));var dn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:o="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=o}equals(e){return this===e}},Lt=dn;Lt.SOL=new dn(Ct);import Yi from"bn.js";var uo=new j(new Yi(100)),Ke=class extends j{toSignificant(e=5,t,o){return this.mul(uo).toSignificant(e,t,o)}toFixed(e=2,t,o){return this.mul(uo).toFixed(e,t,o)}};var Xi=Q("Raydium_price"),we=class extends j{constructor(t){let{baseToken:o,quoteToken:r,numerator:s,denominator:c}=t;super(s,c);this.baseToken=o,this.quoteToken=r,this.scalar=new j(pn(o.decimals),pn(r.decimals))}get raw(){return new j(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new we({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Xi.logWithError("mul token not equals");let o=super.mul(t);return new we({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:o.denominator,numerator:o.numerator})}toSignificant(t=this.quoteToken.decimals,o,r){return this.adjusted.toSignificant(t,o,r)}toFixed(t=this.quoteToken.decimals,o,r){return this.adjusted.toFixed(t,o,r)}};import{merge as kC}from"lodash";import dc from"axios";var co={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"},Qi=q(v({},co),{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 Fc=Q("Raydium_Api");import{PublicKey as td,SystemProgram as nd}from"@solana/web3.js";import{AccountLayout as sd,createAssociatedTokenAccountIdempotentInstruction as ud,TOKEN_PROGRAM_ID as cd,TOKEN_2022_PROGRAM_ID as ld}from"@solana/spl-token";import{PublicKey as je,sendAndConfirmTransaction as An,SystemProgram as er,Transaction as lt,TransactionMessage as mt,VersionedTransaction as dt}from"@solana/web3.js";import tr from"axios";import{PublicKey as fn,AddressLookupTableAccount as He}from"@solana/web3.js";async function yn({connection:i,address:e,cluster:t="mainnet"}){let o=await Ae(i,[...new Set(e.map(s=>s.toString()))].map(s=>new fn(s))),r={};for(let s=0;s<e.length;s++){let c=o[s],u=e[s];if(!c)continue;let b=new He({key:u,state:He.deserialize(c.data)});r[u.toString()]=b,t==="devnet"?Qe[u.toString()]=b:Xe[u.toString()]=b}return r}var Xe={},bn=async i=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Xe[e])return Xe;let t=new fn(e),o=await i.getAccountInfo(t);return o&&(Xe[e]=new He({key:t,state:He.deserialize(o.data)})),Xe},Qe={},gn=async i=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Qe[e])return Qe;let t=new fn(e),o=await i.getAccountInfo(t);return o&&(Qe[e]=new He({key:t,state:He.deserialize(o.data)})),Qe};var U={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 lo,Keypair as po,PublicKey as Hi,Transaction as fo,TransactionMessage as Zi,VersionedTransaction as yo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ji}from"@solana/spl-token";var mo=Q("Raydium_txUtil"),bo=1644;function Ot(i){let e=[],t=[];return i.microLamports&&(e.push(lo.setComputeUnitPrice({microLamports:i.microLamports})),t.push(U.SetComputeUnitPrice)),i.units&&(e.push(lo.setComputeUnitLimit({units:i.units})),t.push(U.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Ze(i,e){var o,r;let t=e!=null?e:"confirmed";return(r=await((o=i.getLatestBlockhash)==null?void 0:o.call(i,{commitment:t})))==null?void 0:r.blockhash}async function Nt(i,e){return i.getSignatureStatuses([e]),new Promise((t,o)=>{let r=setTimeout(o,6e4);i.onSignature(e,s=>{if(clearTimeout(r),!s.err){t("");return}o(Object.assign(s.err,{txId:e}))},"confirmed")})}function Pn(i,e){i.length<1&&mo.logWithError(`no instructions provided: ${i.toString()}`),e.length<1&&mo.logWithError(`no signers provided:, ${e.toString()}`);let t=new fo;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...i);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<bo}catch{return!1}}function me(i,e){let[t,o]=Hi.findProgramAddressSync(i,e);return{publicKey:t,nonce:o}}function ut({instructions:i,payer:e,signers:t}){return Pn(i,[e,...t])}function ct({instructions:i,payer:e,lookupTableAddressAccount:t,recentBlockhash:o=po.generate().publicKey.toString()}){let s=new Zi({payerKey:e,recentBlockhash:o,instructions:i}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new yo(s).serialize()).toString("base64").length<bo}catch{return!1}}var $i=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Ji=i=>{let e=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof yo&&(e=$i(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ee(i){let e=[];return i.forEach(t=>{t instanceof fo&&(t.recentBlockhash||(t.recentBlockhash=ji.toBase58()),t.feePayer||(t.feePayer=po.generate().publicKey)),e.push(Ji(t))}),console.log("simulate tx string:",e),e}var Mt=2e3,Ft=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 o;let e=(await tr.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(o=e==null?void 0:e[15])!=null?o:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:o}=Ot(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(er.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new je(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(U.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let o=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(o))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:o=[],instructionTypes:r=[],endInstructionTypes:s=[],lookupTableAddress:c=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...o),this.instructionTypes.push(...r),this.endInstructionTypes.push(...s),this.lookupTableAddress.push(...c.filter(u=>u!==je.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:o}){return e===0?await this.buildV0(q(v({},t||{}),{lookupTableAddress:o})):this.build(t)}build(e){var o;let t=new lt;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((o=this.owner)==null?void 0:o.signer)&&!this.signers.some(r=>r.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 r=>{var d;let{recentBlockHash:s,skipPreflight:c=!0,sendAndConfirm:u,notSendToRpc:b}=r||{},l=s!=null?s:await Ze(this.connection,this.blockhashCommitment);if(t.recentBlockhash=l,this.signers.length&&t.sign(...this.signers),Ee([t]),(d=this.owner)!=null&&d.isKeyPair)return{txId:u?await An(this.connection,t,this.signers.find(y=>y.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:c}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:c}),signedTx:t};if(this.signAllTransactions){let m=await this.signAllTransactions([t]);if(this.signers.length)for(let y of m)try{y.sign(...this.signers)}catch{}return{txId:b?"":await this.connection.sendRawTransaction(m[0].serialize(),{skipPreflight:c}),signedTx:m[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var l;let{extraPreBuildData:t=[],extInfo:o}=e,{transaction:r}=this.build(o),s=t.filter(d=>d.transaction.instructions.length>0),c=[r,...s.map(d=>d.transaction)],u=[this.signers,...s.map(d=>d.signers)],b=[...this.instructionTypes,...s.map(d=>d.instructionTypes).flat()];return(l=this.owner)!=null&&l.signer&&u.forEach(d=>{d.some(m=>m.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:c,signers:u,instructionTypes:b,execute:async d=>{var x;let{sequentially:m,onTxUpdate:y,skipTxCount:w=0,recentBlockHash:P,skipPreflight:A=!0}=d||{},k=P!=null?P:await Ze(this.connection,this.blockhashCommitment);if((x=this.owner)!=null&&x.isKeyPair){if(m){let S=[],N=0;for(let O of c){if(++N,N<=w)continue;let I=await An(this.connection,O,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});S.push(I)}return{txIds:S,signedTxs:c}}return{txIds:await await Promise.all(c.map(async S=>(S.recentBlockhash=k,await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:A})))),signedTxs:c}}if(this.signAllTransactions){let S=c.map((O,I)=>(O.recentBlockhash=k,u[I].length&&O.sign(...u[I]),O));Ee(S);let N=await this.signAllTransactions(S);if(m){let O=0,I=[],K=async()=>{if(!N[O])return;let C=await this.connection.sendRawTransaction(N[O].serialize(),{skipPreflight:A});I.push({txId:C,status:"sent",signedTx:N[O]}),y==null||y([...I]),O++;let M=!1,R=null,L=null,X=_=>{R!==null&&clearInterval(R),L!==null&&this.connection.removeSignatureListener(L);let E=I.findIndex(V=>V.txId===C);if(E>-1){if(I[E].status==="error"||I[E].status==="success")return;I[E].status=_.err?"error":"success"}y==null||y([...I]),_.err||K()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var _;if(M){clearInterval(R);return}try{let E=await this.connection.getTransaction(C,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(M=!0,clearInterval(R),X({err:((_=E.meta)==null?void 0:_.err)||null}),console.log("tx status from getTransaction:",C))}catch(E){M=!0,clearInterval(R),console.error("getTransaction timeout:",E,C)}},Mt)),L=this.connection.onSignature(C,_=>{if(M){this.connection.removeSignatureListener(L);return}M=!0,X(_)},"confirmed"),this.connection.getSignatureStatus(C)};return await K(),{txIds:I.map(C=>C.txId),signedTxs:N}}else{let O=[];for(let I=0;I<N.length;I+=1){let K=await this.connection.sendRawTransaction(N[I].serialize(),{skipPreflight:A});O.push(K)}return{txIds:O,signedTxs:N}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:o}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:o||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:o})}async buildV0(e){var A;let P=e||{},{lookupTableCache:t={},lookupTableAddress:o=[],forerunCreate:r,recentBlockhash:s}=P,c=xe(P,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),u=v(v({},this.cluster==="devnet"?await gn(this.connection):await bn(this.connection)),t),b=Array.from(new Set([...o,...this.lookupTableAddress])),l=[];for(let k of b)u[k]===void 0&&l.push(new je(k));let d=await yn({connection:this.connection,address:l});for(let[k,x]of Object.entries(d))u[k]=x;let m=r?je.default.toBase58():s!=null?s:await Ze(this.connection,this.blockhashCommitment),y=new mt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(u));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(k=>k.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let w=new dt(y);return w.sign(this.signers),{builder:this,transaction:w,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async k=>{var O;let{skipPreflight:x=!0,sendAndConfirm:S,notSendToRpc:N}=k||{};if(Ee([w]),(O=this.owner)!=null&&O.isKeyPair){let I=await this.connection.sendTransaction(w,{skipPreflight:x});return S&&await Nt(this.connection,I),{txId:I,signedTx:w}}if(this.signAllTransactions){let I=await this.signAllTransactions([w]);if(this.signers.length)for(let K of I)try{K.sign(this.signers)}catch{}return{txId:N?"":await this.connection.sendTransaction(I[0],{skipPreflight:x}),signedTx:I[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:c||{}}}async buildV0MultiTx(e){var l;let{extraPreBuildData:t=[],buildProps:o}=e,{transaction:r}=await this.buildV0(o),s=t.filter(d=>d.builder.instructions.length>0),c=[r,...s.map(d=>d.transaction)],u=[this.signers,...s.map(d=>d.signers)],b=[...this.instructionTypes,...s.map(d=>d.instructionTypes).flat()];return(l=this.owner)!=null&&l.signer&&u.forEach(d=>{d.some(m=>m.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),c.forEach(async(d,m)=>{d.sign(u[m])}),{builder:this,transactions:c,signers:u,instructionTypes:b,buildProps:o,execute:async d=>{var A;let{sequentially:m,onTxUpdate:y,recentBlockHash:w,skipPreflight:P=!0}=d||{};if(w&&c.forEach(k=>k.message.recentBlockhash=w),Ee(c),(A=this.owner)!=null&&A.isKeyPair){if(m){let k=[];for(let x of c){let S=await this.connection.sendTransaction(x,{skipPreflight:P});await Nt(this.connection,S),k.push(S)}return{txIds:k,signedTxs:c}}return{txIds:await Promise.all(c.map(async k=>await this.connection.sendTransaction(k,{skipPreflight:P}))),signedTxs:c}}if(this.signAllTransactions){let k=await this.signAllTransactions(c);if(m){let x=0,S=[],N=async()=>{if(!k[x])return;let O=await this.connection.sendTransaction(k[x],{skipPreflight:P});S.push({txId:O,status:"sent",signedTx:k[x]}),y==null||y([...S]),x++;let I=!1,K=null,C=null,M=R=>{K!==null&&clearInterval(K),C!==null&&this.connection.removeSignatureListener(C);let L=S.findIndex(X=>X.txId===O);if(L>-1){if(S[L].status==="error"||S[L].status==="success")return;S[L].status=R.err?"error":"success"}y==null||y([...S]),R.err||N()};this.loopMultiTxStatus&&(K=setInterval(async()=>{var R;if(I){clearInterval(K);return}try{let L=await this.connection.getTransaction(O,{commitment:"confirmed",maxSupportedTransactionVersion:0});L&&(I=!0,clearInterval(K),M({err:((R=L.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",O))}catch(L){I=!0,clearInterval(K),console.error("getTransaction timeout:",L,O)}},Mt)),C=this.connection.onSignature(O,R=>{if(I){this.connection.removeSignatureListener(C);return}I=!0,M(R)},"confirmed"),this.connection.getSignatureStatus(O)};return N(),{txIds:[],signedTxs:k}}else{let x=[];for(let S=0;S<k.length;S+=1){let N=await this.connection.sendTransaction(k[S],{skipPreflight:P});x.push(N)}return{txIds:x,signedTxs:k}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuild(e){var y;let m=e||{},{splitIns:t=[],computeBudgetConfig:o}=m,r=xe(m,["splitIns","computeBudgetConfig"]),s=o?Ot(o):{instructions:[],instructionTypes:[]},c=this.signers.reduce((w,P)=>q(v({},w),{[P.publicKey.toBase58()]:P}),{}),u=[],b=[],l=[],d=0;if(this.allInstructions.forEach(w=>{let P=[...l,w],A=o?[...s.instructions,...P]:P,x=[...new Set(P.map(S=>S.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat()).values()].map(S=>new je(S));if(w!==t[d]&&l.length<12&&(ut({instructions:A,payer:this.feePayer,signers:x})||ut({instructions:P,payer:this.feePayer,signers:x})))l.push(w);else{if(l.length===0)throw Error("item ins too big");d+=w===t[d]?1:0,ut({instructions:o?[...s.instructions,...l]:[...l],payer:this.feePayer,signers:x})?u.push(new lt().add(...s.instructions,...l)):u.push(new lt().add(...l)),b.push(Array.from(new Set(l.map(S=>S.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat())).map(S=>c[S]).filter(S=>S!==void 0)),l=[w]}}),l.length>0){let P=[...new Set(l.map(A=>A.keys.filter(k=>k.isSigner).map(k=>k.pubkey.toString())).flat()).values()].map(A=>c[A]).filter(A=>A!==void 0);ut({instructions:o?[...s.instructions,...l]:[...l],payer:this.feePayer,signers:P.map(A=>A.publicKey)})?u.push(new lt().add(...s.instructions,...l)):u.push(new lt().add(...l)),b.push(P)}return u.forEach(w=>w.feePayer=this.feePayer),(y=this.owner)!=null&&y.signer&&b.forEach(w=>{w.some(P=>P.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:u,signers:b,instructionTypes:this.instructionTypes,execute:async w=>{var O;let{sequentially:P,onTxUpdate:A,skipTxCount:k=0,recentBlockHash:x,skipPreflight:S=!0}=w||{},N=x!=null?x:await Ze(this.connection,this.blockhashCommitment);if(u.forEach(async(I,K)=>{I.recentBlockhash=N,b[K].length&&I.sign(...b[K])}),Ee(u),(O=this.owner)!=null&&O.isKeyPair){if(P){let I=0,K=[];for(let C of u){if(++I,I<=k){K.push("tx skipped");continue}let M=await An(this.connection,C,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});K.push(M)}return{txIds:K,signedTxs:u}}return{txIds:await Promise.all(u.map(async I=>await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:S}))),signedTxs:u}}if(this.signAllTransactions){let I=await this.signAllTransactions(u.slice(k,u.length)),K=[...u.slice(0,k),...I];if(P){let C=0,M=[],R=async()=>{if(!K[C])return;C<k&&(M.push({txId:"",status:"success",signedTx:K[C]}),A==null||A([...M]),C++,R());let L=await this.connection.sendRawTransaction(K[C].serialize(),{skipPreflight:S});M.push({txId:L,status:"sent",signedTx:K[C]}),A==null||A([...M]),C++;let X=!1,_=null,E=null,V=Y=>{_!==null&&clearInterval(_),E!==null&&this.connection.removeSignatureListener(E);let $=M.findIndex(Pe=>Pe.txId===L);if($>-1){if(M[$].status==="error"||M[$].status==="success")return;M[$].status=Y.err?"error":"success"}A==null||A([...M]),Y.err||R()};this.loopMultiTxStatus&&(_=setInterval(async()=>{var Y;if(X){clearInterval(_);return}try{let $=await this.connection.getTransaction(L,{commitment:"confirmed",maxSupportedTransactionVersion:0});$&&(X=!0,clearInterval(_),V({err:((Y=$.meta)==null?void 0:Y.err)||null}),console.log("tx status from getTransaction:",L))}catch($){X=!0,clearInterval(_),console.error("getTransaction timeout:",$,L)}},Mt)),E=this.connection.onSignature(L,Y=>{if(X){this.connection.removeSignatureListener(E);return}X=!0,V(Y)},"confirmed"),this.connection.getSignatureStatus(L)};return await R(),{txIds:M.map(L=>L.txId),signedTxs:K}}else{let C=[];for(let M=0;M<K.length;M+=1){let R=await this.connection.sendRawTransaction(K[M].serialize(),{skipPreflight:S});C.push(R)}return{txIds:C,signedTxs:K}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var O;let N=e||{},{computeBudgetConfig:t,splitIns:o=[],lookupTableCache:r={},lookupTableAddress:s=[],insCountLimit:c=12}=N,u=xe(N,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=v(v({},this.cluster==="devnet"?await gn(this.connection):await bn(this.connection)),r),l=Array.from(new Set([...this.lookupTableAddress,...s])),d=[];for(let I of l)b[I]===void 0&&d.push(new je(I));let m=await yn({connection:this.connection,address:d});for(let[I,K]of Object.entries(m))b[I]=K;let y=t?Ot(t):{instructions:[],instructionTypes:[]},w=await Ze(this.connection,this.blockhashCommitment),P=this.signers.reduce((I,K)=>q(v({},I),{[K.publicKey.toBase58()]:K}),{}),A=[],k=[],x=[],S=0;if(this.allInstructions.forEach(I=>{let K=[...x,I],C=t?[...y.instructions,...K]:K;if(I!==o[S]&&x.length<c&&(ct({instructions:C,payer:this.feePayer,lookupTableAddressAccount:b})||ct({instructions:K,payer:this.feePayer,lookupTableAddressAccount:b})))x.push(I);else{if(x.length===0)throw Error("item ins too big");S+=I===o[S]?1:0;let M={};for(let R of[...new Set(l)])b[R]!==void 0&&(M[R]=b[R]);if(t&&ct({instructions:[...y.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:w})){let R=new mt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...y.instructions,...x]}).compileToV0Message(Object.values(b));A.push(new dt(R))}else{let R=new mt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...x]}).compileToV0Message(Object.values(b));A.push(new dt(R))}k.push(Array.from(new Set(x.map(R=>R.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat())).map(R=>P[R]).filter(R=>R!==void 0)),x=[I]}}),x.length>0){let K=[...new Set(x.map(C=>C.keys.filter(M=>M.isSigner).map(M=>M.pubkey.toString())).flat()).values()].map(C=>P[C]).filter(C=>C!==void 0);if(t&&ct({instructions:[...y.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:w})){let C=new mt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...y.instructions,...x]}).compileToV0Message(Object.values(b));A.push(new dt(C))}else{let C=new mt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...x]}).compileToV0Message(Object.values(b));A.push(new dt(C))}k.push(K)}return(O=this.owner)!=null&&O.signer&&k.forEach(I=>{I.some(K=>K.publicKey.equals(this.owner.publicKey))||I.push(this.owner.signer)}),A.forEach((I,K)=>{I.sign(k[K])}),{builder:this,transactions:A,buildProps:e,signers:k,instructionTypes:this.instructionTypes,execute:async I=>{var X;let{sequentially:K,onTxUpdate:C,skipTxCount:M=0,recentBlockHash:R,skipPreflight:L=!0}=I||{};if(A.map(async(_,E)=>{k[E].length&&_.sign(k[E]),R&&(_.message.recentBlockhash=R)}),Ee(A),(X=this.owner)!=null&&X.isKeyPair){if(K){let _=0,E=[];for(let V of A){if(++_,_<=M){console.log("skip tx: ",_),E.push("tx skipped");continue}let Y=await this.connection.sendTransaction(V,{skipPreflight:L});await Nt(this.connection,Y),E.push(Y)}return{txIds:E,signedTxs:A}}return{txIds:await Promise.all(A.map(async _=>await this.connection.sendTransaction(_,{skipPreflight:L}))),signedTxs:A}}if(this.signAllTransactions){let _=await this.signAllTransactions(A.slice(M,A.length)),E=[...A.slice(0,M),..._];if(K){let V=0,Y=[],$=async()=>{if(!E[V])return;if(V<M){Y.push({txId:"",status:"success",signedTx:E[V]}),C==null||C([...Y]),V++,$();return}let Pe=await this.connection.sendTransaction(E[V],{skipPreflight:L});Y.push({txId:Pe,status:"sent",signedTx:E[V]}),C==null||C([...Y]),V++;let Le=!1,ze=null,It=null,jn=Ve=>{ze!==null&&clearInterval(ze),It!==null&&this.connection.removeSignatureListener(It);let Se=Y.findIndex(Ii=>Ii.txId===Pe);if(Se>-1){if(Y[Se].status==="error"||Y[Se].status==="success")return;Y[Se].status=Ve.err?"error":"success"}C==null||C([...Y]),Ve.err||$()};this.loopMultiTxStatus&&(ze=setInterval(async()=>{var Ve;if(Le){clearInterval(ze);return}try{let Se=await this.connection.getTransaction(Pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});Se&&(Le=!0,clearInterval(ze),jn({err:((Ve=Se.meta)==null?void 0:Ve.err)||null}),console.log("tx status from getTransaction:",Pe))}catch(Se){Le=!0,clearInterval(ze),console.error("getTransaction timeout:",Se,Pe)}},Mt)),It=this.connection.onSignature(Pe,Ve=>{if(Le){this.connection.removeSignatureListener(It);return}Le=!0,jn(Ve)},"confirmed"),this.connection.getSignatureStatus(Pe)};return $(),{txIds:[],signedTxs:E}}else{let V=[];for(let Y=0;Y<E.length;Y+=1){let $=await this.connection.sendTransaction(E[Y],{skipPreflight:L});V.push($)}return{txIds:V,signedTxs:E}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}};var wn=(...i)=>i.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),ue=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=Q(t)}createTxBuilder(e){return this.scope.checkOwner(),new Ft({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(wn(e))}logInfo(...e){this.logger.info(wn(e))}logAndCreateError(...e){let t=wn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Br,SystemProgram as xr}from"@solana/web3.js";import Sr from"bn.js";import{createCloseAccountInstruction as Kr,createInitializeAccountInstruction as Cr,createTransferInstruction as zm,TOKEN_PROGRAM_ID as ft}from"@solana/spl-token";import{Keypair as kr,PublicKey as Tr}from"@solana/web3.js";import Rm from"bn.js";import{TOKEN_PROGRAM_ID as hr}from"@solana/spl-token";function nr(i){return i instanceof Uint8Array||i!=null&&typeof i=="object"&&i.constructor.name==="Uint8Array"}function kn(i,...e){if(!nr(i))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(i.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${i.length}`)}function Tn(i,e=!0){if(i.destroyed)throw new Error("Hash instance has been destroyed");if(e&&i.finished)throw new Error("Hash#digest() has already been called")}function go(i,e){kn(i);let t=e.outputLen;if(i.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var _t=i=>new DataView(i.buffer,i.byteOffset,i.byteLength),ke=(i,e)=>i<<32-e|i>>>e;var Il=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function or(i){if(typeof i!="string")throw new Error(`utf8ToBytes expected string, got ${typeof i}`);return new Uint8Array(new TextEncoder().encode(i))}function hn(i){return typeof i=="string"&&(i=or(i)),kn(i),i}var vt=class{clone(){return this._cloneInto()}},Bl={}.toString;function Po(i){let e=o=>i().update(hn(o)).digest(),t=i();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>i(),e}function ir(i,e,t,o){if(typeof i.setBigUint64=="function")return i.setBigUint64(e,t,o);let r=BigInt(32),s=BigInt(4294967295),c=Number(t>>r&s),u=Number(t&s),b=o?4:0,l=o?0:4;i.setUint32(e+b,c,o),i.setUint32(e+l,u,o)}var Ao=(i,e,t)=>i&e^~i&t,wo=(i,e,t)=>i&e^i&t^e&t,Vt=class extends vt{constructor(e,t,o,r){super(),this.blockLen=e,this.outputLen=t,this.padOffset=o,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=_t(this.buffer)}update(e){Tn(this);let{view:t,buffer:o,blockLen:r}=this;e=hn(e);let s=e.length;for(let c=0;c<s;){let u=Math.min(r-this.pos,s-c);if(u===r){let b=_t(e);for(;r<=s-c;c+=r)this.process(b,c);continue}o.set(e.subarray(c,c+u),this.pos),this.pos+=u,c+=u,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Tn(this),go(e,this),this.finished=!0;let{buffer:t,view:o,blockLen:r,isLE:s}=this,{pos:c}=this;t[c++]=128,this.buffer.subarray(c).fill(0),this.padOffset>r-c&&(this.process(o,0),c=0);for(let m=c;m<r;m++)t[m]=0;ir(o,r-8,BigInt(this.length*8),s),this.process(o,0);let u=_t(e),b=this.outputLen;if(b%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let l=b/4,d=this.get();if(l>d.length)throw new Error("_sha2: outputLen bigger than state");for(let m=0;m<l;m++)u.setUint32(4*m,d[m],s)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let o=e.slice(0,t);return this.destroy(),o}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:o,length:r,finished:s,destroyed:c,pos:u}=this;return e.length=r,e.pos=u,e.finished=s,e.destroyed=c,r%t&&e.buffer.set(o),e}};var rr=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]),Ne=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Me=new Uint32Array(64),In=class extends Vt{constructor(){super(64,32,8,!1),this.A=Ne[0]|0,this.B=Ne[1]|0,this.C=Ne[2]|0,this.D=Ne[3]|0,this.E=Ne[4]|0,this.F=Ne[5]|0,this.G=Ne[6]|0,this.H=Ne[7]|0}get(){let{A:e,B:t,C:o,D:r,E:s,F:c,G:u,H:b}=this;return[e,t,o,r,s,c,u,b]}set(e,t,o,r,s,c,u,b){this.A=e|0,this.B=t|0,this.C=o|0,this.D=r|0,this.E=s|0,this.F=c|0,this.G=u|0,this.H=b|0}process(e,t){for(let m=0;m<16;m++,t+=4)Me[m]=e.getUint32(t,!1);for(let m=16;m<64;m++){let y=Me[m-15],w=Me[m-2],P=ke(y,7)^ke(y,18)^y>>>3,A=ke(w,17)^ke(w,19)^w>>>10;Me[m]=A+Me[m-7]+P+Me[m-16]|0}let{A:o,B:r,C:s,D:c,E:u,F:b,G:l,H:d}=this;for(let m=0;m<64;m++){let y=ke(u,6)^ke(u,11)^ke(u,25),w=d+y+Ao(u,b,l)+rr[m]+Me[m]|0,A=(ke(o,2)^ke(o,13)^ke(o,22))+wo(o,r,s)|0;d=l,l=b,b=u,u=c+w|0,c=s,s=r,r=o,o=w+A|0}o=o+this.A|0,r=r+this.B|0,s=s+this.C|0,c=c+this.D|0,u=u+this.E|0,b=b+this.F|0,l=l+this.G|0,d=d+this.H|0,this.set(o,r,s,c,u,b,l,d)}roundClean(){Me.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var ko=Po(()=>new In);import{PublicKey as Pr}from"@solana/web3.js";import So,{isBN as Ko}from"bn.js";import{bits as ar,BitStructure as Ml,blob as sr,Blob as Fl,cstr as vl,f32 as _l,f32be as Vl,f64 as El,f64be as Dl,greedy as Wl,Layout as ur,ns64 as ql,ns64be as Ul,nu64 as cr,nu64be as Gl,offset as lr,s16 as zl,s16be as Yl,s24 as Xl,s24be as Ql,s32 as mr,s32be as Hl,s40 as Zl,s40be as jl,s48 as $l,s48be as Jl,s8 as em,seq as dr,struct as tm,Structure as pr,u16 as fr,u16be as nm,u24 as om,u24be as im,u32 as yr,u32be as rm,u40 as am,u40be as sm,u48 as um,u48be as cm,u8 as br,UInt as gr,union as lm,Union as mm,unionLayoutDiscriminator as dm,utf8 as pm}from"@solana/buffer-layout";var Et=ur,To=pr;var Bn=gr;var ho=br,ie=fr;var Dt=yr;var Io=cr;var Te=mr;var Bo=dr;var G=sr;var xn=ar,xo=lr;var We=class extends Et{constructor(t,o,r){super(t,r);this.blob=G(t),this.signed=o}decode(t,o=0){let r=new So(this.blob.decode(t,o),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(t,o,r=0){return typeof t=="number"&&(t=new So(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),o,r)}},Wt=class extends Et{constructor(t){super(8,t);this._lower=xn(Dt(),!1),this._upper=xn(Dt(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,o=0){let r=this._lower.decode(t,o),s=this._upper.decode(t,o+this._lower.span);return v(v({},r),s)}encode(t,o,r=0){return this._lower.encode(t,o,r)+this._upper.encode(t,o,r+this._lower.span)}};function T(i){return new Bn(1,i)}function ee(i){return new Bn(4,i)}function n(i){return new We(8,!1,i)}function W(i){return new We(16,!1,i)}function Co(i){return new We(1,!0,i)}function $e(i){return new We(8,!0,i)}function Ro(i){return new We(16,!0,i)}var pt=class extends Et{constructor(t,o,r,s){super(t.span,s);this.layout=t,this.decoder=o,this.encoder=r}decode(t,o){return this.decoder(this.layout.decode(t,o))}encode(t,o,r){return this.layout.encode(this.encoder(t),o,r)}getSpan(t,o){return this.layout.getSpan(t,o)}};function a(i){return new pt(G(32),e=>new Pr(e),e=>e.toBuffer(),i)}function ye(i){return new pt(ho(),Ar,wr,i)}function Ar(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function wr(i){return i?1:0}function Lo(i,e){let t=Dt("length"),o=h([t,B(i,xo(t,-t.span),"values")]);return new pt(o,({values:r})=>r,r=>({values:r}),e)}var Sn=class extends To{decode(e,t){return super.decode(e,t)}};function h(i,e,t){return new Sn(i,e,t)}function B(i,e,t){let o,r=typeof e=="number"?e:Ko(e)?e.toNumber():new Proxy(e,{get(s,c){if(!o){let u=Reflect.get(s,"count");o=Ko(u)?u.toNumber():u,Reflect.set(s,"count",o)}return Reflect.get(s,c)},set(s,c,u){return c==="count"&&(o=u),Reflect.set(s,c,u)}});return Bo(i,r,t)}var Je=h([a("mint"),a("owner"),n("amount"),ee("delegateOption"),a("delegate"),T("state"),ee("isNativeOption"),n("isNative"),n("delegatedAmount"),ee("closeAuthorityOption"),a("closeAuthority")]);function qe({fromPublicKey:i,programId:e=hr,assignSeed:t}){let o=t?btoa(t).slice(0,32):kr.generate().publicKey.toBase58().slice(0,32);return{publicKey:Ir(i,o,e),seed:o}}function Ir(i,e,t){let o=Buffer.concat([i.toBuffer(),Buffer.from(e),t.toBuffer()]),r=ko(o);return new Tr(r)}function Oo(i){let{mint:e,tokenAccount:t,owner:o,programId:r=ft}=i;return Cr(t,e,o,r)}function Kn(i){let{tokenAccount:e,payer:t,multiSigners:o=[],owner:r,programId:s=ft}=i;return Kr(e,t,r,o,s)}async function yt(i){let{connection:e,amount:t,commitment:o,payer:r,owner:s,skipCloseAccount:c}=i,u=await e.getMinimumBalanceForRentExemption(Je.span,o),b=D(t).add(new Sr(u)),l=qe({fromPublicKey:r,programId:ft});return{addresses:{newAccount:l.publicKey},signers:[],instructions:[xr.createAccountWithSeed({fromPubkey:r,basePubkey:r,seed:l.seed,newAccountPubkey:l.publicKey,lamports:b.toNumber(),space:Je.span,programId:ft}),Oo({mint:new Br(se.address),tokenAccount:l.publicKey,owner:s,programId:ft})],instructionTypes:[U.CreateAccount,U.InitAccount],endInstructionTypes:c?[]:[U.CloseAccount],endInstructions:c?[]:[Kn({tokenAccount:l.publicKey,payer:r,owner:s})]}}import{PublicKey as Kw}from"@solana/web3.js";import{AccountLayout as Lw,MintLayout as Ow,NATIVE_MINT as Nw,TOKEN_PROGRAM_ID as Fw}from"@solana/spl-token";import{PublicKey as Rr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Lr}from"@solana/spl-token";function de(i,e,t){return me([i.toBuffer(),(t!=null?t:Lr).toBuffer(),e.toBuffer()],new Rr("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import kd from"bn.js";import{PublicKey as Rn}from"@solana/web3.js";import{PublicKey as F}from"@solana/web3.js";var No=new F("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Mo=new F("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Fo=new F("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),bt=new F("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Od=new F("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Or=new F("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),vo=new F("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),_o=new F("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Nd=new F("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Nr=new F("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Vo=new F("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Mr=new F("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Fr=new F("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Eo=new F("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Md=new F("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),vr=new F("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),_r=new F("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Vr=new F("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Er=new F("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Dr=new F("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Cn=new F("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Wr=new F("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Fd=new F("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),qr=new F("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ur=new F("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Gr=new F("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),vd=new F("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),_d=new F("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Vd=new F("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Ed=new F("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Dd=new F("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),gt={IDO_PROGRAM_ID_V1:_r,IDO_PROGRAM_ID_V2:Vr,IDO_PROGRAM_ID_V3:Er,IDO_PROGRAM_ID_V4:Dr};var Ce={OPEN_BOOK_PROGRAM:new F("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new F("Ray111111111111111111111111