UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

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