@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 141 kB
JavaScript
var Ri=Object.defineProperty,Li=Object.defineProperties;var Oi=Object.getOwnPropertyDescriptors;var _t=Object.getOwnPropertySymbols;var io=Object.prototype.hasOwnProperty,ro=Object.prototype.propertyIsEnumerable;var oo=(l,e,t)=>e in l?Ri(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t,E=(l,e)=>{for(var t in e||(e={}))io.call(e,t)&&oo(l,t,e[t]);if(_t)for(var t of _t(e))ro.call(e,t)&&oo(l,t,e[t]);return l},q=(l,e)=>Li(l,Oi(e));var _e=(l,e)=>{var t={};for(var n in l)io.call(l,n)&&e.indexOf(n)<0&&(t[n]=l[n]);if(l!=null&&_t)for(var n of _t(l))e.indexOf(n)<0&&ro.call(l,n)&&(t[n]=l[n]);return t};import{ASSOCIATED_TOKEN_PROGRAM_ID as Jn,TOKEN_2022_PROGRAM_ID as eo,TOKEN_PROGRAM_ID as et}from"@solana/spl-token";import{PublicKey as w,SystemProgram as Ft,TransactionInstruction as vt}from"@solana/web3.js";import Ve from"bn.js";import{PublicKey as Fi}from"@solana/web3.js";import{get as ao,set as Ni}from"lodash";var fn=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(n=>typeof n=="object"?JSON.stringify(n):n).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},so={},Mi={};function G(l){let e=ao(so,l);if(!e){let t=ao(Mi,l);e=new fn({name:l,logLevel:t}),Ni(so,l,e)}return e}import{MINT_SIZE as Js,TOKEN_PROGRAM_ID as eu,getTransferFeeConfig as tu,unpackMint as nu}from"@solana/spl-token";var yn=G("Raydium_accountInfo_util");async function ze(l,e,t){let{batchRequest:n,commitment:i="confirmed",chunkCount:c=100}=E({batchRequest:!1},t),u=bn(e,c),r=new Array(u.length).fill([]);if(n){let s=u.map(P=>{let k=l._buildArgs([P.map(m=>m.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:k}}),g=bn(s,10);r=(await(await Promise.all(g.map(async P=>await l._rpcBatchRequest(P)))).flat()).map(P=>(P.error&&yn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${P.error.message}`),P.result.value.map(k=>{if(k){let{data:m,executable:y,lamports:f,owner:a,rentEpoch:b}=k;return m.length!==2&&m[1]!=="base64"&&yn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(m[0],"base64"),executable:y,lamports:f,owner:new Fi(a),rentEpoch:b}}return null})))}else try{r=await Promise.all(u.map(s=>l.getMultipleAccountsInfo(s,i)))}catch(s){s instanceof Error&&yn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${s.message}`)}return r.flat()}import ut from"bn.js";import pR from"decimal.js";import Ui from"big.js";import Wt from"bn.js";import vi from"toformat";var Vi=vi,kt=Vi;import Dt from"big.js";import Ei from"bn.js";import Di from"decimal.js-light";import Tt from"bn.js";var uo=9007199254740991;function ee(l){let e=G("Raydium_parseBigNumberish");if(l instanceof Tt)return l;if(typeof l=="string"){if(l.match(/^-?[0-9]+$/))return new Tt(l);e.logWithError(`invalid BigNumberish string: ${l}`)}return typeof l=="number"?(l%1&&e.logWithError(`BigNumberish number underflow: ${l}`),(l>=uo||l<=-uo)&&e.logWithError(`BigNumberish number overflow: ${l}`),new Tt(String(l))):typeof l=="bigint"?new Tt(l.toString()):(e.error(`invalid BigNumberish value: ${l}`),new Tt(0))}var Et=G("module/fraction"),gn=kt(Dt),ht=kt(Di),Wi={[0]:ht.ROUND_DOWN,[1]:ht.ROUND_HALF_UP,[2]:ht.ROUND_UP},qi={[0]:Dt.roundDown,[1]:Dt.roundHalfUp,[2]:Dt.roundUp},Q=class{constructor(e,t=new Ei(1)){this.numerator=ee(e),this.denominator=ee(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new Q(this.denominator,this.numerator)}add(e){let t=e instanceof Q?e:new Q(ee(e));return this.denominator.eq(t.denominator)?new Q(this.numerator.add(t.numerator),this.denominator):new Q(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof Q?e:new Q(ee(e));return this.denominator.eq(t.denominator)?new Q(this.numerator.sub(t.numerator),this.denominator):new Q(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof Q?e:new Q(ee(e));return new Q(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof Q?e:new Q(ee(e));return new Q(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||Et.logWithError(`${e} is not an integer.`),e<=0&&Et.logWithError(`${e} is not positive.`),ht.set({precision:e+1,rounding:Wi[n]});let i=new ht(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return i.toFormat(i.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},n=1){return Number.isInteger(e)||Et.logWithError(`${e} is not an integer.`),e<0&&Et.logWithError(`${e} is negative.`),gn.DP=e,gn.RM=qi[n]||1,new gn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Gi=G("Raydium_amount"),co=kt(Ui);function zi(l,e){let t="0",n="0";if(l.includes(".")){let i=l.split(".");i.length===2?([t,n]=i,n=n.padEnd(e,"0")):Gi.logWithError(`invalid number string, num: ${l}`)}else t=l;return[t,n.slice(0,e)||n]}var xe=class extends Q{constructor(t,n,i=!0,c){let u=new Wt(0),r=Pn.pow(new Wt(t.decimals));if(i)u=ee(n);else{let s=new Wt(0),g=new Wt(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[d,P]=zi(n.toString(),t.decimals);s=ee(d),g=ee(P)}s=s.mul(r),u=s.add(g)}super(u,r);this.logger=G(c||"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 xe(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new xe(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,n,i=0){return super.toSignificant(t,n,i)}toFixed(t=this.token.decimals,n,i=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,n,i)}toExact(t={groupSeparator:""}){return co.DP=this.token.decimals,new co(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Xi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as lo}from"@solana/spl-token";var qt={chainId:101,address:Xi.default.toBase58(),programId:lo.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},De={chainId:101,address:"So11111111111111111111111111111111111111112",programId:lo.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 wn}from"@solana/web3.js";import{PublicKey as te,SystemProgram as mo,SYSVAR_RENT_PUBKEY as Yi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Qi}from"@solana/spl-token";function p({pubkey:l,isSigner:e=!1,isWritable:t=!0}){return{pubkey:l,isWritable:t,isSigner:e}}var Zi=[p({pubkey:Qi,isWritable:!1}),p({pubkey:mo.programId,isWritable:!1}),p({pubkey:Yi,isWritable:!1})];function po({publicKey:l,transformSol:e}){let t=An(l.toString());if(t instanceof te)return e&&t.equals(nt)?Ee:t;if(e&&t.toString()===nt.toBase58())return Ee;if(typeof t=="string"){if(t===te.default.toBase58())return te.default;try{return new te(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function An(l){try{return new te(l)}catch{return l}}var Oe=new te("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Re=new te("SysvarRent111111111111111111111111111111111"),Hi=new te("SysvarC1ock11111111111111111111111111111111"),$e=new te("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ji=new te("Sysvar1nstructions1111111111111111111111111"),fo=mo.programId,Mu=new te("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Fu=new te("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),vu=new te("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Vu=new te("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),_u=new te("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Eu=new te("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Du=new te("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Wu=new te("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),qu=new te("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Uu=new te("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Gu=new te("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ee=new te("So11111111111111111111111111111111111111112"),nt=te.default;var kn=class{constructor({mint:e,decimals:t,symbol:n,name:i,skipMint:c=!1,isToken2022:u=!1}){if(e===nt.toBase58()||e instanceof wn&&nt.equals(e)){this.decimals=De.decimals,this.symbol=De.symbol,this.name=De.name,this.mint=new wn(De.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=n||e.toString().substring(0,6),this.name=i||e.toString().substring(0,6),this.mint=c?wn.default:po({publicKey:e}),this.isToken2022=u}equals(e){return this===e?!0:this.mint.equals(e.mint)}},be=kn;be.WSOL=new kn(q(E({},De),{mint:De.address}));var Tn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},Ut=Tn;Ut.SOL=new Tn(qt);import $i from"bn.js";var yo=new Q(new $i(100)),Xe=class extends Q{toSignificant(e=5,t,n){return this.mul(yo).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(yo).toFixed(e,t,n)}};var Ji=G("Raydium_price"),Ne=class extends Q{constructor(t){let{baseToken:n,quoteToken:i,numerator:c,denominator:u}=t;super(c,u);this.baseToken=n,this.quoteToken=i,this.scalar=new Q(hn(n.decimals),hn(i.decimals))}get raw(){return new Q(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Ne({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Ji.logWithError("mul token not equals");let n=super.mul(t);return new Ne({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:n.denominator,numerator:n.numerator})}toSignificant(t=this.quoteToken.decimals,n,i){return this.adjusted.toSignificant(t,n,i)}toFixed(t=this.quoteToken.decimals,n,i){return this.adjusted.toFixed(t,n,i)}};import{merge as pC}from"lodash";import fc from"axios";var bo={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"},er=q(E({},bo),{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 Vc=G("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 ft,sendAndConfirmTransaction as Cn,SystemProgram as ar,Transaction as St,TransactionMessage as xt,VersionedTransaction as Kt}from"@solana/web3.js";import sr from"axios";import{PublicKey as In,AddressLookupTableAccount as dt}from"@solana/web3.js";async function Bn({connection:l,address:e,cluster:t="mainnet"}){let n=await ze(l,[...new Set(e.map(c=>c.toString()))].map(c=>new In(c))),i={};for(let c=0;c<e.length;c++){let u=n[c],r=e[c];if(!u)continue;let s=new dt({key:r,state:dt.deserialize(u.data)});i[r.toString()]=s,t==="devnet"?mt[r.toString()]=s:lt[r.toString()]=s}return i}var lt={},Sn=async l=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(lt[e])return lt;let t=new In(e),n=await l.getAccountInfo(t);return n&&(lt[e]=new dt({key:t,state:dt.deserialize(n.data)})),lt},mt={},xn=async l=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(mt[e])return mt;let t=new In(e),n=await l.getAccountInfo(t);return n&&(mt[e]=new dt({key:t,state:dt.deserialize(n.data)})),mt};var D={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 go,Keypair as Ao,PublicKey as tr,Transaction as wo,TransactionMessage as nr,VersionedTransaction as ko}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as or}from"@solana/spl-token";var Po=G("Raydium_txUtil"),To=1644;function Gt(l){let e=[],t=[];return l.microLamports&&(e.push(go.setComputeUnitPrice({microLamports:l.microLamports})),t.push(D.SetComputeUnitPrice)),l.units&&(e.push(go.setComputeUnitLimit({units:l.units})),t.push(D.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function pt(l,e){var n,i;let t=e!=null?e:"confirmed";return(i=await((n=l.getLatestBlockhash)==null?void 0:n.call(l,{commitment:t})))==null?void 0:i.blockhash}async function zt(l,e){return l.getSignatureStatuses([e]),new Promise((t,n)=>{let i=setTimeout(n,6e4);l.onSignature(e,c=>{if(clearTimeout(i),!c.err){t("");return}n(Object.assign(c.err,{txId:e}))},"confirmed")})}function Kn(l,e){l.length<1&&Po.logWithError(`no instructions provided: ${l.toString()}`),e.length<1&&Po.logWithError(`no signers provided:, ${e.toString()}`);let t=new wo;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...l);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<To}catch{return!1}}function ne(l,e){let[t,n]=tr.findProgramAddressSync(l,e);return{publicKey:t,nonce:n}}function It({instructions:l,payer:e,signers:t}){return Kn(l,[e,...t])}function Bt({instructions:l,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=Ao.generate().publicKey.toString()}){let c=new nr({payerKey:e,recentBlockhash:n,instructions:l}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new ko(c).serialize()).toString("base64").length<To}catch{return!1}}var ir=l=>Buffer.isBuffer(l)?l:l instanceof Uint8Array?Buffer.from(l.buffer,l.byteOffset,l.byteLength):Buffer.from(l),rr=l=>{let e=l.serialize({requireAllSignatures:!1,verifySignatures:!1});l instanceof ko&&(e=ir(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function ot(l){let e=[];return l.forEach(t=>{t instanceof wo&&(t.recentBlockhash||(t.recentBlockhash=or.toBase58()),t.feePayer||(t.feePayer=Ao.generate().publicKey)),e.push(rr(t))}),console.log("simulate tx string:",e),e}var Xt=2e3,Yt=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var n;let e=(await sr.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(n=e==null?void 0:e[15])!=null?n:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:n}=Gt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(ar.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new ft(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(D.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let n=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(n))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:n=[],instructionTypes:i=[],endInstructionTypes:c=[],lookupTableAddress:u=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...n),this.instructionTypes.push(...i),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...u.filter(r=>r!==ft.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:n}){return e===0?await this.buildV0(q(E({},t||{}),{lookupTableAddress:n})):this.build(t)}build(e){var n;let t=new St;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((n=this.owner)==null?void 0:n.signer)&&!this.signers.some(i=>i.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 i=>{var d;let{recentBlockHash:c,skipPreflight:u=!0,sendAndConfirm:r,notSendToRpc:s}=i||{},g=c!=null?c:await pt(this.connection,this.blockhashCommitment);if(t.recentBlockhash=g,this.signers.length&&t.sign(...this.signers),ot([t]),(d=this.owner)!=null&&d.isKeyPair)return{txId:r?await Cn(this.connection,t,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:u}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:u}),signedTx:t};if(this.signAllTransactions){let P=await this.signAllTransactions([t]);if(this.signers.length)for(let k of P)try{k.sign(...this.signers)}catch{}return{txId:s?"":await this.connection.sendRawTransaction(P[0].serialize(),{skipPreflight:u}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var g;let{extraPreBuildData:t=[],extInfo:n}=e,{transaction:i}=this.build(n),c=t.filter(d=>d.transaction.instructions.length>0),u=[i,...c.map(d=>d.transaction)],r=[this.signers,...c.map(d=>d.signers)],s=[...this.instructionTypes,...c.map(d=>d.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&r.forEach(d=>{d.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:u,signers:r,instructionTypes:s,execute:async d=>{var b;let{sequentially:P,onTxUpdate:k,skipTxCount:m=0,recentBlockHash:y,skipPreflight:f=!0}=d||{},a=y!=null?y:await pt(this.connection,this.blockhashCommitment);if((b=this.owner)!=null&&b.isKeyPair){if(P){let I=[],M=0;for(let F of u){if(++M,M<=m)continue;let K=await Cn(this.connection,F,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:f});I.push(K)}return{txIds:I,signedTxs:u}}return{txIds:await await Promise.all(u.map(async I=>(I.recentBlockhash=a,await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:f})))),signedTxs:u}}if(this.signAllTransactions){let I=u.map((F,K)=>(F.recentBlockhash=a,r[K].length&&F.sign(...r[K]),F));ot(I);let M=await this.signAllTransactions(I);if(P){let F=0,K=[],O=async()=>{if(!M[F])return;let C=await this.connection.sendRawTransaction(M[F].serialize(),{skipPreflight:f});K.push({txId:C,status:"sent",signedTx:M[F]}),k==null||k([...K]),F++;let L=!1,v=null,S=null,Y=Z=>{v!==null&&clearInterval(v),S!==null&&this.connection.removeSignatureListener(S);let U=K.findIndex(re=>re.txId===C);if(U>-1){if(K[U].status==="error"||K[U].status==="success")return;K[U].status=Z.err?"error":"success"}k==null||k([...K]),Z.err||O()};this.loopMultiTxStatus&&(v=setInterval(async()=>{var Z;if(L){clearInterval(v);return}try{let U=await this.connection.getTransaction(C,{commitment:"confirmed",maxSupportedTransactionVersion:0});U&&(L=!0,clearInterval(v),Y({err:((Z=U.meta)==null?void 0:Z.err)||null}),console.log("tx status from getTransaction:",C))}catch(U){L=!0,clearInterval(v),console.error("getTransaction timeout:",U,C)}},Xt)),S=this.connection.onSignature(C,Z=>{if(L){this.connection.removeSignatureListener(S);return}L=!0,Y(Z)},"confirmed"),this.connection.getSignatureStatus(C)};return await O(),{txIds:K.map(C=>C.txId),signedTxs:M}}else{let F=[];for(let K=0;K<M.length;K+=1){let O=await this.connection.sendRawTransaction(M[K].serialize(),{skipPreflight:f});F.push(O)}return{txIds:F,signedTxs:M}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:n}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:n||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:n})}async buildV0(e){var f;let y=e||{},{lookupTableCache:t={},lookupTableAddress:n=[],forerunCreate:i,recentBlockhash:c}=y,u=_e(y,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),r=E(E({},this.cluster==="devnet"?await xn(this.connection):await Sn(this.connection)),t),s=Array.from(new Set([...n,...this.lookupTableAddress])),g=[];for(let a of s)r[a]===void 0&&g.push(new ft(a));let d=await Bn({connection:this.connection,address:g});for(let[a,b]of Object.entries(d))r[a]=b;let P=i?ft.default.toBase58():c!=null?c:await pt(this.connection,this.blockhashCommitment),k=new xt({payerKey:this.feePayer,recentBlockhash:P,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(r));((f=this.owner)==null?void 0:f.signer)&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let m=new Kt(k);return m.sign(this.signers),{builder:this,transaction:m,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async a=>{var F;let{skipPreflight:b=!0,sendAndConfirm:I,notSendToRpc:M}=a||{};if(ot([m]),(F=this.owner)!=null&&F.isKeyPair){let K=await this.connection.sendTransaction(m,{skipPreflight:b});return I&&await zt(this.connection,K),{txId:K,signedTx:m}}if(this.signAllTransactions){let K=await this.signAllTransactions([m]);if(this.signers.length)for(let O of K)try{O.sign(this.signers)}catch{}return{txId:M?"":await this.connection.sendTransaction(K[0],{skipPreflight:b}),signedTx:K[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async buildV0MultiTx(e){var g;let{extraPreBuildData:t=[],buildProps:n}=e,{transaction:i}=await this.buildV0(n),c=t.filter(d=>d.builder.instructions.length>0),u=[i,...c.map(d=>d.transaction)],r=[this.signers,...c.map(d=>d.signers)],s=[...this.instructionTypes,...c.map(d=>d.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&r.forEach(d=>{d.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),u.forEach(async(d,P)=>{d.sign(r[P])}),{builder:this,transactions:u,signers:r,instructionTypes:s,buildProps:n,execute:async d=>{var f;let{sequentially:P,onTxUpdate:k,recentBlockHash:m,skipPreflight:y=!0}=d||{};if(m&&u.forEach(a=>a.message.recentBlockhash=m),ot(u),(f=this.owner)!=null&&f.isKeyPair){if(P){let a=[];for(let b of u){let I=await this.connection.sendTransaction(b,{skipPreflight:y});await zt(this.connection,I),a.push(I)}return{txIds:a,signedTxs:u}}return{txIds:await Promise.all(u.map(async a=>await this.connection.sendTransaction(a,{skipPreflight:y}))),signedTxs:u}}if(this.signAllTransactions){let a=await this.signAllTransactions(u);if(P){let b=0,I=[],M=async()=>{if(!a[b])return;let F=await this.connection.sendTransaction(a[b],{skipPreflight:y});I.push({txId:F,status:"sent",signedTx:a[b]}),k==null||k([...I]),b++;let K=!1,O=null,C=null,L=v=>{O!==null&&clearInterval(O),C!==null&&this.connection.removeSignatureListener(C);let S=I.findIndex(Y=>Y.txId===F);if(S>-1){if(I[S].status==="error"||I[S].status==="success")return;I[S].status=v.err?"error":"success"}k==null||k([...I]),v.err||M()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var v;if(K){clearInterval(O);return}try{let S=await this.connection.getTransaction(F,{commitment:"confirmed",maxSupportedTransactionVersion:0});S&&(K=!0,clearInterval(O),L({err:((v=S.meta)==null?void 0:v.err)||null}),console.log("tx status from getTransaction:",F))}catch(S){K=!0,clearInterval(O),console.error("getTransaction timeout:",S,F)}},Xt)),C=this.connection.onSignature(F,v=>{if(K){this.connection.removeSignatureListener(C);return}K=!0,L(v)},"confirmed"),this.connection.getSignatureStatus(F)};return M(),{txIds:[],signedTxs:a}}else{let b=[];for(let I=0;I<a.length;I+=1){let M=await this.connection.sendTransaction(a[I],{skipPreflight:y});b.push(M)}return{txIds:b,signedTxs:a}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async sizeCheckBuild(e){var k;let P=e||{},{splitIns:t=[],computeBudgetConfig:n}=P,i=_e(P,["splitIns","computeBudgetConfig"]),c=n?Gt(n):{instructions:[],instructionTypes:[]},u=this.signers.reduce((m,y)=>q(E({},m),{[y.publicKey.toBase58()]:y}),{}),r=[],s=[],g=[],d=0;if(this.allInstructions.forEach(m=>{let y=[...g,m],f=n?[...c.instructions,...y]:y,b=[...new Set(y.map(I=>I.keys.filter(M=>M.isSigner).map(M=>M.pubkey.toString())).flat()).values()].map(I=>new ft(I));if(m!==t[d]&&g.length<12&&(It({instructions:f,payer:this.feePayer,signers:b})||It({instructions:y,payer:this.feePayer,signers:b})))g.push(m);else{if(g.length===0)throw Error("item ins too big");d+=m===t[d]?1:0,It({instructions:n?[...c.instructions,...g]:[...g],payer:this.feePayer,signers:b})?r.push(new St().add(...c.instructions,...g)):r.push(new St().add(...g)),s.push(Array.from(new Set(g.map(I=>I.keys.filter(M=>M.isSigner).map(M=>M.pubkey.toString())).flat())).map(I=>u[I]).filter(I=>I!==void 0)),g=[m]}}),g.length>0){let y=[...new Set(g.map(f=>f.keys.filter(a=>a.isSigner).map(a=>a.pubkey.toString())).flat()).values()].map(f=>u[f]).filter(f=>f!==void 0);It({instructions:n?[...c.instructions,...g]:[...g],payer:this.feePayer,signers:y.map(f=>f.publicKey)})?r.push(new St().add(...c.instructions,...g)):r.push(new St().add(...g)),s.push(y)}return r.forEach(m=>m.feePayer=this.feePayer),(k=this.owner)!=null&&k.signer&&s.forEach(m=>{m.some(y=>y.publicKey.equals(this.owner.publicKey))||m.push(this.owner.signer)}),{builder:this,transactions:r,signers:s,instructionTypes:this.instructionTypes,execute:async m=>{var F;let{sequentially:y,onTxUpdate:f,skipTxCount:a=0,recentBlockHash:b,skipPreflight:I=!0}=m||{},M=b!=null?b:await pt(this.connection,this.blockhashCommitment);if(r.forEach(async(K,O)=>{K.recentBlockhash=M,s[O].length&&K.sign(...s[O])}),ot(r),(F=this.owner)!=null&&F.isKeyPair){if(y){let K=0,O=[];for(let C of r){if(++K,K<=a){O.push("tx skipped");continue}let L=await Cn(this.connection,C,this.signers.find(v=>v.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});O.push(L)}return{txIds:O,signedTxs:r}}return{txIds:await Promise.all(r.map(async K=>await this.connection.sendRawTransaction(K.serialize(),{skipPreflight:I}))),signedTxs:r}}if(this.signAllTransactions){let K=await this.signAllTransactions(r.slice(a,r.length)),O=[...r.slice(0,a),...K];if(y){let C=0,L=[],v=async()=>{if(!O[C])return;C<a&&(L.push({txId:"",status:"success",signedTx:O[C]}),f==null||f([...L]),C++,v());let S=await this.connection.sendRawTransaction(O[C].serialize(),{skipPreflight:I});L.push({txId:S,status:"sent",signedTx:O[C]}),f==null||f([...L]),C++;let Y=!1,Z=null,U=null,re=$=>{Z!==null&&clearInterval(Z),U!==null&&this.connection.removeSignatureListener(U);let ke=L.findIndex(Ue=>Ue.txId===S);if(ke>-1){if(L[ke].status==="error"||L[ke].status==="success")return;L[ke].status=$.err?"error":"success"}f==null||f([...L]),$.err||v()};this.loopMultiTxStatus&&(Z=setInterval(async()=>{var $;if(Y){clearInterval(Z);return}try{let ke=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:0});ke&&(Y=!0,clearInterval(Z),re({err:(($=ke.meta)==null?void 0:$.err)||null}),console.log("tx status from getTransaction:",S))}catch(ke){Y=!0,clearInterval(Z),console.error("getTransaction timeout:",ke,S)}},Xt)),U=this.connection.onSignature(S,$=>{if(Y){this.connection.removeSignatureListener(U);return}Y=!0,re($)},"confirmed"),this.connection.getSignatureStatus(S)};return await v(),{txIds:L.map(S=>S.txId),signedTxs:O}}else{let C=[];for(let L=0;L<O.length;L+=1){let v=await this.connection.sendRawTransaction(O[L].serialize(),{skipPreflight:I});C.push(v)}return{txIds:C,signedTxs:O}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuildV0(e){var F;let M=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:i={},lookupTableAddress:c=[],insCountLimit:u=12}=M,r=_e(M,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),s=E(E({},this.cluster==="devnet"?await xn(this.connection):await Sn(this.connection)),i),g=Array.from(new Set([...this.lookupTableAddress,...c])),d=[];for(let K of g)s[K]===void 0&&d.push(new ft(K));let P=await Bn({connection:this.connection,address:d});for(let[K,O]of Object.entries(P))s[K]=O;let k=t?Gt(t):{instructions:[],instructionTypes:[]},m=await pt(this.connection,this.blockhashCommitment),y=this.signers.reduce((K,O)=>q(E({},K),{[O.publicKey.toBase58()]:O}),{}),f=[],a=[],b=[],I=0;if(this.allInstructions.forEach(K=>{let O=[...b,K],C=t?[...k.instructions,...O]:O;if(K!==n[I]&&b.length<u&&(Bt({instructions:C,payer:this.feePayer,lookupTableAddressAccount:s})||Bt({instructions:O,payer:this.feePayer,lookupTableAddressAccount:s})))b.push(K);else{if(b.length===0)throw Error("item ins too big");I+=K===n[I]?1:0;let L={};for(let v of[...new Set(g)])s[v]!==void 0&&(L[v]=s[v]);if(t&&Bt({instructions:[...k.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:m})){let v=new xt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...k.instructions,...b]}).compileToV0Message(Object.values(s));f.push(new Kt(v))}else{let v=new xt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...b]}).compileToV0Message(Object.values(s));f.push(new Kt(v))}a.push(Array.from(new Set(b.map(v=>v.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat())).map(v=>y[v]).filter(v=>v!==void 0)),b=[K]}}),b.length>0){let O=[...new Set(b.map(C=>C.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat()).values()].map(C=>y[C]).filter(C=>C!==void 0);if(t&&Bt({instructions:[...k.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:m})){let C=new xt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...k.instructions,...b]}).compileToV0Message(Object.values(s));f.push(new Kt(C))}else{let C=new xt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...b]}).compileToV0Message(Object.values(s));f.push(new Kt(C))}a.push(O)}return(F=this.owner)!=null&&F.signer&&a.forEach(K=>{K.some(O=>O.publicKey.equals(this.owner.publicKey))||K.push(this.owner.signer)}),f.forEach((K,O)=>{K.sign(a[O])}),{builder:this,transactions:f,buildProps:e,signers:a,instructionTypes:this.instructionTypes,execute:async K=>{var Y;let{sequentially:O,onTxUpdate:C,skipTxCount:L=0,recentBlockHash:v,skipPreflight:S=!0}=K||{};if(f.map(async(Z,U)=>{a[U].length&&Z.sign(a[U]),v&&(Z.message.recentBlockhash=v)}),ot(f),(Y=this.owner)!=null&&Y.isKeyPair){if(O){let Z=0,U=[];for(let re of f){if(++Z,Z<=L){console.log("skip tx: ",Z),U.push("tx skipped");continue}let $=await this.connection.sendTransaction(re,{skipPreflight:S});await zt(this.connection,$),U.push($)}return{txIds:U,signedTxs:f}}return{txIds:await Promise.all(f.map(async Z=>await this.connection.sendTransaction(Z,{skipPreflight:S}))),signedTxs:f}}if(this.signAllTransactions){let Z=await this.signAllTransactions(f.slice(L,f.length)),U=[...f.slice(0,L),...Z];if(O){let re=0,$=[],ke=async()=>{if(!U[re])return;if(re<L){$.push({txId:"",status:"success",signedTx:U[re]}),C==null||C([...$]),re++,ke();return}let Ue=await this.connection.sendTransaction(U[re],{skipPreflight:S});$.push({txId:Ue,status:"sent",signedTx:U[re]}),C==null||C([...$]),re++;let At=!1,ct=null,Vt=null,no=tt=>{ct!==null&&clearInterval(ct),Vt!==null&&this.connection.removeSignatureListener(Vt);let Ge=$.findIndex(Ci=>Ci.txId===Ue);if(Ge>-1){if($[Ge].status==="error"||$[Ge].status==="success")return;$[Ge].status=tt.err?"error":"success"}C==null||C([...$]),tt.err||ke()};this.loopMultiTxStatus&&(ct=setInterval(async()=>{var tt;if(At){clearInterval(ct);return}try{let Ge=await this.connection.getTransaction(Ue,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ge&&(At=!0,clearInterval(ct),no({err:((tt=Ge.meta)==null?void 0:tt.err)||null}),console.log("tx status from getTransaction:",Ue))}catch(Ge){At=!0,clearInterval(ct),console.error("getTransaction timeout:",Ge,Ue)}},Xt)),Vt=this.connection.onSignature(Ue,tt=>{if(At){this.connection.removeSignatureListener(Vt);return}At=!0,no(tt)},"confirmed"),this.connection.getSignatureStatus(Ue)};return ke(),{txIds:[],signedTxs:U}}else{let re=[];for(let $=0;$<U.length;$+=1){let ke=await this.connection.sendTransaction(U[$],{skipPreflight:S});re.push(ke)}return{txIds:re,signedTxs:U}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}};var Rn=(...l)=>l.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),Te=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=G(t)}createTxBuilder(e){return this.scope.checkOwner(),new Yt({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(Rn(e))}logInfo(...e){this.logger.info(Rn(e))}logAndCreateError(...e){let t=Rn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Om,SystemProgram as Mm}from"@solana/web3.js";import Vm from"bn.js";import{createCloseAccountInstruction as Wm,createInitializeAccountInstruction as qm,createTransferInstruction as Um,TOKEN_PROGRAM_ID as Gm}from"@solana/spl-token";import{Keypair as Am,PublicKey as wm}from"@solana/web3.js";import hm from"bn.js";import{TOKEN_PROGRAM_ID as Sm}from"@solana/spl-token";import{PublicKey as wr}from"@solana/web3.js";import Ko,{isBN as Co}from"bn.js";import{bits as ur,BitStructure as Bl,blob as cr,Blob as Sl,cstr as xl,f32 as Kl,f32be as Cl,f64 as Rl,f64be as Ll,greedy as Ol,Layout as lr,ns64 as Nl,ns64be as Ml,nu64 as mr,nu64be as Fl,offset as dr,s16 as vl,s16be as Vl,s24 as _l,s24be as El,s32 as pr,s32be as Dl,s40 as Wl,s40be as ql,s48 as Ul,s48be as Gl,s8 as zl,seq as fr,struct as Xl,Structure as yr,u16 as br,u16be as Yl,u24 as Ql,u24be as Zl,u32 as gr,u32be as Hl,u40 as jl,u40be as $l,u48 as Jl,u48be as em,u8 as Pr,UInt as Ar,union as tm,Union as nm,unionLayoutDiscriminator as om,utf8 as im}from"@solana/buffer-layout";var Qt=lr,ho=yr;var Ln=Ar;var Io=Pr,fe=br;var Zt=gr;var Bo=mr;var ce=pr;var So=fr;var W=cr;var On=ur,xo=dr;var rt=class extends Qt{constructor(t,n,i){super(t,i);this.blob=W(t),this.signed=n}decode(t,n=0){let i=new Ko(this.blob.decode(t,n),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(t,n,i=0){return typeof t=="number"&&(t=new Ko(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,i)}},Ht=class extends Qt{constructor(t){super(8,t);this._lower=On(Zt(),!1),this._upper=On(Zt(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,n=0){let i=this._lower.decode(t,n),c=this._upper.decode(t,n+this._lower.span);return E(E({},i),c)}encode(t,n,i=0){return this._lower.encode(t,n,i)+this._upper.encode(t,n,i+this._lower.span)}};function x(l){return new Ln(1,l)}function oe(l){return new Ln(4,l)}function o(l){return new rt(8,!1,l)}function _(l){return new rt(16,!1,l)}function Ro(l){return new rt(1,!0,l)}function yt(l){return new rt(8,!0,l)}function Lo(l){return new rt(16,!0,l)}var Ct=class extends Qt{constructor(t,n,i,c){super(t.span,c);this.layout=t,this.decoder=n,this.encoder=i}decode(t,n){return this.decoder(this.layout.decode(t,n))}encode(t,n,i){return this.layout.encode(this.encoder(t),n,i)}getSpan(t,n){return this.layout.getSpan(t,n)}};function A(l){return new Ct(W(32),e=>new wr(e),e=>e.toBuffer(),l)}function ae(l){return new Ct(Io(),kr,Tr,l)}function kr(l){if(l===0)return!1;if(l===1)return!0;throw new Error("Invalid bool: "+l)}function Tr(l){return l?1:0}function Oo(l,e){let t=Zt("length"),n=B([t,N(l,xo(t,-t.span),"values")]);return new Ct(n,({values:i})=>i,i=>({values:i}),e)}var Nn=class extends ho{decode(e,t){return super.decode(e,t)}};function B(l,e,t){return new Nn(l,e,t)}function N(l,e,t){let n,i=typeof e=="number"?e:Co(e)?e.toNumber():new Proxy(e,{get(c,u){if(!n){let r=Reflect.get(c,"count");n=Co(r)?r.toNumber():r,Reflect.set(c,"count",n)}return Reflect.get(c,u)},set(c,u,r){return u==="count"&&(n=r),Reflect.set(c,u,r)}});return So(l,i,t)}var jt=B([A("mint"),A("owner"),o("amount"),oe("delegateOption"),A("delegate"),x("state"),oe("isNativeOption"),o("isNative"),o("delegatedAmount"),oe("closeAuthorityOption"),A("closeAuthority")]);import{PublicKey as cP,SystemProgram as lP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as dP}from"@solana/spl-token";import{PublicKey as Ir}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Br}from"@solana/spl-token";function z(l,e,t){return ne([l.toBuffer(),(t!=null?t:Br).toBuffer(),e.toBuffer()],new Ir("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as V}from"@solana/web3.js";var Mn=new V("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Fn=new V("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),vn=new V("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Jt=new V("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Sr=new V("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Mo=new V("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Vn=new V("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),_n=new V("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),xr=new V("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),en=new V("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),En=new V("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Fo=new V("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),vo=new V("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Rt=new V("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Kr=new V("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Vo=new V("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Cr=new V("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Rr=new V("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Lr=new V("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Or=new V("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),tn=new V("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),_o=new V("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Nr=new V("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Eo=new V("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Do=new V("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Wo=new V("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Mr=new V("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),kd=new V("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Td=new V("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Fr=new V("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vr=new V("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),Lt={IDO_PROGRAM_ID_V1:Cr,IDO_PROGRAM_ID_V2:Rr,IDO_PROGRAM_ID_V3:Lr,IDO_PROGRAM_ID_V4:Or},he={AMM_V4:_n,AMM_STABLE:xr,CLMM_PROGRAM_ID:En,CLMM_LOCK_PROGRAM_ID:Fo,CLMM_LOCK_AUTH_ID:vo,FARM_PROGRAM_ID_V3:Mn,FARM_PROGRAM_ID_V4:Fn,FARM_PROGRAM_ID_V5:vn,FARM_PROGRAM_ID_V6:Jt,OPEN_BOOK_PROGRAM:Mo,SERUM_PROGRAM_ID_V3:Vn,UTIL1216:Sr,Router:Kr,CREATE_CPMM_POOL_PROGRAM:tn,CREATE_CPMM_POOL_AUTH:_o,CREATE_CPMM_POOL_FEE_ACC:Nr,LOCK_CPMM_PROGRAM:Eo,LOCK_CPMM_AUTH:Do,LAUNCHPAD_PROGRAM:Wo,LAUNCHPAD_AUTH:Mr,LAUNCHPAD_PLATFORM:Fr,LAUNCHPAD_CONFIG:vr,FEE_DESTINATION_ID:Vo,MODEL_DATA_PUBKEY:Rt},Je={OPEN_BOOK_PROGRAM:new V("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new V("Ray1111111111111111111111111111111111111111"),AMM_V4:new V("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new V("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new V("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new V("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new V("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new V("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new V("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new V("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new V("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new V("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:V.default,Router:new V("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new V("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new V("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new V("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new V("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new V("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new V("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new V("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new V("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new V("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new V("Ray1111111111111111111111111111111111111111")};import TP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as qy,TOKEN_2022_PROGRAM_ID as Uy,TOKEN_PROGRAM_ID as Gy}from"@solana/spl-token";import{PublicKey as Xy}from"@solana/web3.js";import Qy from"bn.js";import Hy from"decimal.js";import{TOKEN_PROGRAM_ID as vd}from"@solana/spl-token";import{PublicKey as Dd}from"@solana/web3.js";var Vr=B([oe("mintAuthorityOption"),A("mintAuthority"),o("supply"),x("decimals"),x("isInitialized"),oe("freezeAuthorityOption"),A("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Gn,TOKEN_2022_PROGRAM_ID as se,TOKEN_PROGRAM_ID as j}from"@solana/spl-token";import{Keypair as an,PublicKey as R,SystemProgram as He,TransactionInstruction as ue}from"@solana/web3.js";import sn from"bn.js";import X from"bn.js";var le=new X(1).shln(64);var _r=new X(1).shln(128),at=new X(1).shln(64).subn(1),Er=new X(1).shln(128).subn(1),Ye=-443636,Qe=443636,Me=new X("4295048016"),Fe=new X("79226673521066979257578248091"),qo=new X("59543866431248"),Uo=new X("184467440737095516"),Go=new X("15793534762490258745"),zo=16,nn=512,Be=60,$d=new X("18446743708227953217"),Xo=[{bit:0,factor:new X("fffcb933bd6fb800",16)},{bit:1,factor:new X("fff97272373d4000",16)},{bit:2,factor:new X("fff2e50f5f657000",16)},{bit:3,factor:new X("ffe5caca7e10f000",16)},{bit:4,factor:new X("ffcb9843d60f7000",16)},{bit:5,factor:new X("ff973b41fa98e800",16)},{bit:6,factor:new X("ff2ea16466c9b000",16)},{bit:7,factor:new X("fe5dee046a9a3800",16)},{bit:8,factor:new X("fcbe86c7900bb000",16)},{bit:9,factor:new X("f987a7253ac65800",16)},{bit:10,factor:new X("f3392b0822bb6000",16)},{bit:11,factor:new X("e7159475a2caf000",16)},{bit:12,factor:new X("d097f3bdfd2f2000",16)},{bit:13,factor:new X("a9f746462d9f8000",16)},{bit:14,factor:new X("70d869a156f31c00",16)},{bit:15,factor:new X("31be135f97ed3200",16)},{bit:16,factor:new X("9aa508b5b85a500",16)},{bit:17,factor:new X("5d6af8dedc582c",16)},{bit:18,factor:new X("2216e584f5fa",16)}];var Ot=3,Yo=100;var Qo=10,Zo=100,bt=14;var H=new X(0),Ie=new X(1),Jd=new X(-1);var ep=new X("18446744073700000000");var Dr=B([W(8),x("bump"),fe("index"),A("owner"),oe("protocolFeeRate"),oe("tradeFeeRate"),fe("tickSpacing"),oe("fundFeeRate"),N(oe(),1),A("fundOwner"),N(o(),3)]),Wr=B([oe("blockTimestamp"),yt("tickCumulative"),N(o(),4)]),Ho=B([W(8),ae("initialized"),o("recentEpoch"),fe("observationIndex"),A("poolId"),N(Wr,Yo,"observations"),N(o(),4)]),qr=B([fe("filterPeriod"),fe("decayPeriod"),fe("reductionFactor"),oe("dynamicFeeControl"),oe("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),oe("volatilityReference"),oe("volatilityAccumulator"),o("lastUpdateTimestamp"),N(x(),46)]),Ur=B([x("state"),o("openTime"),o("endTime"),o("lastUpdateTime"),_("emissionsPerSecondX64"),o("totalEmissioned"),o("claimed"),A("mint"),A("vault"),A("creator"),_("growthGlobalX64")]),Dn=B([W(8),x("bump"),A("configId"),A("creator"),A("mintA"),A("mintB"),A("vaultA"),A("vaultB"),A("observationId"),x("mintDecimalsA"),x("mintDecimalsB"),fe("tickSpacing"),_("liquidity"),_("sqrtPriceX64"),ce("tickCurrent"),oe(),_("feeGrowthGlobalX64A"),_("feeGrowthGlobalX64B"),o("protocolFeesTokenA"),o("protocolFeesTokenB"),N(_(),4),x("status"),x("feeOn"),W(6),N(Ur,Ot,"rewardInfos"),W(8*16,"tickArrayBitmap"),N(o(),4),o("fundFeesTokenA"),o("fundFeesTokenB"),o("startTime"),o("recentEpoch"),qr.replicate("dynamicFeeInfo"),N(o(),46)]),Gr=B([_("growthInsideLastX64"),o("rewardAmountOwed")]),zr=B([W(8),x("bump"),A("nftMint"),A("poolId"),ce("tickLower"),ce("tickUpper"),_("liquidity"),_("feeGrowthInsideLastX64A"),_("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),N(Gr,Ot,"rewardInfos"),o("recentEpoch"),N(o(),7)]),ip=B([W(8),x("bump"),A("poolId"),ce("tickLower"),ce(