@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 142 kB
JavaScript
var Ri=Object.defineProperty,Li=Object.defineProperties;var Oi=Object.getOwnPropertyDescriptors;var _t=Object.getOwnPropertySymbols;var ao=Object.prototype.hasOwnProperty,so=Object.prototype.propertyIsEnumerable;var ro=(l,e,t)=>e in l?Ri(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t,E=(l,e)=>{for(var t in e||(e={}))ao.call(e,t)&&ro(l,t,e[t]);if(_t)for(var t of _t(e))so.call(e,t)&&ro(l,t,e[t]);return l},q=(l,e)=>Li(l,Oi(e));var _e=(l,e)=>{var t={};for(var n in l)ao.call(l,n)&&e.indexOf(n)<0&&(t[n]=l[n]);if(l!=null&&_t)for(var n of _t(l))e.indexOf(n)<0&&so.call(l,n)&&(t[n]=l[n]);return t};import{PublicKey as MC,SystemProgram as FC}from"@solana/web3.js";import{createTransferInstruction as VC,TOKEN_PROGRAM_ID as _C,TOKEN_2022_PROGRAM_ID as EC,createAssociatedTokenAccountIdempotentInstruction as DC,createSyncNativeInstruction as qC,createTransferCheckedInstruction as UC}from"@solana/spl-token";import Fs from"bn.js";import XC from"decimal.js";import{PublicKey as Fi}from"@solana/web3.js";import{get as uo,set as Ni}from"lodash";var fn=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(n=>typeof n=="object"?JSON.stringify(n):n).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},co={},Mi={};function G(l){let e=uo(co,l);if(!e){let t=uo(Mi,l);e=new fn({name:l,logLevel:t}),Ni(co,l,e)}return e}import{MINT_SIZE as Xs,TOKEN_PROGRAM_ID as Ys,getTransferFeeConfig as Qs,unpackMint as Zs}from"@solana/spl-token";var yn=G("Raydium_accountInfo_util");async function ze(l,e,t){let{batchRequest:n,commitment:i="confirmed",chunkCount:c=100}=E({batchRequest:!1},t),u=bn(e,c),r=new Array(u.length).fill([]);if(n){let s=u.map(P=>{let w=l._buildArgs([P.map(m=>m.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:w}}),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(w=>{if(w){let{data:m,executable:y,lamports:d,owner:a,rentEpoch:b}=w;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:d,owner:new Fi(a),rentEpoch:b}}return null})))}else try{r=await Promise.all(u.map(s=>l.getMultipleAccountsInfo(s,i)))}catch(s){s instanceof Error&&yn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${s.message}`)}return r.flat()}import ut from"bn.js";import NK from"decimal.js";import Ui from"big.js";import Wt from"bn.js";import vi from"toformat";var Vi=vi,Tt=Vi;import Dt from"big.js";import Ei from"bn.js";import Di from"decimal.js-light";import ht from"bn.js";var lo=9007199254740991;function te(l){let e=G("Raydium_parseBigNumberish");if(l instanceof ht)return l;if(typeof l=="string"){if(l.match(/^-?[0-9]+$/))return new ht(l);e.logWithError(`invalid BigNumberish string: ${l}`)}return typeof l=="number"?(l%1&&e.logWithError(`BigNumberish number underflow: ${l}`),(l>=lo||l<=-lo)&&e.logWithError(`BigNumberish number overflow: ${l}`),new ht(String(l))):typeof l=="bigint"?new ht(l.toString()):(e.error(`invalid BigNumberish value: ${l}`),new ht(0))}var Et=G("module/fraction"),gn=Tt(Dt),It=Tt(Di),Wi={[0]:It.ROUND_DOWN,[1]:It.ROUND_HALF_UP,[2]:It.ROUND_UP},qi={[0]:Dt.roundDown,[1]:Dt.roundHalfUp,[2]:Dt.roundUp},Q=class{constructor(e,t=new Ei(1)){this.numerator=te(e),this.denominator=te(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(te(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(te(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(te(e));return new Q(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof Q?e:new Q(te(e));return new Q(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||Et.logWithError(`${e} is not an integer.`),e<=0&&Et.logWithError(`${e} is not positive.`),It.set({precision:e+1,rounding:Wi[n]});let i=new It(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return i.toFormat(i.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},n=1){return Number.isInteger(e)||Et.logWithError(`${e} is not an integer.`),e<0&&Et.logWithError(`${e} is negative.`),gn.DP=e,gn.RM=qi[n]||1,new gn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Gi=G("Raydium_amount"),mo=Tt(Ui);function zi(l,e){let t="0",n="0";if(l.includes(".")){let i=l.split(".");i.length===2?([t,n]=i,n=n.padEnd(e,"0")):Gi.logWithError(`invalid number string, num: ${l}`)}else t=l;return[t,n.slice(0,e)||n]}var xe=class extends Q{constructor(t,n,i=!0,c){let u=new Wt(0),r=Pn.pow(new Wt(t.decimals));if(i)u=te(n);else{let s=new Wt(0),g=new Wt(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[p,P]=zi(n.toString(),t.decimals);s=te(p),g=te(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 mo.DP=this.token.decimals,new mo(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Xi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as po}from"@solana/spl-token";var qt={chainId:101,address:Xi.default.toBase58(),programId:po.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:po.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 ne,SystemProgram as fo,SYSVAR_RENT_PUBKEY as Yi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Qi}from"@solana/spl-token";function f({pubkey:l,isSigner:e=!1,isWritable:t=!0}){return{pubkey:l,isWritable:t,isSigner:e}}var Zi=[f({pubkey:Qi,isWritable:!1}),f({pubkey:fo.programId,isWritable:!1}),f({pubkey:Yi,isWritable:!1})];function yo({publicKey:l,transformSol:e}){let t=An(l.toString());if(t instanceof ne)return e&&t.equals(nt)?Xe:t;if(e&&t.toString()===nt.toBase58())return Xe;if(typeof t=="string"){if(t===ne.default.toBase58())return ne.default;try{return new ne(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function An(l){try{return new ne(l)}catch{return l}}var Oe=new ne("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Re=new ne("SysvarRent111111111111111111111111111111111"),xu=new ne("SysvarC1ock11111111111111111111111111111111"),$e=new ne("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Hi=new ne("Sysvar1nstructions1111111111111111111111111"),ji=fo.programId,Ku=new ne("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Cu=new ne("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ru=new ne("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Lu=new ne("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ou=new ne("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Nu=new ne("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Mu=new ne("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Fu=new ne("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),vu=new ne("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Vu=new ne("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),_u=new ne("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Xe=new ne("So11111111111111111111111111111111111111112"),nt=ne.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:yo({publicKey:e}),this.isToken2022=u}equals(e){return this===e?!0:this.mint.equals(e.mint)}},Pe=kn;Pe.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}},Ut=Tn;Ut.SOL=new Tn(qt);import $i from"bn.js";var bo=new Q(new $i(100)),Ye=class extends Q{toSignificant(e=5,t,n){return this.mul(bo).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(bo).toFixed(e,t,n)}};var Ji=G("Raydium_price"),Ne=class extends Q{constructor(t){let{baseToken:n,quoteToken:i,numerator:c,denominator:u}=t;super(c,u);this.baseToken=n,this.quoteToken=i,this.scalar=new Q(hn(n.decimals),hn(i.decimals))}get raw(){return new Q(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Ne({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Ji.logWithError("mul token not equals");let n=super.mul(t);return new Ne({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:n.denominator,numerator:n.numerator})}toSignificant(t=this.quoteToken.decimals,n,i){return this.adjusted.toSignificant(t,n,i)}toFixed(t=this.quoteToken.decimals,n,i){return this.adjusted.toFixed(t,n,i)}};import{merge as GS}from"lodash";import uc from"axios";var go={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"},er=q(E({},go),{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 Lc=G("Raydium_Api");import{PublicKey as Hm,SystemProgram as jm}from"@solana/web3.js";import{AccountLayout as nd,createAssociatedTokenAccountIdempotentInstruction as od,TOKEN_PROGRAM_ID as id,TOKEN_2022_PROGRAM_ID as rd}from"@solana/spl-token";import{PublicKey as ft,sendAndConfirmTransaction as Cn,SystemProgram as ar,Transaction as xt,TransactionMessage as Kt,VersionedTransaction as Ct}from"@solana/web3.js";import sr from"axios";import{PublicKey as In,AddressLookupTableAccount as dt}from"@solana/web3.js";async function Bn({connection:l,address:e,cluster:t="mainnet"}){let n=await ze(l,[...new Set(e.map(c=>c.toString()))].map(c=>new In(c))),i={};for(let c=0;c<e.length;c++){let u=n[c],r=e[c];if(!u)continue;let s=new dt({key:r,state:dt.deserialize(u.data)});i[r.toString()]=s,t==="devnet"?mt[r.toString()]=s:lt[r.toString()]=s}return i}var lt={},Sn=async l=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(lt[e])return lt;let t=new In(e),n=await l.getAccountInfo(t);return n&&(lt[e]=new dt({key:t,state:dt.deserialize(n.data)})),lt},mt={},xn=async l=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(mt[e])return mt;let t=new In(e),n=await l.getAccountInfo(t);return n&&(mt[e]=new dt({key:t,state:dt.deserialize(n.data)})),mt};var D={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as Po,Keypair as wo,PublicKey as tr,Transaction as ko,TransactionMessage as nr,VersionedTransaction as To}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as or}from"@solana/spl-token";var Ao=G("Raydium_txUtil"),ho=1644;function Gt(l){let e=[],t=[];return l.microLamports&&(e.push(Po.setComputeUnitPrice({microLamports:l.microLamports})),t.push(D.SetComputeUnitPrice)),l.units&&(e.push(Po.setComputeUnitLimit({units:l.units})),t.push(D.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function pt(l,e){var n,i;let t=e!=null?e:"confirmed";return(i=await((n=l.getLatestBlockhash)==null?void 0:n.call(l,{commitment:t})))==null?void 0:i.blockhash}async function zt(l,e){return l.getSignatureStatuses([e]),new Promise((t,n)=>{let i=setTimeout(n,6e4);l.onSignature(e,c=>{if(clearTimeout(i),!c.err){t("");return}n(Object.assign(c.err,{txId:e}))},"confirmed")})}function Kn(l,e){l.length<1&&Ao.logWithError(`no instructions provided: ${l.toString()}`),e.length<1&&Ao.logWithError(`no signers provided:, ${e.toString()}`);let t=new ko;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...l);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<ho}catch{return!1}}function J(l,e){let[t,n]=tr.findProgramAddressSync(l,e);return{publicKey:t,nonce:n}}function Bt({instructions:l,payer:e,signers:t}){return Kn(l,[e,...t])}function St({instructions:l,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=wo.generate().publicKey.toString()}){let c=new nr({payerKey:e,recentBlockhash:n,instructions:l}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new To(c).serialize()).toString("base64").length<ho}catch{return!1}}var ir=l=>Buffer.isBuffer(l)?l:l instanceof Uint8Array?Buffer.from(l.buffer,l.byteOffset,l.byteLength):Buffer.from(l),rr=l=>{let e=l.serialize({requireAllSignatures:!1,verifySignatures:!1});l instanceof To&&(e=ir(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function ot(l){let e=[];return l.forEach(t=>{t instanceof ko&&(t.recentBlockhash||(t.recentBlockhash=or.toBase58()),t.feePayer||(t.feePayer=wo.generate().publicKey)),e.push(rr(t))}),console.log("simulate tx string:",e),e}var Xt=2e3,Yt=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var n;let e=(await sr.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(n=e==null?void 0:e[15])!=null?n:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:n}=Gt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(ar.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new ft(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(D.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let n=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(n))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:n=[],instructionTypes:i=[],endInstructionTypes:c=[],lookupTableAddress:u=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...n),this.instructionTypes.push(...i),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...u.filter(r=>r!==ft.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:n}){return e===0?await this.buildV0(q(E({},t||{}),{lookupTableAddress:n})):this.build(t)}build(e){var n;let t=new xt;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 p;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]),(p=this.owner)!=null&&p.isKeyPair)return{txId:r?await Cn(this.connection,t,this.signers.find(w=>w.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 w of P)try{w.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(p=>p.transaction.instructions.length>0),u=[i,...c.map(p=>p.transaction)],r=[this.signers,...c.map(p=>p.signers)],s=[...this.instructionTypes,...c.map(p=>p.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&r.forEach(p=>{p.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:u,signers:r,instructionTypes:s,execute:async p=>{var b;let{sequentially:P,onTxUpdate:w,skipTxCount:m=0,recentBlockHash:y,skipPreflight:d=!0}=p||{},a=y!=null?y:await pt(this.connection,this.blockhashCommitment);if((b=this.owner)!=null&&b.isKeyPair){if(P){let T=[],O=0;for(let F of u){if(++O,O<=m)continue;let x=await Cn(this.connection,F,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:d});T.push(x)}return{txIds:T,signedTxs:u}}return{txIds:await await Promise.all(u.map(async T=>(T.recentBlockhash=a,await this.connection.sendRawTransaction(T.serialize(),{skipPreflight:d})))),signedTxs:u}}if(this.signAllTransactions){let T=u.map((F,x)=>(F.recentBlockhash=a,r[x].length&&F.sign(...r[x]),F));ot(T);let O=await this.signAllTransactions(T);if(P){let F=0,x=[],N=async()=>{if(!O[F])return;let C=await this.connection.sendRawTransaction(O[F].serialize(),{skipPreflight:d});x.push({txId:C,status:"sent",signedTx:O[F]}),w==null||w([...x]),F++;let L=!1,v=null,S=null,Y=Z=>{v!==null&&clearInterval(v),S!==null&&this.connection.removeSignatureListener(S);let U=x.findIndex(re=>re.txId===C);if(U>-1){if(x[U].status==="error"||x[U].status==="success")return;x[U].status=Z.err?"error":"success"}w==null||w([...x]),Z.err||N()};this.loopMultiTxStatus&&(v=setInterval(async()=>{var Z;if(L){clearInterval(v);return}try{let U=await this.connection.getTransaction(C,{commitment:"confirmed",maxSupportedTransactionVersion:0});U&&(L=!0,clearInterval(v),Y({err:((Z=U.meta)==null?void 0:Z.err)||null}),console.log("tx status from getTransaction:",C))}catch(U){L=!0,clearInterval(v),console.error("getTransaction timeout:",U,C)}},Xt)),S=this.connection.onSignature(C,Z=>{if(L){this.connection.removeSignatureListener(S);return}L=!0,Y(Z)},"confirmed"),this.connection.getSignatureStatus(C)};return await N(),{txIds:x.map(C=>C.txId),signedTxs:O}}else{let F=[];for(let x=0;x<O.length;x+=1){let N=await this.connection.sendRawTransaction(O[x].serialize(),{skipPreflight:d});F.push(N)}return{txIds:F,signedTxs:O}}}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 d;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 p=await Bn({connection:this.connection,address:g});for(let[a,b]of Object.entries(p))r[a]=b;let P=i?ft.default.toBase58():c!=null?c:await pt(this.connection,this.blockhashCommitment),w=new Kt({payerKey:this.feePayer,recentBlockhash:P,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(r));((d=this.owner)==null?void 0:d.signer)&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let m=new Ct(w);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:T,notSendToRpc:O}=a||{};if(ot([m]),(F=this.owner)!=null&&F.isKeyPair){let x=await this.connection.sendTransaction(m,{skipPreflight:b});return T&&await zt(this.connection,x),{txId:x,signedTx:m}}if(this.signAllTransactions){let x=await this.signAllTransactions([m]);if(this.signers.length)for(let N of x)try{N.sign(this.signers)}catch{}return{txId:O?"":await this.connection.sendTransaction(x[0],{skipPreflight:b}),signedTx:x[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(p=>p.builder.instructions.length>0),u=[i,...c.map(p=>p.transaction)],r=[this.signers,...c.map(p=>p.signers)],s=[...this.instructionTypes,...c.map(p=>p.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&r.forEach(p=>{p.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),u.forEach(async(p,P)=>{p.sign(r[P])}),{builder:this,transactions:u,signers:r,instructionTypes:s,buildProps:n,execute:async p=>{var d;let{sequentially:P,onTxUpdate:w,recentBlockHash:m,skipPreflight:y=!0}=p||{};if(m&&u.forEach(a=>a.message.recentBlockhash=m),ot(u),(d=this.owner)!=null&&d.isKeyPair){if(P){let a=[];for(let b of u){let T=await this.connection.sendTransaction(b,{skipPreflight:y});await zt(this.connection,T),a.push(T)}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,T=[],O=async()=>{if(!a[b])return;let F=await this.connection.sendTransaction(a[b],{skipPreflight:y});T.push({txId:F,status:"sent",signedTx:a[b]}),w==null||w([...T]),b++;let x=!1,N=null,C=null,L=v=>{N!==null&&clearInterval(N),C!==null&&this.connection.removeSignatureListener(C);let S=T.findIndex(Y=>Y.txId===F);if(S>-1){if(T[S].status==="error"||T[S].status==="success")return;T[S].status=v.err?"error":"success"}w==null||w([...T]),v.err||O()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var v;if(x){clearInterval(N);return}try{let S=await this.connection.getTransaction(F,{commitment:"confirmed",maxSupportedTransactionVersion:0});S&&(x=!0,clearInterval(N),L({err:((v=S.meta)==null?void 0:v.err)||null}),console.log("tx status from getTransaction:",F))}catch(S){x=!0,clearInterval(N),console.error("getTransaction timeout:",S,F)}},Xt)),C=this.connection.onSignature(F,v=>{if(x){this.connection.removeSignatureListener(C);return}x=!0,L(v)},"confirmed"),this.connection.getSignatureStatus(F)};return O(),{txIds:[],signedTxs:a}}else{let b=[];for(let T=0;T<a.length;T+=1){let O=await this.connection.sendTransaction(a[T],{skipPreflight:y});b.push(O)}return{txIds:b,signedTxs:a}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async sizeCheckBuild(e){var w;let P=e||{},{splitIns:t=[],computeBudgetConfig:n}=P,i=_e(P,["splitIns","computeBudgetConfig"]),c=n?Gt(n):{instructions:[],instructionTypes:[]},u=this.signers.reduce((m,y)=>q(E({},m),{[y.publicKey.toBase58()]:y}),{}),r=[],s=[],g=[],p=0;if(this.allInstructions.forEach(m=>{let y=[...g,m],d=n?[...c.instructions,...y]:y,b=[...new Set(y.map(T=>T.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(T=>new ft(T));if(m!==t[p]&&g.length<12&&(Bt({instructions:d,payer:this.feePayer,signers:b})||Bt({instructions:y,payer:this.feePayer,signers:b})))g.push(m);else{if(g.length===0)throw Error("item ins too big");p+=m===t[p]?1:0,Bt({instructions:n?[...c.instructions,...g]:[...g],payer:this.feePayer,signers:b})?r.push(new xt().add(...c.instructions,...g)):r.push(new xt().add(...g)),s.push(Array.from(new Set(g.map(T=>T.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat())).map(T=>u[T]).filter(T=>T!==void 0)),g=[m]}}),g.length>0){let y=[...new Set(g.map(d=>d.keys.filter(a=>a.isSigner).map(a=>a.pubkey.toString())).flat()).values()].map(d=>u[d]).filter(d=>d!==void 0);Bt({instructions:n?[...c.instructions,...g]:[...g],payer:this.feePayer,signers:y.map(d=>d.publicKey)})?r.push(new xt().add(...c.instructions,...g)):r.push(new xt().add(...g)),s.push(y)}return r.forEach(m=>m.feePayer=this.feePayer),(w=this.owner)!=null&&w.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:d,skipTxCount:a=0,recentBlockHash:b,skipPreflight:T=!0}=m||{},O=b!=null?b:await pt(this.connection,this.blockhashCommitment);if(r.forEach(async(x,N)=>{x.recentBlockhash=O,s[N].length&&x.sign(...s[N])}),ot(r),(F=this.owner)!=null&&F.isKeyPair){if(y){let x=0,N=[];for(let C of r){if(++x,x<=a){N.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:T});N.push(L)}return{txIds:N,signedTxs:r}}return{txIds:await Promise.all(r.map(async x=>await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:T}))),signedTxs:r}}if(this.signAllTransactions){let x=await this.signAllTransactions(r.slice(a,r.length)),N=[...r.slice(0,a),...x];if(y){let C=0,L=[],v=async()=>{if(!N[C])return;C<a&&(L.push({txId:"",status:"success",signedTx:N[C]}),d==null||d([...L]),C++,v());let S=await this.connection.sendRawTransaction(N[C].serialize(),{skipPreflight:T});L.push({txId:S,status:"sent",signedTx:N[C]}),d==null||d([...L]),C++;let Y=!1,Z=null,U=null,re=$=>{Z!==null&&clearInterval(Z),U!==null&&this.connection.removeSignatureListener(U);let we=L.findIndex(Ue=>Ue.txId===S);if(we>-1){if(L[we].status==="error"||L[we].status==="success")return;L[we].status=$.err?"error":"success"}d==null||d([...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)}},Xt)),U=this.connection.onSignature(S,$=>{if(Y){this.connection.removeSignatureListener(U);return}Y=!0,re($)},"confirmed"),this.connection.getSignatureStatus(S)};return await v(),{txIds:L.map(S=>S.txId),signedTxs:N}}else{let C=[];for(let L=0;L<N.length;L+=1){let v=await this.connection.sendRawTransaction(N[L].serialize(),{skipPreflight:T});C.push(v)}return{txIds:C,signedTxs:N}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuildV0(e){var F;let O=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:i={},lookupTableAddress:c=[],insCountLimit:u=12}=O,r=_e(O,["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])),p=[];for(let x of g)s[x]===void 0&&p.push(new ft(x));let P=await Bn({connection:this.connection,address:p});for(let[x,N]of Object.entries(P))s[x]=N;let w=t?Gt(t):{instructions:[],instructionTypes:[]},m=await pt(this.connection,this.blockhashCommitment),y=this.signers.reduce((x,N)=>q(E({},x),{[N.publicKey.toBase58()]:N}),{}),d=[],a=[],b=[],T=0;if(this.allInstructions.forEach(x=>{let N=[...b,x],C=t?[...w.instructions,...N]:N;if(x!==n[T]&&b.length<u&&(St({instructions:C,payer:this.feePayer,lookupTableAddressAccount:s})||St({instructions:N,payer:this.feePayer,lookupTableAddressAccount:s})))b.push(x);else{if(b.length===0)throw Error("item ins too big");T+=x===n[T]?1:0;let L={};for(let v of[...new Set(g)])s[v]!==void 0&&(L[v]=s[v]);if(t&&St({instructions:[...w.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:m})){let v=new Kt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...w.instructions,...b]}).compileToV0Message(Object.values(s));d.push(new Ct(v))}else{let v=new Kt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...b]}).compileToV0Message(Object.values(s));d.push(new Ct(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=[x]}}),b.length>0){let N=[...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&&St({instructions:[...w.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:m})){let C=new Kt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...w.instructions,...b]}).compileToV0Message(Object.values(s));d.push(new Ct(C))}else{let C=new Kt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...b]}).compileToV0Message(Object.values(s));d.push(new Ct(C))}a.push(N)}return(F=this.owner)!=null&&F.signer&&a.forEach(x=>{x.some(N=>N.publicKey.equals(this.owner.publicKey))||x.push(this.owner.signer)}),d.forEach((x,N)=>{x.sign(a[N])}),{builder:this,transactions:d,buildProps:e,signers:a,instructionTypes:this.instructionTypes,execute:async x=>{var Y;let{sequentially:N,onTxUpdate:C,skipTxCount:L=0,recentBlockHash:v,skipPreflight:S=!0}=x||{};if(d.map(async(Z,U)=>{a[U].length&&Z.sign(a[U]),v&&(Z.message.recentBlockhash=v)}),ot(d),(Y=this.owner)!=null&&Y.isKeyPair){if(N){let Z=0,U=[];for(let re of d){if(++Z,Z<=L){console.log("skip tx: ",Z),U.push("tx skipped");continue}let $=await this.connection.sendTransaction(re,{skipPreflight:S});await zt(this.connection,$),U.push($)}return{txIds:U,signedTxs:d}}return{txIds:await Promise.all(d.map(async Z=>await this.connection.sendTransaction(Z,{skipPreflight:S}))),signedTxs:d}}if(this.signAllTransactions){let Z=await this.signAllTransactions(d.slice(L,d.length)),U=[...d.slice(0,L),...Z];if(N){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 Ue=await this.connection.sendTransaction(U[re],{skipPreflight:S});$.push({txId:Ue,status:"sent",signedTx:U[re]}),C==null||C([...$]),re++;let wt=!1,ct=null,Vt=null,io=tt=>{ct!==null&&clearInterval(ct),Vt!==null&&this.connection.removeSignatureListener(Vt);let Ge=$.findIndex(Ci=>Ci.txId===Ue);if(Ge>-1){if($[Ge].status==="error"||$[Ge].status==="success")return;$[Ge].status=tt.err?"error":"success"}C==null||C([...$]),tt.err||we()};this.loopMultiTxStatus&&(ct=setInterval(async()=>{var tt;if(wt){clearInterval(ct);return}try{let Ge=await this.connection.getTransaction(Ue,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ge&&(wt=!0,clearInterval(ct),io({err:((tt=Ge.meta)==null?void 0:tt.err)||null}),console.log("tx status from getTransaction:",Ue))}catch(Ge){wt=!0,clearInterval(ct),console.error("getTransaction timeout:",Ge,Ue)}},Xt)),Vt=this.connection.onSignature(Ue,tt=>{if(wt){this.connection.removeSignatureListener(Vt);return}wt=!0,io(tt)},"confirmed"),this.connection.getSignatureStatus(Ue)};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 Yt({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(Rn(e))}logInfo(...e){this.logger.info(Rn(e))}logAndCreateError(...e){let t=Rn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as xm,SystemProgram as Cm}from"@solana/web3.js";import Om from"bn.js";import{createCloseAccountInstruction as vm,createInitializeAccountInstruction as Vm,createTransferInstruction as _m,TOKEN_PROGRAM_ID as Em}from"@solana/spl-token";import{Keypair as fm,PublicKey as ym}from"@solana/web3.js";import Pm from"bn.js";import{TOKEN_PROGRAM_ID as km}from"@solana/spl-token";import{PublicKey as Ar}from"@solana/web3.js";import Ko,{isBN as Co}from"bn.js";import{bits as ur,BitStructure as Al,blob as cr,Blob as wl,cstr as kl,f32 as Tl,f32be as hl,f64 as Il,f64be as Bl,greedy as Sl,Layout as lr,ns64 as xl,ns64be as Kl,nu64 as Cl,nu64be as Rl,offset as mr,s16 as Ll,s16be as Ol,s24 as Nl,s24be as Ml,s32 as dr,s32be as Fl,s40 as vl,s40be as Vl,s48 as _l,s48be as El,s8 as Dl,seq as pr,struct as Wl,Structure as fr,u16 as yr,u16be as ql,u24 as Ul,u24be as Gl,u32 as br,u32be as zl,u40 as Xl,u40be as Yl,u48 as Ql,u48be as Zl,u8 as gr,UInt as Pr,union as Hl,Union as jl,unionLayoutDiscriminator as $l,utf8 as Jl}from"@solana/buffer-layout";var Qt=lr,Io=fr;var Ln=Pr;var Bo=gr,ce=yr;var Zt=br;var le=dr;var So=pr;var W=cr;var On=ur,xo=mr;var rt=class extends Qt{constructor(t,n,i){super(t,i);this.blob=W(t),this.signed=n}decode(t,n=0){let i=new Ko(this.blob.decode(t,n),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(t,n,i=0){return typeof t=="number"&&(t=new Ko(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,i)}},Ht=class extends Qt{constructor(t){super(8,t);this._lower=On(Zt(),!1),this._upper=On(Zt(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,n=0){let i=this._lower.decode(t,n),c=this._upper.decode(t,n+this._lower.span);return E(E({},i),c)}encode(t,n,i=0){return this._lower.encode(t,n,i)+this._upper.encode(t,n,i+this._lower.span)}};function K(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 Ro(l){return new rt(1,!0,l)}function yt(l){return new rt(8,!0,l)}function Lo(l){return new rt(16,!0,l)}var Rt=class extends Qt{constructor(t,n,i,c){super(t.span,c);this.layout=t,this.decoder=n,this.encoder=i}decode(t,n){return this.decoder(this.layout.decode(t,n))}encode(t,n,i){return this.layout.encode(this.encoder(t),n,i)}getSpan(t,n){return this.layout.getSpan(t,n)}};function A(l){return new Rt(W(32),e=>new Ar(e),e=>e.toBuffer(),l)}function ae(l){return new Rt(Bo(),wr,kr,l)}function wr(l){if(l===0)return!1;if(l===1)return!0;throw new Error("Invalid bool: "+l)}function kr(l){return l?1:0}function Oo(l,e){let t=Zt("length"),n=B([t,M(l,xo(t,-t.span),"values")]);return new Rt(n,({values:i})=>i,i=>({values:i}),e)}var Nn=class extends Io{decode(e,t){return super.decode(e,t)}};function B(l,e,t){return new Nn(l,e,t)}function M(l,e,t){let n,i=typeof e=="number"?e:Co(e)?e.toNumber():new Proxy(e,{get(c,u){if(!n){let r=Reflect.get(c,"count");n=Co(r)?r.toNumber():r,Reflect.set(c,"count",n)}return Reflect.get(c,u)},set(c,u,r){return u==="count"&&(n=r),Reflect.set(c,u,r)}});return So(l,i,t)}var jt=B([A("mint"),A("owner"),o("amount"),oe("delegateOption"),A("delegate"),K("state"),oe("isNativeOption"),o("isNative"),o("delegatedAmount"),oe("closeAuthorityOption"),A("closeAuthority")]);import{PublicKey as sP,SystemProgram as uP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as lP}from"@solana/spl-token";import{PublicKey as hr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ir}from"@solana/spl-token";function z(l,e,t){return J([l.toBuffer(),(t!=null?t:Ir).toBuffer(),e.toBuffer()],new hr("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as _}from"@solana/web3.js";var Mn=new _("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Fn=new _("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),vn=new _("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Jt=new _("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Br=new _("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Mo=new _("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Vn=new _("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),_n=new _("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Sr=new _("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),en=new _("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),En=new _("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Fo=new _("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),vo=new _("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Lt=new _("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),xr=new _("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Vo=new _("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),tn=new _("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),_o=new _("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Kr=new _("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Eo=new _("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Do=new _("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Wo=new _("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Cr=new _("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),bd=new _("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),gd=new _("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Rr=new _("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Lr=new _("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),ke={AMM_V4:_n,AMM_STABLE:Sr,CLMM_PROGRAM_ID:En,CLMM_LOCK_PROGRAM_ID:Fo,CLMM_LOCK_AUTH_ID:vo,FARM_PROGRAM_ID_V3:Mn,FARM_PROGRAM_ID_V4:Fn,FARM_PROGRAM_ID_V5:vn,FARM_PROGRAM_ID_V6:Jt,OPEN_BOOK_PROGRAM:Mo,SERUM_PROGRAM_ID_V3:Vn,UTIL1216:Br,Router:xr,CREATE_CPMM_POOL_PROGRAM:tn,CREATE_CPMM_POOL_AUTH:_o,CREATE_CPMM_POOL_FEE_ACC:Kr,LOCK_CPMM_PROGRAM:Eo,LOCK_CPMM_AUTH:Do,LAUNCHPAD_PROGRAM:Wo,LAUNCHPAD_AUTH:Cr,LAUNCHPAD_PLATFORM:Rr,LAUNCHPAD_CONFIG:Lr,FEE_DESTINATION_ID:Vo,MODEL_DATA_PUBKEY:Lt},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 wP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Dy,TOKEN_2022_PROGRAM_ID as Wy,TOKEN_PROGRAM_ID as qy}from"@solana/spl-token";import{PublicKey as Gy}from"@solana/web3.js";import Xy from"bn.js";import Qy from"decimal.js";import{TOKEN_PROGRAM_ID as Ld}from"@solana/spl-token";import{PublicKey as Fd}from"@solana/web3.js";var Or=B([oe("mintAuthorityOption"),A("mintAuthority"),o("supply"),K("decimals"),K("isInitialized"),oe("freezeAuthorityOption"),A("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Yn,TOKEN_2022_PROGRAM_ID as ue,TOKEN_PROGRAM_ID as j}from"@solana/spl-token";import{Keypair as an,PublicKey as R,SystemProgram as We,TransactionInstruction as se}from"@solana/web3.js";import sn from"bn.js";import X from"bn.js";var me=new X(1).shln(64);var Nr=new X(1).shln(128),at=new X(1).shln(64).subn(1),Mr=new X(1).shln(128).subn(1),Qe=-443636,Ze=443636,Me=new X("4295048016"),Fe=new X("79226673521066979257578248091"),qo=new X("59543866431248"),Uo=new X("184467440737095516"),Go=new X("15793534762490258745"),zo=16,nn=512,Be=60,Yd=new X("18446743708227953217"),Xo=[{bit:0,factor:new X("fffcb933bd6fb800",16)},{bit:1,factor:new X("fff97272373d4000",16)},{bit:2,factor:new X("fff2e50f5f657000",16)},{bit:3,factor:new X("ffe5caca7e10f000",16)},{bit:4,factor:new X("ffcb9843d60f7000",16)},{bit:5,factor:new X("ff973b41fa98e800",16)},{bit:6,factor:new X("ff2ea16466c9b000",16)},{bit:7,factor:new X("fe5dee046a9a3800",16)},{bit:8,factor:new X("fcbe86c7900bb000",16)},{bit:9,factor:new X("f987a7253ac65800",16)},{bit:10,factor:new X("f3392b0822bb6000",16)},{bit:11,factor:new X("e7159475a2caf000",16)},{bit:12,factor:new X("d097f3bdfd2f2000",16)},{bit:13,factor:new X("a9f746462d9f8000",16)},{bit:14,factor:new X("70d869a156f31c00",16)},{bit:15,factor:new X("31be135f97ed3200",16)},{bit:16,factor:new X("9aa508b5b85a500",16)},{bit:17,factor:new X("5d6af8dedc582c",16)},{bit:18,factor:new X("2216e584f5fa",16)}];var Ot=3,Yo=100;var Qo=10,Zo=100,bt=14;var H=new X(0),Te=new X(1),Qd=new X(-1);var Zd=new X("18446744073700000000");var Fr=B([W(8),K("bump"),ce("index"),A("owner"),oe("protocolFeeRate"),oe("tradeFeeRate"),ce("tickSpacing"),oe("fundFeeRate"),M(oe(),1),A("fundOwner"),M(o(),3)]),vr=B([oe("blockTimestamp"),yt("tickCumulative"),M(o(),4)]),Ho=B([W(8),ae("initialized"),o("recentEpoch"),ce("observationIndex"),A("poolId"),M(vr,Yo,"observations"),M(o(),4)]),Vr=B([ce("filterPeriod"),ce("decayPeriod"),ce("reductionFactor"),oe("dynamicFeeControl"),oe("maxVolatilityAccumulator"),le("tickSpacingIndexReference"),oe("volatilityReference"),oe("volatilityAccumulator"),o("lastUpdateTimestamp"),M(K(),46)]),_r=B([K("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),K("bump"),A("configId"),A("creator"),A("mintA"),A("mintB"),A("vaultA"),A("vaultB"),A("observationId"),K("mintDecimalsA"),K("mintDecimalsB"),ce("tickSpacing"),V("liquidity"),V("sqrtPriceX64"),le("tickCurrent"),oe(),V("feeGrowthGlobalX64A"),V("feeGrowthGlobalX64B"),o("protocolFeesTokenA"),o("protocolFeesTokenB"),M(V(),4),K("status"),K("feeOn"),W(6),M(_r,Ot,"rewardInfos"),W(8*16,"tickArrayBitmap"),M(o(),4),o("fundFeesTokenA"),o("fundFeesTokenB"),o("startTime"),o("recentEpoch"),Vr.replicate("dynamicFeeInfo"),M(o(),46)]),Er=B([V("growthInsideLastX64"),o("rewardAmountOwed")]),Dr=B([W(8),K("bump"),A("nftMint"),A("poolId"),le("tickLower"),le("tickUpper"),V("liquidity"),V("feeGrowthInsideLastX64A"),V("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),M(Er,Ot,"rewardInfos"),o("recentEpoch"),M(o(),7)]),Jd=B([W(8),K("bump"),A("poolId"),le("tickLower"),le("tickUpper"),V("liquidity"),V("feeGrowthInsideLastX64A"),V("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),M(V(),Ot,"rewardGrowthInside"),o("recentEpoch"),M(o(),7)]),Wr=B([le("tick"),Lo("liquidityNet"),V("liquidityGross"),V("feeGrowthOuts