UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 84.5 kB
var Co=Object.defineProperty,Ro=Object.defineProperties;var Lo=Object.getOwnPropertyDescriptors;var ut=Object.getOwnPropertySymbols;var Pn=Object.prototype.hasOwnProperty,An=Object.prototype.propertyIsEnumerable;var gn=(o,t,n)=>t in o?Co(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,L=(o,t)=>{for(var n in t||(t={}))Pn.call(t,n)&&gn(o,n,t[n]);if(ut)for(var n of ut(t))An.call(t,n)&&gn(o,n,t[n]);return o},E=(o,t)=>Ro(o,Lo(t));var pe=(o,t)=>{var n={};for(var i in o)Pn.call(o,i)&&t.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&ut)for(var i of ut(o))t.indexOf(i)<0&&An.call(o,i)&&(n[i]=o[i]);return n};import{ASSOCIATED_TOKEN_PROGRAM_ID as qa,TOKEN_PROGRAM_ID as Ie}from"@solana/spl-token";import{PublicKey as z,SystemProgram as xo,SYSVAR_RENT_PUBKEY as Ua,TransactionInstruction as Pe}from"@solana/web3.js";import{PublicKey as Mo}from"@solana/web3.js";import{get as wn,set as Oo}from"lodash";var Lt=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},kn={},No={};function D(o){let t=wn(kn,o);if(!t){let n=wn(No,o);t=new Lt({name:o,logLevel:n}),Oo(kn,o,t)}return t}import{MINT_SIZE as is,TOKEN_PROGRAM_ID as rs,getTransferFeeConfig as as,unpackMint as ss}from"@solana/spl-token";var Ot=D("Raydium_accountInfo_util");async function ke(o,t,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:d=100}=L({batchRequest:!1},n),c=Nt(t,d),y=new Array(c.length).fill([]);if(i){let f=c.map(w=>{let C=o._buildArgs([w.map(K=>K.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:C}}),A=Nt(f,10);y=(await(await Promise.all(A.map(async w=>await o._rpcBatchRequest(w)))).flat()).map(w=>(w.error&&Ot.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${w.error.message}`),w.result.value.map(C=>{if(C){let{data:K,executable:M,lamports:T,owner:B,rentEpoch:x}=C;return K.length!==2&&K[1]!=="base64"&&Ot.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(K[0],"base64"),executable:M,lamports:T,owner:new Mo(B),rentEpoch:x}}return null})))}else try{y=await Promise.all(c.map(f=>o.getMultipleAccountsInfo(f,a)))}catch(f){f instanceof Error&&Ot.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${f.message}`)}return y.flat()}import Ne from"bn.js";import oR from"decimal.js";import qo from"big.js";import mt from"bn.js";import Fo from"toformat";var vo=Fo,Qe=vo;import lt from"big.js";import _o from"bn.js";import Eo from"decimal.js-light";import Ze from"bn.js";var Tn=9007199254740991;function G(o){let t=D("Raydium_parseBigNumberish");if(o instanceof Ze)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ze(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=Tn||o<=-Tn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new Ze(String(o))):typeof o=="bigint"?new Ze(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new Ze(0))}var ct=D("module/fraction"),Mt=Qe(lt),He=Qe(Eo),Do={[0]:He.ROUND_DOWN,[1]:He.ROUND_HALF_UP,[2]:He.ROUND_UP},Wo={[0]:lt.roundDown,[1]:lt.roundHalfUp,[2]:lt.roundUp},q=class{constructor(t,n=new _o(1)){this.numerator=G(t),this.denominator=G(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new q(this.denominator,this.numerator)}add(t){let n=t instanceof q?t:new q(G(t));return this.denominator.eq(n.denominator)?new q(this.numerator.add(n.numerator),this.denominator):new q(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof q?t:new q(G(t));return this.denominator.eq(n.denominator)?new q(this.numerator.sub(n.numerator),this.denominator):new q(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof q?t:new q(G(t));return new q(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof q?t:new q(G(t));return new q(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},i=1){Number.isInteger(t)||ct.logWithError(`${t} is not an integer.`),t<=0&&ct.logWithError(`${t} is not positive.`),He.set({precision:t+1,rounding:Do[i]});let a=new He(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return a.toFormat(a.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},i=1){return Number.isInteger(t)||ct.logWithError(`${t} is not an integer.`),t<0&&ct.logWithError(`${t} is negative.`),Mt.DP=t,Mt.RM=Wo[i]||1,new Mt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Uo=D("Raydium_amount"),hn=Qe(qo);function Go(o,t){let n="0",i="0";if(o.includes(".")){let a=o.split(".");a.length===2?([n,i]=a,i=i.padEnd(t,"0")):Uo.logWithError(`invalid number string, num: ${o}`)}else n=o;return[n,i.slice(0,t)||i]}var se=class extends q{constructor(n,i,a=!0,d){let c=new mt(0),y=Ft.pow(new mt(n.decimals));if(a)c=G(i);else{let f=new mt(0),A=new mt(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[b,w]=Go(i.toString(),n.decimals);f=G(b),A=G(w)}f=f.mul(y),c=f.add(A)}super(c,y);this.logger=D(d||"TokenAmount"),this.token=n}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(n){return this.token.equals(n.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(n.raw)}lt(n){return this.token.equals(n.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(n.raw)}add(n){return this.token.equals(n.token)||this.logger.logWithError("add token not equals"),new se(this.token,this.raw.add(n.raw))}subtract(n){return this.token.equals(n.token)||this.logger.logWithError("sub token not equals"),new se(this.token,this.raw.sub(n.raw))}toSignificant(n=this.token.decimals,i,a=0){return super.toSignificant(n,i,a)}toFixed(n=this.token.decimals,i,a=0){return n>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(n,i,a)}toExact(n={groupSeparator:""}){return hn.DP=this.token.decimals,new hn(this.numerator.toString()).div(this.denominator.toString()).toFormat(n)}};import{PublicKey as zo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as In}from"@solana/spl-token";var dt={chainId:101,address:zo.default.toBase58(),programId:In.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ye={chainId:101,address:"So11111111111111111111111111111111111111112",programId:In.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 _t}from"@solana/web3.js";import{PublicKey as Q,SystemProgram as Bn,SYSVAR_RENT_PUBKEY as Yo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Xo}from"@solana/spl-token";function l({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Qo=[l({pubkey:Xo,isWritable:!1}),l({pubkey:Bn.programId,isWritable:!1}),l({pubkey:Yo,isWritable:!1})];function Sn({publicKey:o,transformSol:t}){let n=vt(o.toString());if(n instanceof Q)return t&&n.equals(Se)?fe:n;if(t&&n.toString()===Se.toBase58())return fe;if(typeof n=="string"){if(n===Q.default.toBase58())return Q.default;try{return new Q(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function vt(o){try{return new Q(o)}catch{return o}}var Vt=new Q("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),xe=new Q("SysvarRent111111111111111111111111111111111"),Zo=new Q("SysvarC1ock11111111111111111111111111111111"),pt=new Q("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ho=new Q("Sysvar1nstructions1111111111111111111111111"),xn=Bn.programId,Es=new Q("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ds=new Q("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ws=new Q("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),qs=new Q("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Us=new Q("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Gs=new Q("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),zs=new Q("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ys=new Q("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Xs=new Q("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Qs=new Q("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Zs=new Q("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),fe=new Q("So11111111111111111111111111111111111111112"),Se=Q.default;var Et=class{constructor({mint:t,decimals:n,symbol:i,name:a,skipMint:d=!1,isToken2022:c=!1}){if(t===Se.toBase58()||t instanceof _t&&Se.equals(t)){this.decimals=ye.decimals,this.symbol=ye.symbol,this.name=ye.name,this.mint=new _t(ye.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||t.toString().substring(0,6),this.name=a||t.toString().substring(0,6),this.mint=d?_t.default:Sn({publicKey:t}),this.isToken2022=c}equals(t){return this===t?!0:this.mint.equals(t.mint)}},te=Et;te.WSOL=new Et(E(L({},ye),{mint:ye.address}));var Dt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=i}equals(t){return this===t}},ft=Dt;ft.SOL=new Dt(dt);import jo from"bn.js";var Kn=new q(new jo(100)),Te=class extends q{toSignificant(t=5,n,i){return this.mul(Kn).toSignificant(t,n,i)}toFixed(t=2,n,i){return this.mul(Kn).toFixed(t,n,i)}};var $o=D("Raydium_price"),ce=class extends q{constructor(n){let{baseToken:i,quoteToken:a,numerator:d,denominator:c}=n;super(d,c);this.baseToken=i,this.quoteToken=a,this.scalar=new q(Wt(i.decimals),Wt(a.decimals))}get raw(){return new q(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new ce({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(n){this.quoteToken!==n.baseToken&&$o.logWithError("mul token not equals");let i=super.mul(n);return new ce({baseToken:this.baseToken,quoteToken:n.quoteToken,denominator:i.denominator,numerator:i.numerator})}toSignificant(n=this.quoteToken.decimals,i,a){return this.adjusted.toSignificant(n,i,a)}toFixed(n=this.quoteToken.decimals,i,a){return this.adjusted.toFixed(n,i,a)}};import{merge as oC}from"lodash";import Au from"axios";var Cn={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"},Jo=E(L({},Cn),{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 qu=D("Raydium_Api");import{PublicKey as am,SystemProgram as sm}from"@solana/web3.js";import{AccountLayout as dm,createAssociatedTokenAccountIdempotentInstruction as pm,TOKEN_PROGRAM_ID as fm,TOKEN_2022_PROGRAM_ID as ym}from"@solana/spl-token";import{PublicKey as Ee,sendAndConfirmTransaction as Xt,SystemProgram as ri,Transaction as Je,TransactionMessage as et,VersionedTransaction as tt}from"@solana/web3.js";import ai from"axios";import{PublicKey as qt,AddressLookupTableAccount as Ve}from"@solana/web3.js";async function Ut({connection:o,address:t,cluster:n="mainnet"}){let i=await ke(o,[...new Set(t.map(d=>d.toString()))].map(d=>new qt(d))),a={};for(let d=0;d<t.length;d++){let c=i[d],y=t[d];if(!c)continue;let f=new Ve({key:y,state:Ve.deserialize(c.data)});a[y.toString()]=f,n==="devnet"?ve[y.toString()]=f:Fe[y.toString()]=f}return a}var Fe={},Gt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Fe[t])return Fe;let n=new qt(t),i=await o.getAccountInfo(n);return i&&(Fe[t]=new Ve({key:n,state:Ve.deserialize(i.data)})),Fe},ve={},zt=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(ve[t])return ve;let n=new qt(t),i=await o.getAccountInfo(n);return i&&(ve[t]=new Ve({key:n,state:Ve.deserialize(i.data)})),ve};var H={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 Rn,Keypair as On,PublicKey as ei,Transaction as Nn,TransactionMessage as ti,VersionedTransaction as Mn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ni}from"@solana/spl-token";var Ln=D("Raydium_txUtil"),Fn=1644;function yt(o){let t=[],n=[];return o.microLamports&&(t.push(Rn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(H.SetComputeUnitPrice)),o.units&&(t.push(Rn.setComputeUnitLimit({units:o.units})),n.push(H.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function _e(o,t){var i,a;let n=t!=null?t:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:a.blockhash}async function bt(o,t){return o.getSignatureStatuses([t]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(t,d=>{if(clearTimeout(a),!d.err){n("");return}i(Object.assign(d.err,{txId:t}))},"confirmed")})}function Yt(o,t){o.length<1&&Ln.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&Ln.logWithError(`no signers provided:, ${t.toString()}`);let n=new Nn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Fn}catch{return!1}}function be(o,t){let[n,i]=ei.findProgramAddressSync(o,t);return{publicKey:n,nonce:i}}function je({instructions:o,payer:t,signers:n}){return Yt(o,[t,...n])}function $e({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:i=On.generate().publicKey.toString()}){let d=new ti({payerKey:t,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Mn(d).serialize()).toString("base64").length<Fn}catch{return!1}}var oi=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),ii=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Mn&&(t=oi(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ke(o){let t=[];return o.forEach(n=>{n instanceof Nn&&(n.recentBlockhash||(n.recentBlockhash=ni.toBase58()),n.feePayer||(n.feePayer=On.generate().publicKey)),t.push(ii(n))}),console.log("simulate tx string:",t),t}var gt=2e3,Pt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.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 i;let t=(await ai.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=t==null?void 0:t[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:i}=yt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(ri.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Ee(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(H.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let i=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:i=[],instructionTypes:a=[],endInstructionTypes:d=[],lookupTableAddress:c=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...c.filter(y=>y!==Ee.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:i}){return t===0?await this.buildV0(E(L({},n||{}),{lookupTableAddress:i})):this.build(n)}build(t){var i;let n=new Je;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async a=>{var b;let{recentBlockHash:d,skipPreflight:c=!0,sendAndConfirm:y,notSendToRpc:f}=a||{},A=d!=null?d:await _e(this.connection,this.blockhashCommitment);if(n.recentBlockhash=A,this.signers.length&&n.sign(...this.signers),Ke([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:y?await Xt(this.connection,n,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:c}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:c}),signedTx:n};if(this.signAllTransactions){let w=await this.signAllTransactions([n]);if(this.signers.length)for(let C of w)try{C.sign(...this.signers)}catch{}return{txId:f?"":await this.connection.sendRawTransaction(w[0].serialize(),{skipPreflight:c}),signedTx:w[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var A;let{extraPreBuildData:n=[],extInfo:i}=t,{transaction:a}=this.build(i),d=n.filter(b=>b.transaction.instructions.length>0),c=[a,...d.map(b=>b.transaction)],y=[this.signers,...d.map(b=>b.signers)],f=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(A=this.owner)!=null&&A.signer&&y.forEach(b=>{b.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:c,signers:y,instructionTypes:f,execute:async b=>{var x;let{sequentially:w,onTxUpdate:C,skipTxCount:K=0,recentBlockHash:M,skipPreflight:T=!0}=b||{},B=M!=null?M:await _e(this.connection,this.blockhashCommitment);if((x=this.owner)!=null&&x.isKeyPair){if(w){let S=[],V=0;for(let _ of c){if(++V,V<=K)continue;let P=await Xt(this.connection,_,this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:T});S.push(P)}return{txIds:S,signedTxs:c}}return{txIds:await await Promise.all(c.map(async S=>(S.recentBlockhash=B,await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:T})))),signedTxs:c}}if(this.signAllTransactions){let S=c.map((_,P)=>(_.recentBlockhash=B,y[P].length&&_.sign(...y[P]),_));Ke(S);let V=await this.signAllTransactions(S);if(w){let _=0,P=[],h=async()=>{if(!V[_])return;let I=await this.connection.sendRawTransaction(V[_].serialize(),{skipPreflight:T});P.push({txId:I,status:"sent",signedTx:V[_]}),C==null||C([...P]),_++;let R=!1,O=null,v=null,ae=Y=>{O!==null&&clearInterval(O),v!==null&&this.connection.removeSignatureListener(v);let U=P.findIndex(ee=>ee.txId===I);if(U>-1){if(P[U].status==="error"||P[U].status==="success")return;P[U].status=Y.err?"error":"success"}C==null||C([...P]),Y.err||h()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var Y;if(R){clearInterval(O);return}try{let U=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});U&&(R=!0,clearInterval(O),ae({err:((Y=U.meta)==null?void 0:Y.err)||null}),console.log("tx status from getTransaction:",I))}catch(U){R=!0,clearInterval(O),console.error("getTransaction timeout:",U,I)}},gt)),v=this.connection.onSignature(I,Y=>{if(R){this.connection.removeSignatureListener(v);return}R=!0,ae(Y)},"confirmed"),this.connection.getSignatureStatus(I)};return await h(),{txIds:P.map(I=>I.txId),signedTxs:V}}else{let _=[];for(let P=0;P<V.length;P+=1){let h=await this.connection.sendRawTransaction(V[P].serialize(),{skipPreflight:T});_.push(h)}return{txIds:_,signedTxs:V}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:i})}async buildV0(t){var T;let M=t||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:d}=M,c=pe(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),y=L(L({},this.cluster==="devnet"?await zt(this.connection):await Gt(this.connection)),n),f=Array.from(new Set([...i,...this.lookupTableAddress])),A=[];for(let B of f)y[B]===void 0&&A.push(new Ee(B));let b=await Ut({connection:this.connection,address:A});for(let[B,x]of Object.entries(b))y[B]=x;let w=a?Ee.default.toBase58():d!=null?d:await _e(this.connection,this.blockhashCommitment),C=new et({payerKey:this.feePayer,recentBlockhash:w,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(y));((T=this.owner)==null?void 0:T.signer)&&!this.signers.some(B=>B.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let K=new tt(C);return K.sign(this.signers),{builder:this,transaction:K,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async B=>{var _;let{skipPreflight:x=!0,sendAndConfirm:S,notSendToRpc:V}=B||{};if(Ke([K]),(_=this.owner)!=null&&_.isKeyPair){let P=await this.connection.sendTransaction(K,{skipPreflight:x});return S&&await bt(this.connection,P),{txId:P,signedTx:K}}if(this.signAllTransactions){let P=await this.signAllTransactions([K]);if(this.signers.length)for(let h of P)try{h.sign(this.signers)}catch{}return{txId:V?"":await this.connection.sendTransaction(P[0],{skipPreflight:x}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:c||{}}}async buildV0MultiTx(t){var A;let{extraPreBuildData:n=[],buildProps:i}=t,{transaction:a}=await this.buildV0(i),d=n.filter(b=>b.builder.instructions.length>0),c=[a,...d.map(b=>b.transaction)],y=[this.signers,...d.map(b=>b.signers)],f=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(A=this.owner)!=null&&A.signer&&y.forEach(b=>{b.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),c.forEach(async(b,w)=>{b.sign(y[w])}),{builder:this,transactions:c,signers:y,instructionTypes:f,buildProps:i,execute:async b=>{var T;let{sequentially:w,onTxUpdate:C,recentBlockHash:K,skipPreflight:M=!0}=b||{};if(K&&c.forEach(B=>B.message.recentBlockhash=K),Ke(c),(T=this.owner)!=null&&T.isKeyPair){if(w){let B=[];for(let x of c){let S=await this.connection.sendTransaction(x,{skipPreflight:M});await bt(this.connection,S),B.push(S)}return{txIds:B,signedTxs:c}}return{txIds:await Promise.all(c.map(async B=>await this.connection.sendTransaction(B,{skipPreflight:M}))),signedTxs:c}}if(this.signAllTransactions){let B=await this.signAllTransactions(c);if(w){let x=0,S=[],V=async()=>{if(!B[x])return;let _=await this.connection.sendTransaction(B[x],{skipPreflight:M});S.push({txId:_,status:"sent",signedTx:B[x]}),C==null||C([...S]),x++;let P=!1,h=null,I=null,R=O=>{h!==null&&clearInterval(h),I!==null&&this.connection.removeSignatureListener(I);let v=S.findIndex(ae=>ae.txId===_);if(v>-1){if(S[v].status==="error"||S[v].status==="success")return;S[v].status=O.err?"error":"success"}C==null||C([...S]),O.err||V()};this.loopMultiTxStatus&&(h=setInterval(async()=>{var O;if(P){clearInterval(h);return}try{let v=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});v&&(P=!0,clearInterval(h),R({err:((O=v.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",_))}catch(v){P=!0,clearInterval(h),console.error("getTransaction timeout:",v,_)}},gt)),I=this.connection.onSignature(_,O=>{if(P){this.connection.removeSignatureListener(I);return}P=!0,R(O)},"confirmed"),this.connection.getSignatureStatus(_)};return V(),{txIds:[],signedTxs:B}}else{let x=[];for(let S=0;S<B.length;S+=1){let V=await this.connection.sendTransaction(B[S],{skipPreflight:M});x.push(V)}return{txIds:x,signedTxs:B}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(t){var C;let w=t||{},{splitIns:n=[],computeBudgetConfig:i}=w,a=pe(w,["splitIns","computeBudgetConfig"]),d=i?yt(i):{instructions:[],instructionTypes:[]},c=this.signers.reduce((K,M)=>E(L({},K),{[M.publicKey.toBase58()]:M}),{}),y=[],f=[],A=[],b=0;if(this.allInstructions.forEach(K=>{let M=[...A,K],T=i?[...d.instructions,...M]:M,x=[...new Set(M.map(S=>S.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat()).values()].map(S=>new Ee(S));if(K!==n[b]&&A.length<12&&(je({instructions:T,payer:this.feePayer,signers:x})||je({instructions:M,payer:this.feePayer,signers:x})))A.push(K);else{if(A.length===0)throw Error("item ins too big");b+=K===n[b]?1:0,je({instructions:i?[...d.instructions,...A]:[...A],payer:this.feePayer,signers:x})?y.push(new Je().add(...d.instructions,...A)):y.push(new Je().add(...A)),f.push(Array.from(new Set(A.map(S=>S.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(S=>c[S]).filter(S=>S!==void 0)),A=[K]}}),A.length>0){let M=[...new Set(A.map(T=>T.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat()).values()].map(T=>c[T]).filter(T=>T!==void 0);je({instructions:i?[...d.instructions,...A]:[...A],payer:this.feePayer,signers:M.map(T=>T.publicKey)})?y.push(new Je().add(...d.instructions,...A)):y.push(new Je().add(...A)),f.push(M)}return y.forEach(K=>K.feePayer=this.feePayer),(C=this.owner)!=null&&C.signer&&f.forEach(K=>{K.some(M=>M.publicKey.equals(this.owner.publicKey))||K.push(this.owner.signer)}),{builder:this,transactions:y,signers:f,instructionTypes:this.instructionTypes,execute:async K=>{var _;let{sequentially:M,onTxUpdate:T,skipTxCount:B=0,recentBlockHash:x,skipPreflight:S=!0}=K||{},V=x!=null?x:await _e(this.connection,this.blockhashCommitment);if(y.forEach(async(P,h)=>{P.recentBlockhash=V,f[h].length&&P.sign(...f[h])}),Ke(y),(_=this.owner)!=null&&_.isKeyPair){if(M){let P=0,h=[];for(let I of y){if(++P,P<=B){h.push("tx skipped");continue}let R=await Xt(this.connection,I,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});h.push(R)}return{txIds:h,signedTxs:y}}return{txIds:await Promise.all(y.map(async P=>await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:S}))),signedTxs:y}}if(this.signAllTransactions){let P=await this.signAllTransactions(y.slice(B,y.length)),h=[...y.slice(0,B),...P];if(M){let I=0,R=[],O=async()=>{if(!h[I])return;I<B&&(R.push({txId:"",status:"success",signedTx:h[I]}),T==null||T([...R]),I++,O());let v=await this.connection.sendRawTransaction(h[I].serialize(),{skipPreflight:S});R.push({txId:v,status:"sent",signedTx:h[I]}),T==null||T([...R]),I++;let ae=!1,Y=null,U=null,ee=X=>{Y!==null&&clearInterval(Y),U!==null&&this.connection.removeSignatureListener(U);let ie=R.findIndex(Ae=>Ae.txId===v);if(ie>-1){if(R[ie].status==="error"||R[ie].status==="success")return;R[ie].status=X.err?"error":"success"}T==null||T([...R]),X.err||O()};this.loopMultiTxStatus&&(Y=setInterval(async()=>{var X;if(ae){clearInterval(Y);return}try{let ie=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});ie&&(ae=!0,clearInterval(Y),ee({err:((X=ie.meta)==null?void 0:X.err)||null}),console.log("tx status from getTransaction:",v))}catch(ie){ae=!0,clearInterval(Y),console.error("getTransaction timeout:",ie,v)}},gt)),U=this.connection.onSignature(v,X=>{if(ae){this.connection.removeSignatureListener(U);return}ae=!0,ee(X)},"confirmed"),this.connection.getSignatureStatus(v)};return await O(),{txIds:R.map(v=>v.txId),signedTxs:h}}else{let I=[];for(let R=0;R<h.length;R+=1){let O=await this.connection.sendRawTransaction(h[R].serialize(),{skipPreflight:S});I.push(O)}return{txIds:I,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(t){var _;let V=t||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:d=[],insCountLimit:c=12}=V,y=pe(V,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),f=L(L({},this.cluster==="devnet"?await zt(this.connection):await Gt(this.connection)),a),A=Array.from(new Set([...this.lookupTableAddress,...d])),b=[];for(let P of A)f[P]===void 0&&b.push(new Ee(P));let w=await Ut({connection:this.connection,address:b});for(let[P,h]of Object.entries(w))f[P]=h;let C=n?yt(n):{instructions:[],instructionTypes:[]},K=await _e(this.connection,this.blockhashCommitment),M=this.signers.reduce((P,h)=>E(L({},P),{[h.publicKey.toBase58()]:h}),{}),T=[],B=[],x=[],S=0;if(this.allInstructions.forEach(P=>{let h=[...x,P],I=n?[...C.instructions,...h]:h;if(P!==i[S]&&x.length<c&&($e({instructions:I,payer:this.feePayer,lookupTableAddressAccount:f})||$e({instructions:h,payer:this.feePayer,lookupTableAddressAccount:f})))x.push(P);else{if(x.length===0)throw Error("item ins too big");S+=P===i[S]?1:0;let R={};for(let O of[...new Set(A)])f[O]!==void 0&&(R[O]=f[O]);if(n&&$e({instructions:[...C.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:f,recentBlockhash:K})){let O=new et({payerKey:this.feePayer,recentBlockhash:K,instructions:[...C.instructions,...x]}).compileToV0Message(Object.values(f));T.push(new tt(O))}else{let O=new et({payerKey:this.feePayer,recentBlockhash:K,instructions:[...x]}).compileToV0Message(Object.values(f));T.push(new tt(O))}B.push(Array.from(new Set(x.map(O=>O.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(O=>M[O]).filter(O=>O!==void 0)),x=[P]}}),x.length>0){let h=[...new Set(x.map(I=>I.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(I=>M[I]).filter(I=>I!==void 0);if(n&&$e({instructions:[...C.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:f,recentBlockhash:K})){let I=new et({payerKey:this.feePayer,recentBlockhash:K,instructions:[...C.instructions,...x]}).compileToV0Message(Object.values(f));T.push(new tt(I))}else{let I=new et({payerKey:this.feePayer,recentBlockhash:K,instructions:[...x]}).compileToV0Message(Object.values(f));T.push(new tt(I))}B.push(h)}return(_=this.owner)!=null&&_.signer&&B.forEach(P=>{P.some(h=>h.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),T.forEach((P,h)=>{P.sign(B[h])}),{builder:this,transactions:T,buildProps:t,signers:B,instructionTypes:this.instructionTypes,execute:async P=>{var ae;let{sequentially:h,onTxUpdate:I,skipTxCount:R=0,recentBlockHash:O,skipPreflight:v=!0}=P||{};if(T.map(async(Y,U)=>{B[U].length&&Y.sign(B[U]),O&&(Y.message.recentBlockhash=O)}),Ke(T),(ae=this.owner)!=null&&ae.isKeyPair){if(h){let Y=0,U=[];for(let ee of T){if(++Y,Y<=R){console.log("skip tx: ",Y),U.push("tx skipped");continue}let X=await this.connection.sendTransaction(ee,{skipPreflight:v});await bt(this.connection,X),U.push(X)}return{txIds:U,signedTxs:T}}return{txIds:await Promise.all(T.map(async Y=>await this.connection.sendTransaction(Y,{skipPreflight:v}))),signedTxs:T}}if(this.signAllTransactions){let Y=await this.signAllTransactions(T.slice(R,T.length)),U=[...T.slice(0,R),...Y];if(h){let ee=0,X=[],ie=async()=>{if(!U[ee])return;if(ee<R){X.push({txId:"",status:"success",signedTx:U[ee]}),I==null||I([...X]),ee++,ie();return}let Ae=await this.connection.sendTransaction(U[ee],{skipPreflight:v});X.push({txId:Ae,status:"sent",signedTx:U[ee]}),I==null||I([...X]),ee++;let Ye=!1,Me=null,st=null,bn=Be=>{Me!==null&&clearInterval(Me),st!==null&&this.connection.removeSignatureListener(st);let we=X.findIndex(Ko=>Ko.txId===Ae);if(we>-1){if(X[we].status==="error"||X[we].status==="success")return;X[we].status=Be.err?"error":"success"}I==null||I([...X]),Be.err||ie()};this.loopMultiTxStatus&&(Me=setInterval(async()=>{var Be;if(Ye){clearInterval(Me);return}try{let we=await this.connection.getTransaction(Ae,{commitment:"confirmed",maxSupportedTransactionVersion:0});we&&(Ye=!0,clearInterval(Me),bn({err:((Be=we.meta)==null?void 0:Be.err)||null}),console.log("tx status from getTransaction:",Ae))}catch(we){Ye=!0,clearInterval(Me),console.error("getTransaction timeout:",we,Ae)}},gt)),st=this.connection.onSignature(Ae,Be=>{if(Ye){this.connection.removeSignatureListener(st);return}Ye=!0,bn(Be)},"confirmed"),this.connection.getSignatureStatus(Ae)};return ie(),{txIds:[],signedTxs:U}}else{let ee=[];for(let X=0;X<U.length;X+=1){let ie=await this.connection.sendTransaction(U[X],{skipPreflight:v});ee.push(ie)}return{txIds:ee,signedTxs:U}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:y||{}}}};var Qt=(...o)=>o.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),re=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=D(n)}createTxBuilder(t){return this.scope.checkOwner(),new Pt({connection:this.scope.connection,feePayer:t||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(...t){this.logger.debug(Qt(t))}logInfo(...t){this.logger.info(Qt(t))}logAndCreateError(...t){let n=Qt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Vl,SystemProgram as El}from"@solana/web3.js";import ql from"bn.js";import{createCloseAccountInstruction as Yl,createInitializeAccountInstruction as Xl,createTransferInstruction as Ql,TOKEN_PROGRAM_ID as Zl}from"@solana/spl-token";import{Keypair as Il,PublicKey as Bl}from"@solana/web3.js";import Kl from"bn.js";import{TOKEN_PROGRAM_ID as Ll}from"@solana/spl-token";import{PublicKey as Ai}from"@solana/web3.js";import Wn,{isBN as qn}from"bn.js";import{bits as si,BitStructure as Rc,blob as ui,Blob as Lc,cstr as Oc,f32 as Nc,f32be as Mc,f64 as Fc,f64be as vc,greedy as Vc,Layout as ci,ns64 as _c,ns64be as Ec,nu64 as li,nu64be as Dc,offset as mi,s16 as Wc,s16be as qc,s24 as Uc,s24be as Gc,s32 as di,s32be as zc,s40 as Yc,s40be as Xc,s48 as Qc,s48be as Zc,s8 as Hc,seq as pi,struct as jc,Structure as fi,u16 as yi,u16be as $c,u24 as Jc,u24be as el,u32 as bi,u32be as tl,u40 as nl,u40be as ol,u48 as il,u48be as rl,u8 as gi,UInt as Pi,union as al,Union as sl,unionLayoutDiscriminator as ul,utf8 as cl}from"@solana/buffer-layout";var At=ci,vn=fi;var Zt=Pi;var Vn=gi,J=yi;var wt=bi;var _n=li;var le=di;var En=pi;var F=ui;var Ht=si,Dn=mi;var Re=class extends At{constructor(n,i,a){super(n,a);this.blob=F(n),this.signed=i}decode(n,i=0){let a=new Wn(this.blob.decode(n,i),10,"le");return this.signed?a.fromTwos(this.span*8).clone():a}encode(n,i,a=0){return typeof n=="number"&&(n=new Wn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,a)}},kt=class extends At{constructor(n){super(8,n);this._lower=Ht(wt(),!1),this._upper=Ht(wt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let a=this._lower.decode(n,i),d=this._upper.decode(n,i+this._lower.span);return L(L({},a),d)}encode(n,i,a=0){return this._lower.encode(n,i,a)+this._upper.encode(n,i,a+this._lower.span)}};function m(o){return new Zt(1,o)}function Z(o){return new Zt(4,o)}function e(o){return new Re(8,!1,o)}function N(o){return new Re(16,!1,o)}function Un(o){return new Re(1,!0,o)}function De(o){return new Re(8,!0,o)}function Gn(o){return new Re(16,!0,o)}var nt=class extends At{constructor(n,i,a,d){super(n.span,d);this.layout=n,this.decoder=i,this.encoder=a}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,a){return this.layout.encode(this.encoder(n),i,a)}getSpan(n,i){return this.layout.getSpan(n,i)}};function r(o){return new nt(F(32),t=>new Ai(t),t=>t.toBuffer(),o)}function ue(o){return new nt(Vn(),wi,ki,o)}function wi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function ki(o){return o?1:0}function zn(o,t){let n=wt("length"),i=p([n,g(o,Dn(n,-n.span),"values")]);return new nt(i,({values:a})=>a,a=>({values:a}),t)}var jt=class extends vn{decode(t,n){return super.decode(t,n)}};function p(o,t,n){return new jt(o,t,n)}function g(o,t,n){let i,a=typeof t=="number"?t:qn(t)?t.toNumber():new Proxy(t,{get(d,c){if(!i){let y=Reflect.get(d,"count");i=qn(y)?y.toNumber():y,Reflect.set(d,"count",i)}return Reflect.get(d,c)},set(d,c,y){return c==="count"&&(i=y),Reflect.set(d,c,y)}});return En(o,a,n)}var Tt=p([r("mint"),r("owner"),e("amount"),Z("delegateOption"),r("delegate"),m("state"),Z("isNativeOption"),e("isNative"),e("delegatedAmount"),Z("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as eP,SystemProgram as tP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as oP}from"@solana/spl-token";import{PublicKey as Tm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Im}from"@solana/spl-token";import{PublicKey as k}from"@solana/web3.js";var Xn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Qn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Zn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),$t=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Km=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),hi=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Hn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),jn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Cm=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ii=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),$n=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Bi=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Si=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),We=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Rm=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),xi=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ki=new k("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Ci=new k("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ri=new k("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Li=new k("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Jt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Oi=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Lm=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ni=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Mi=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Fi=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Om=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Nm=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Mm=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Fm=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vm=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),ot={IDO_PROGRAM_ID_V1:Ki,IDO_PROGRAM_ID_V2:Ci,IDO_PROGRAM_ID_V3:Ri,IDO_PROGRAM_ID_V4:Li};var he={OPEN_BOOK_PROGRAM:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new k("Ray1111111111111111111111111111111111111111"),AMM_V4:new k("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new k("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new k("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new k("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new k("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new k("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new k("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new k("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:k.default,Router:new k("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new k("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new k("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new k("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new k("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new k("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new k("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new k("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new k("Ray1111111111111111111111111111111111111111")};import pP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Ny,TOKEN_2022_PROGRAM_ID as My,TOKEN_PROGRAM_ID as Fy}from"@solana/spl-token";import{PublicKey as Vy}from"@solana/web3.js";import Ey from"bn.js";import Wy from"decimal.js";import{TOKEN_PROGRAM_ID as Hm}from"@solana/spl-token";import{PublicKey as ed}from"@solana/web3.js";var vi=p([Z("mintAuthorityOption"),r("mintAuthority"),e("supply"),m("decimals"),m("isInitialized"),Z("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as ty,TOKEN_2022_PROGRAM_ID as ny,TOKEN_PROGRAM_ID as oy}from"@solana/spl-token";import{Keypair as ay,PublicKey as sy,SystemProgram as cy,TransactionInstruction as ly}from"@solana/web3.js";import dy from"bn.js";import W from"bn.js";var Le=new W(1).shln(64);var Vi=new W(1).shln(128),en=new W(1).shln(64).subn(1),_i=new W(1).shln(128).subn(1);var qe=new W("4295048016"),Ue=new W("79226673521066979257578248091"),Ei=new W("59543866431248"),Di=new W("184467440737095516"),Wi=new W("15793534762490258745");var tn=60,dd=new W("18446743708227953217"),qi=[{bit:0,factor:new W("fffcb933bd6fb800",16)},{bit:1,factor:new W("fff97272373d4000",16)},{bit:2,factor:new W("fff2e50f5f657000",16)},{bit:3,factor:new W("ffe5caca7e10f000",16)},{bit:4,factor:new W("ffcb9843d60f7000",16)},{bit:5,factor:new W("ff973b41fa98e800",16)},{bit:6,factor:new W("ff2ea16466c9b000",16)},{bit:7,factor:new W("fe5dee046a9a3800",16)},{bit:8,factor:new W("fcbe86c7900bb000",16)},{bit:9,factor:new W("f987a7253ac65800",16)},{bit:10,factor:new W("f3392b0822bb6000",16)},{bit:11,factor:new W("e7159475a2caf000",16)},{bit:12,factor:new W("d097f3bdfd2f2000",16)},{bit:13,factor:new W("a9f746462d9f8000",16)},{bit:14,factor:new W("70d869a156f31c00",16)},{bit:15,factor:new W("31be135f97ed3200",16)},{bit:16,factor:new W("9aa508b5b85a500",16)},{bit:17,factor:new W("5d6af8dedc582c",16)},{bit:18,factor:new W("2216e584f5fa",16)}];var it=3,Jn=100;var eo=10,to=100,It=14;var j=new W(0),Oe=new W(1),pd=new W(-1);var fd=new W("18446744073700000000");var Ui=p([F(8),m("bump"),J("index"),r("owner"),Z("protocolFeeRate"),Z("tradeFeeRate"),J("tickSpacing"),Z("fundFeeRate"),g(Z(),1),r("fundOwner"),g(e(),3)]),Gi=p([Z("blockTimestamp"),De("tickCumulative"),g(e(),4)]),no=p([F(8),ue("initialized"),e("recentEpoch"),J("observationIndex"),r("poolId"),g(Gi,Jn,"observations"),g(e(),4)]),zi=p([J("filterPeriod"),J("decayPeriod"),J("reductionFactor"),Z("dynamicFeeControl"),Z("maxVolatilityAccumulator"),le("tickSpacingIndexReference"),Z("volatilityReference"),Z("volatilityAccumulator"),e("lastUpdateTimestamp"),g(m(),46)]),Yi=p([m("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),N("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),N("growthGlobalX64")]),nn=p([F(8),m("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),m("mintDecimalsA"),m("mintDecimalsB"),J("tickSpacing"),N("liquidity"),N("sqrtPriceX64"),le("tickCurrent"),Z(),N("feeGrowthGlobalX64A"),N("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),g(N(),4),m("status"),m("feeOn"),F(6),g(Yi,it,"rewardInfos"),F(8*16,"tickArrayBitmap"),g(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),zi.replicate("dynamicFeeInfo"),g(e(),46)]),Xi=p([N("growthInsideLastX64"),e("rewardAmountOwed")]),Qi=p([F(8),m("bump"),r("nftMint"),r("poolId"),le("tickLower"),le("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),g(Xi,it,"rewardInfos"),e("recentEpoch"),g(e(),7)]),Pd=p([F(8),m("bump"),r("poolId"),le("tickLower"),le("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),g(N(),it,"rewardGrowthInside"),e("recentEpoch"),g(e(),7)]),Zi=p([le("tick"),Gn("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),g(N(),it,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),N("unfilledRatioX64"),g(Z(),3)]),oo=p([F(8),r("poolId"),le("startTickIndex"),g(Zi,tn,"ticks"),m("initializedTickCount"),e("recentEpoch"),g(m(),107)]),Hi=p([F(8),m("bump"),g(r(),eo,"operationOwners"),g(r(),to,"whitelistMints")]),ji=p([F(8),r("poolId"),r("owner"),le("tick"),ue("zeroForOne"),e("orderPhase"),e("totalAmount"),e