UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

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