UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 140 kB
var xi=Object.defineProperty,Ki=Object.defineProperties;var Ci=Object.getOwnPropertyDescriptors;var Vt=Object.getOwnPropertySymbols;var oo=Object.prototype.hasOwnProperty,io=Object.prototype.propertyIsEnumerable;var no=(l,e,t)=>e in l?xi(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t,E=(l,e)=>{for(var t in e||(e={}))oo.call(e,t)&&no(l,t,e[t]);if(Vt)for(var t of Vt(e))io.call(e,t)&&no(l,t,e[t]);return l},q=(l,e)=>Ki(l,Ci(e));var _e=(l,e)=>{var t={};for(var n in l)oo.call(l,n)&&e.indexOf(n)<0&&(t[n]=l[n]);if(l!=null&&Vt)for(var n of Vt(l))e.indexOf(n)<0&&io.call(l,n)&&(t[n]=l[n]);return t};import{PublicKey as LC,SystemProgram as OC}from"@solana/web3.js";import{createTransferInstruction as MC,TOKEN_PROGRAM_ID as FC,TOKEN_2022_PROGRAM_ID as vC,createAssociatedTokenAccountIdempotentInstruction as VC,createSyncNativeInstruction as EC,createTransferCheckedInstruction as DC}from"@solana/spl-token";import Ls from"bn.js";import UC from"decimal.js";import{PublicKey as Oi}from"@solana/web3.js";import{get as ro,set as Ri}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}},ao={},Li={};function G(l){let e=ro(ao,l);if(!e){let t=ro(Li,l);e=new fn({name:l,logLevel:t}),Ri(ao,l,e)}return e}import{MINT_SIZE as qs,TOKEN_PROGRAM_ID as Us,getTransferFeeConfig as Gs,unpackMint as zs}from"@solana/spl-token";var yn=G("Raydium_accountInfo_util");async function Ge(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 Oi(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 RK from"decimal.js";import Di from"big.js";import Dt from"bn.js";import Ni from"toformat";var Mi=Ni,kt=Mi;import Et from"big.js";import vi from"bn.js";import Vi from"decimal.js-light";import Tt from"bn.js";var so=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>=so||l<=-so)&&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 _t=G("module/fraction"),gn=kt(Et),ht=kt(Vi),_i={[0]:ht.ROUND_DOWN,[1]:ht.ROUND_HALF_UP,[2]:ht.ROUND_UP},Ei={[0]:Et.roundDown,[1]:Et.roundHalfUp,[2]:Et.roundUp},Q=class{constructor(e,t=new vi(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)||_t.logWithError(`${e} is not an integer.`),e<=0&&_t.logWithError(`${e} is not positive.`),ht.set({precision:e+1,rounding:_i[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)||_t.logWithError(`${e} is not an integer.`),e<0&&_t.logWithError(`${e} is negative.`),gn.DP=e,gn.RM=Ei[n]||1,new gn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Wi=G("Raydium_amount"),uo=kt(Di);function qi(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")):Wi.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 Dt(0),r=Pn.pow(new Dt(t.decimals));if(i)u=ee(n);else{let s=new Dt(0),g=new Dt(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[d,P]=qi(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 uo.DP=this.token.decimals,new uo(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Ui}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as co}from"@solana/spl-token";var Wt={chainId:101,address:Ui.default.toBase58(),programId:co.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Ee={chainId:101,address:"So11111111111111111111111111111111111111112",programId:co.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 lo,SYSVAR_RENT_PUBKEY as Gi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as zi}from"@solana/spl-token";function p({pubkey:l,isSigner:e=!1,isWritable:t=!0}){return{pubkey:l,isWritable:t,isSigner:e}}var Xi=[p({pubkey:zi,isWritable:!1}),p({pubkey:lo.programId,isWritable:!1}),p({pubkey:Gi,isWritable:!1})];function mo({publicKey:l,transformSol:e}){let t=An(l.toString());if(t instanceof te)return e&&t.equals(nt)?ze:t;if(e&&t.toString()===nt.toBase58())return ze;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 Le=new te("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Oe=new te("SysvarRent111111111111111111111111111111111"),hu=new te("SysvarC1ock11111111111111111111111111111111"),$e=new te("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Yi=new te("Sysvar1nstructions1111111111111111111111111"),Qi=lo.programId,Iu=new te("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Bu=new te("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Su=new te("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),xu=new te("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ku=new te("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Cu=new te("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ru=new te("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Lu=new te("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ou=new te("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Nu=new te("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Mu=new te("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ze=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=Ee.decimals,this.symbol=Ee.symbol,this.name=Ee.name,this.mint=new wn(Ee.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:mo({publicKey:e}),this.isToken2022=u}equals(e){return this===e?!0:this.mint.equals(e.mint)}},be=kn;be.WSOL=new kn(q(E({},Ee),{mint:Ee.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}},qt=Tn;qt.SOL=new Tn(Wt);import Zi from"bn.js";var po=new Q(new Zi(100)),Xe=class extends Q{toSignificant(e=5,t,n){return this.mul(po).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(po).toFixed(e,t,n)}};var Hi=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&&Hi.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 WS}from"lodash";import ic from"axios";var fo={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},ji=q(E({},fo),{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 xc=G("Raydium_Api");import{PublicKey as Xm,SystemProgram as Ym}from"@solana/web3.js";import{AccountLayout as $m,createAssociatedTokenAccountIdempotentInstruction as Jm,TOKEN_PROGRAM_ID as ed,TOKEN_2022_PROGRAM_ID as td}from"@solana/spl-token";import{PublicKey as ft,sendAndConfirmTransaction as Cn,SystemProgram as or,Transaction as St,TransactionMessage as xt,VersionedTransaction as Kt}from"@solana/web3.js";import ir 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 Ge(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 yo,Keypair as go,PublicKey as $i,Transaction as Po,TransactionMessage as Ji,VersionedTransaction as Ao}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as er}from"@solana/spl-token";var bo=G("Raydium_txUtil"),wo=1644;function Ut(l){let e=[],t=[];return l.microLamports&&(e.push(yo.setComputeUnitPrice({microLamports:l.microLamports})),t.push(D.SetComputeUnitPrice)),l.units&&(e.push(yo.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 Gt(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&&bo.logWithError(`no instructions provided: ${l.toString()}`),e.length<1&&bo.logWithError(`no signers provided:, ${e.toString()}`);let t=new Po;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...l);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<wo}catch{return!1}}function ne(l,e){let[t,n]=$i.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=go.generate().publicKey.toString()}){let c=new Ji({payerKey:e,recentBlockhash:n,instructions:l}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Ao(c).serialize()).toString("base64").length<wo}catch{return!1}}var tr=l=>Buffer.isBuffer(l)?l:l instanceof Uint8Array?Buffer.from(l.buffer,l.byteOffset,l.byteLength):Buffer.from(l),nr=l=>{let e=l.serialize({requireAllSignatures:!1,verifySignatures:!1});l instanceof Ao&&(e=tr(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 Po&&(t.recentBlockhash||(t.recentBlockhash=er.toBase58()),t.feePayer||(t.feePayer=go.generate().publicKey)),e.push(nr(t))}),console.log("simulate tx string:",e),e}var zt=2e3,Xt=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 ir.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}=Ut(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(or.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)}},zt)),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 Gt(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 Gt(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)}},zt)),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?Ut(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 we=L.findIndex(qe=>qe.txId===S);if(we>-1){if(L[we].status==="error"||L[we].status==="success")return;L[we].status=$.err?"error":"success"}f==null||f([...L]),$.err||v()};this.loopMultiTxStatus&&(Z=setInterval(async()=>{var $;if(Y){clearInterval(Z);return}try{let we=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:0});we&&(Y=!0,clearInterval(Z),re({err:(($=we.meta)==null?void 0:$.err)||null}),console.log("tx status from getTransaction:",S))}catch(we){Y=!0,clearInterval(Z),console.error("getTransaction timeout:",we,S)}},zt)),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?Ut(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 Gt(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,$=[],we=async()=>{if(!U[re])return;if(re<L){$.push({txId:"",status:"success",signedTx:U[re]}),C==null||C([...$]),re++,we();return}let qe=await this.connection.sendTransaction(U[re],{skipPreflight:S});$.push({txId:qe,status:"sent",signedTx:U[re]}),C==null||C([...$]),re++;let At=!1,ct=null,vt=null,to=tt=>{ct!==null&&clearInterval(ct),vt!==null&&this.connection.removeSignatureListener(vt);let Ue=$.findIndex(Si=>Si.txId===qe);if(Ue>-1){if($[Ue].status==="error"||$[Ue].status==="success")return;$[Ue].status=tt.err?"error":"success"}C==null||C([...$]),tt.err||we()};this.loopMultiTxStatus&&(ct=setInterval(async()=>{var tt;if(At){clearInterval(ct);return}try{let Ue=await this.connection.getTransaction(qe,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ue&&(At=!0,clearInterval(ct),to({err:((tt=Ue.meta)==null?void 0:tt.err)||null}),console.log("tx status from getTransaction:",qe))}catch(Ue){At=!0,clearInterval(ct),console.error("getTransaction timeout:",Ue,qe)}},zt)),vt=this.connection.onSignature(qe,tt=>{if(At){this.connection.removeSignatureListener(vt);return}At=!0,to(tt)},"confirmed"),this.connection.getSignatureStatus(qe)};return we(),{txIds:[],signedTxs:U}}else{let re=[];for(let $=0;$<U.length;$+=1){let we=await this.connection.sendTransaction(U[$],{skipPreflight:S});re.push(we)}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(", "),Ie=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=G(t)}createTxBuilder(e){return this.scope.checkOwner(),new Xt({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 hm,SystemProgram as Bm}from"@solana/web3.js";import Km from"bn.js";import{createCloseAccountInstruction as Om,createInitializeAccountInstruction as Nm,createTransferInstruction as Mm,TOKEN_PROGRAM_ID as Fm}from"@solana/spl-token";import{Keypair as lm,PublicKey as mm}from"@solana/web3.js";import fm from"bn.js";import{TOKEN_PROGRAM_ID as gm}from"@solana/spl-token";import{PublicKey as br}from"@solana/web3.js";import Bo,{isBN as So}from"bn.js";import{bits as rr,BitStructure as yl,blob as ar,Blob as bl,cstr as gl,f32 as Pl,f32be as Al,f64 as wl,f64be as kl,greedy as Tl,Layout as sr,ns64 as hl,ns64be as Il,nu64 as Bl,nu64be as Sl,offset as ur,s16 as xl,s16be as Kl,s24 as Cl,s24be as Rl,s32 as cr,s32be as Ll,s40 as Ol,s40be as Nl,s48 as Ml,s48be as Fl,s8 as vl,seq as lr,struct as Vl,Structure as mr,u16 as dr,u16be as _l,u24 as El,u24be as Dl,u32 as pr,u32be as Wl,u40 as ql,u40be as Ul,u48 as Gl,u48be as zl,u8 as fr,UInt as yr,union as Xl,Union as Yl,unionLayoutDiscriminator as Ql,utf8 as Zl}from"@solana/buffer-layout";var Yt=sr,ko=mr;var Ln=yr;var To=fr,fe=dr;var Qt=pr;var ce=cr;var ho=lr;var W=ar;var On=rr,Io=ur;var rt=class extends Yt{constructor(t,n,i){super(t,i);this.blob=W(t),this.signed=n}decode(t,n=0){let i=new Bo(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 Bo(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,i)}},Zt=class extends Yt{constructor(t){super(8,t);this._lower=On(Qt(),!1),this._upper=On(Qt(),!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 V(l){return new rt(16,!1,l)}function xo(l){return new rt(1,!0,l)}function yt(l){return new rt(8,!0,l)}function Ko(l){return new rt(16,!0,l)}var Ct=class extends Yt{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 br(e),e=>e.toBuffer(),l)}function ae(l){return new Ct(To(),gr,Pr,l)}function gr(l){if(l===0)return!1;if(l===1)return!0;throw new Error("Invalid bool: "+l)}function Pr(l){return l?1:0}function Co(l,e){let t=Qt("length"),n=B([t,N(l,Io(t,-t.span),"values")]);return new Ct(n,({values:i})=>i,i=>({values:i}),e)}var Nn=class extends ko{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:So(e)?e.toNumber():new Proxy(e,{get(c,u){if(!n){let r=Reflect.get(c,"count");n=So(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 ho(l,i,t)}var Ht=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 oP,SystemProgram as iP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as aP}from"@solana/spl-token";import{PublicKey as wr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as kr}from"@solana/spl-token";function z(l,e,t){return ne([l.toBuffer(),(t!=null?t:kr).toBuffer(),e.toBuffer()],new wr("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as _}from"@solana/web3.js";var Mn=new _("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Fn=new _("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),vn=new _("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),$t=new _("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Tr=new _("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Lo=new _("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Vn=new _("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),_n=new _("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),hr=new _("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Jt=new _("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),En=new _("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Oo=new _("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),No=new _("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Rt=new _("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ir=new _("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Mo=new _("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),en=new _("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Fo=new _("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Br=new _("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),vo=new _("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Vo=new _("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),_o=new _("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Sr=new _("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),dd=new _("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),pd=new _("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),xr=new _("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Kr=new _("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),ke={AMM_V4:_n,AMM_STABLE:hr,CLMM_PROGRAM_ID:En,CLMM_LOCK_PROGRAM_ID:Oo,CLMM_LOCK_AUTH_ID:No,FARM_PROGRAM_ID_V3:Mn,FARM_PROGRAM_ID_V4:Fn,FARM_PROGRAM_ID_V5:vn,FARM_PROGRAM_ID_V6:$t,OPEN_BOOK_PROGRAM:Lo,SERUM_PROGRAM_ID_V3:Vn,UTIL1216:Tr,Router:Ir,CREATE_CPMM_POOL_PROGRAM:en,CREATE_CPMM_POOL_AUTH:Fo,CREATE_CPMM_POOL_FEE_ACC:Br,LOCK_CPMM_PROGRAM:vo,LOCK_CPMM_AUTH:Vo,LAUNCHPAD_PROGRAM:_o,LAUNCHPAD_AUTH:Sr,LAUNCHPAD_PLATFORM:xr,LAUNCHPAD_CONFIG:Kr,FEE_DESTINATION_ID:Mo,MODEL_DATA_PUBKEY:Rt},Je={OPEN_BOOK_PROGRAM:new _("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new _("Ray1111111111111111111111111111111111111111"),AMM_V4:new _("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new _("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new _("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new _("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new _("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new _("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new _("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new _("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new _("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new _("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:_.default,Router:new _("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new _("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new _("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new _("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new _("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new _("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new _("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new _("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new _("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new _("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new _("Ray1111111111111111111111111111111111111111")};import bP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as vy,TOKEN_2022_PROGRAM_ID as Vy,TOKEN_PROGRAM_ID as _y}from"@solana/spl-token";import{PublicKey as Dy}from"@solana/web3.js";import qy from"bn.js";import Gy from"decimal.js";import{TOKEN_PROGRAM_ID as xd}from"@solana/spl-token";import{PublicKey as Ld}from"@solana/web3.js";var Cr=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 Rr=new X(1).shln(128),at=new X(1).shln(64).subn(1),Lr=new X(1).shln(128).subn(1),Ye=-443636,Qe=443636,Me=new X("4295048016"),Fe=new X("79226673521066979257578248091"),Eo=new X("59543866431248"),Do=new X("184467440737095516"),Wo=new X("15793534762490258745"),qo=16,tn=512,Be=60,Ud=new X("18446743708227953217"),Uo=[{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 Lt=3,Go=100;var zo=10,Xo=100,bt=14;var H=new X(0),Te=new X(1),Gd=new X(-1);var zd=new X("18446744073700000000");var Or=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)]),Nr=B([oe("blockTimestamp"),yt("tickCumulative"),N(o(),4)]),Yo=B([W(8),ae("initialized"),o("recentEpoch"),fe("observationIndex"),A("poolId"),N(Nr,Go,"observations"),N(o(),4)]),Mr=B([fe("filterPeriod"),fe("decayPeriod"),fe("reductionFactor"),oe("dynamicFeeControl"),oe("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),oe("volatilityReference"),oe("volatilityAccumulator"),o("lastUpdateTimestamp"),N(x(),46)]),Fr=B([x("state"),o("openTime"),o("endTime"),o("lastUpdateTime"),V("emissionsPerSecondX64"),o("totalEmissioned"),o("claimed"),A("mint"),A("vault"),A("creator"),V("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"),V("liquidity"),V("sqrtPriceX64"),ce("tickCurrent"),oe(),V("feeGrowthGlobalX64A"),V("feeGrowthGlobalX64B"),o("protocolFeesTokenA"),o("protocolFeesTokenB"),N(V(),4),x("status"),x("feeOn"),W(6),N(Fr,Lt,"rewardInfos"),W(8*16,"tickArrayBitmap"),N(o(),4),o("fundFeesTokenA"),o("fundFeesTokenB"),o("startTime"),o("recentEpoch"),Mr.replicate("dynamicFeeInfo"),N(o(),46)]),vr=B([V("growthInsideLastX64"),o("rewardAmountOwed")]),Vr=B([W(8),x("bump"),A("nftMint"),A("poolId"),ce("tickLower"),ce("tickUpper"),V("liquidity"),V("feeGrowthInsideLastX64A"),V("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),N(vr,Lt,"rewardInfos"),o("recentEpoch"),N(o(),7)]),Zd=B([W(8),x("bump"),A("poolId"),ce("tickLower"),ce("tickUpper"),V("liquidity"),V("feeGrowthInsideLastX64A"),V("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),N(V(),Lt,"rewardGrowthInside"),o("recentEpoch"),N(o(),7)]),_r=B([ce("tick"),Ko("liquidityNet"),V("liquidityGross"),V("feeGrowthOu