@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 78.3 kB
JavaScript
var Po=Object.defineProperty,Ao=Object.defineProperties;var wo=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var ln=Object.prototype.hasOwnProperty,mn=Object.prototype.propertyIsEnumerable;var cn=(i,t,n)=>t in i?Po(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,R=(i,t)=>{for(var n in t||(t={}))ln.call(t,n)&&cn(i,n,t[n]);if(ot)for(var n of ot(t))mn.call(t,n)&&cn(i,n,t[n]);return i},F=(i,t)=>Ao(i,wo(t));var se=(i,t)=>{var n={};for(var r in i)ln.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&ot)for(var r of ot(i))t.indexOf(r)<0&&mn.call(i,r)&&(n[r]=i[r]);return n};import bo from"axios";import{PublicKey as ho}from"@solana/web3.js";import{get as dn,set as ko}from"lodash";var St=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},pn={},To={};function E(i){let t=dn(pn,i);if(!t){let n=dn(To,i);t=new St({name:i,logLevel:n}),ko(pn,i,t)}return t}import{MINT_SIZE as La,TOKEN_PROGRAM_ID as Oa,getTransferFeeConfig as Na,unpackMint as Ma}from"@solana/spl-token";var xt=E("Raydium_accountInfo_util");async function ye(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:c=100}=R({batchRequest:!1},n),d=Kt(t,c),p=new Array(d.length).fill([]);if(r){let y=d.map(h=>{let B=i._buildArgs([h.map(K=>K.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:B}}),P=Kt(y,10);p=(await(await Promise.all(P.map(async h=>await i._rpcBatchRequest(h)))).flat()).map(h=>(h.error&&xt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${h.error.message}`),h.result.value.map(B=>{if(B){let{data:K,executable:M,lamports:A,owner:I,rentEpoch:x}=B;return K.length!==2&&K[1]!=="base64"&&xt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(K[0],"base64"),executable:M,lamports:A,owner:new ho(I),rentEpoch:x}}return null})))}else try{p=await Promise.all(d.map(y=>i.getMultipleAccountsInfo(y,u)))}catch(y){y instanceof Error&&xt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return p.flat()}import Ie from"bn.js";import uC from"decimal.js";import Lo from"big.js";import ja from"bn.js";import Io from"toformat";var Bo=Io,qe=Bo;import rt from"big.js";import xo from"bn.js";import Ko from"decimal.js-light";import Ue from"bn.js";var fn=9007199254740991;function oe(i){let t=E("Raydium_parseBigNumberish");if(i instanceof Ue)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new Ue(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=fn||i<=-fn)&&t.logWithError(`BigNumberish number overflow: ${i}`),new Ue(String(i))):typeof i=="bigint"?new Ue(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new Ue(0))}var it=E("module/fraction"),Ct=qe(rt),Ge=qe(Ko),Co={[0]:Ge.ROUND_DOWN,[1]:Ge.ROUND_HALF_UP,[2]:Ge.ROUND_UP},Ro={[0]:rt.roundDown,[1]:rt.roundHalfUp,[2]:rt.roundUp},U=class{constructor(t,n=new xo(1)){this.numerator=oe(t),this.denominator=oe(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(oe(t));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof U?t:new U(oe(t));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof U?t:new U(oe(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(oe(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||it.logWithError(`${t} is not an integer.`),t<=0&&it.logWithError(`${t} is not positive.`),Ge.set({precision:t+1,rounding:Co[r]});let u=new Ge(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||it.logWithError(`${t} is not an integer.`),t<0&&it.logWithError(`${t} is negative.`),Ct.DP=t,Ct.RM=Ro[r]||1,new Ct(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var as=E("Raydium_amount"),ss=qe(Lo);import{PublicKey as No}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as yn}from"@solana/spl-token";var at={chainId:101,address:No.default.toBase58(),programId:yn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:yn.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 Ot}from"@solana/web3.js";import{PublicKey as z,SystemProgram as bn,SYSVAR_RENT_PUBKEY as Mo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Fo}from"@solana/spl-token";function Se({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var vo=[Se({pubkey:Fo,isWritable:!1}),Se({pubkey:bn.programId,isWritable:!1}),Se({pubkey:Mo,isWritable:!1})];function Rt({publicKey:i,transformSol:t}){let n=gn(i.toString());if(n instanceof z)return t&&n.equals(we)?be:n;if(t&&n.toString()===we.toBase58())return be;if(typeof n=="string"){if(n===z.default.toBase58())return z.default;try{return new z(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function gn(i){try{return new z(i)}catch{return i}}var Lt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ze=new z("SysvarRent111111111111111111111111111111111"),ys=new z("SysvarC1ock11111111111111111111111111111111"),st=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Vo=new z("Sysvar1nstructions1111111111111111111111111"),_o=bn.programId,bs=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),gs=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ps=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),As=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ws=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ks=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ts=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),hs=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Is=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Bs=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ss=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),be=new z("So11111111111111111111111111111111111111112"),we=z.default;function ge(i){return Rt({publicKey:i,transformSol:!0})}var Nt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:c=!1,isToken2022:d=!1}){if(t===we.toBase58()||t instanceof Ot&&we.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Ot(le.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=c?Ot.default:Rt({publicKey:t}),this.isToken2022=d}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ee=Nt;ee.WSOL=new Nt(F(R({},le),{mint:le.address}));var Mt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},ut=Mt;ut.SOL=new Mt(at);import Eo from"bn.js";var _s=new U(new Eo(100));var Gs=E("Raydium_price");import{merge as lK}from"lodash";var X={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"},Pn=F(R({},X),{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 An="ray_tab_hash",Ft="ray_req_hash",Do=()=>{if(typeof window===void 0)return"";let i=sessionStorage.getItem(An);return i||(i=`ray-${Date.now()}`,sessionStorage.setItem(An,i)),i},ct=async r=>{var u=r,{logCount:i=1e3,removeLastLog:t}=u,n=se(u,["logCount","removeLastLog"]);if(typeof window===void 0)return new Promise(d=>d());let c=JSON.parse(localStorage.getItem(Ft)||"[]").slice(0,i-1);t&&c.pop(),new Blob([JSON.stringify(n.data)]).size>1024&&(n.data=JSON.stringify(n.data).substring(0,200)+"..."),c.unshift(F(R({},n),{time:Date.now(),session:Do()}));try{localStorage.setItem(Ft,JSON.stringify(c))}catch{if(t){let d=!1,p=JSON.stringify(n.data).substring(0,100);for(c[0].data=p+(p.length>100?"...":"");!d;){c.pop();let y=JSON.stringify(n.data).substring(0,100);c[0].data=y+(y.length>100?"...":"");try{localStorage.setItem(Ft,JSON.stringify(c)),d=!0}catch{d=!1}}return new Promise(y=>y())}return ct(F(R({},n),{logCount:i,removeLastLog:!0}))}};import{PublicKey as dl,SystemProgram as pl}from"@solana/web3.js";import{AccountLayout as Pl,createAssociatedTokenAccountIdempotentInstruction as Al,TOKEN_PROGRAM_ID as wl,TOKEN_2022_PROGRAM_ID as kl}from"@solana/spl-token";import{PublicKey as Le,sendAndConfirmTransaction as Wt,SystemProgram as Xo,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as He}from"@solana/web3.js";import Yo from"axios";import{PublicKey as vt,AddressLookupTableAccount as Ce}from"@solana/web3.js";async function Vt({connection:i,address:t,cluster:n="mainnet"}){let r=await ye(i,[...new Set(t.map(c=>c.toString()))].map(c=>new vt(c))),u={};for(let c=0;c<t.length;c++){let d=r[c],p=t[c];if(!d)continue;let y=new Ce({key:p,state:Ce.deserialize(d.data)});u[p.toString()]=y,n==="devnet"?Ke[p.toString()]=y:xe[p.toString()]=y}return u}var xe={},_t=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(xe[t])return xe;let n=new vt(t),r=await i.getAccountInfo(n);return r&&(xe[t]=new Ce({key:n,state:Ce.deserialize(r.data)})),xe},Ke={},Et=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ke[t])return Ke;let n=new vt(t),r=await i.getAccountInfo(n);return r&&(Ke[t]=new Ce({key:n,state:Ce.deserialize(r.data)})),Ke};var Z={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as wn,Keypair as Tn,PublicKey as Wo,Transaction as hn,TransactionMessage as qo,VersionedTransaction as In}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Uo}from"@solana/spl-token";var kn=E("Raydium_txUtil"),Bn=1644;function lt(i){let t=[],n=[];return i.microLamports&&(t.push(wn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Z.SetComputeUnitPrice)),i.units&&(t.push(wn.setComputeUnitLimit({units:i.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Re(i,t){var r,u;let n=t!=null?t:"confirmed";return(u=await((r=i.getLatestBlockhash)==null?void 0:r.call(i,{commitment:n})))==null?void 0:u.blockhash}async function mt(i,t){return i.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);i.onSignature(t,c=>{if(clearTimeout(u),!c.err){n("");return}r(Object.assign(c.err,{txId:t}))},"confirmed")})}function Dt(i,t){i.length<1&&kn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&kn.logWithError(`no signers provided:, ${t.toString()}`);let n=new hn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Bn}catch{return!1}}function me(i,t){let[n,r]=Wo.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function Xe({instructions:i,payer:t,signers:n}){return Dt(i,[t,...n])}function Ye({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=Tn.generate().publicKey.toString()}){let c=new qo({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new In(c).serialize()).toString("base64").length<Bn}catch{return!1}}var Go=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),zo=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof In&&(t=Go(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function ke(i){let t=[];return i.forEach(n=>{n instanceof hn&&(n.recentBlockhash||(n.recentBlockhash=Uo.toBase58()),n.feePayer||(n.feePayer=Tn.generate().publicKey)),t.push(zo(n))}),console.log("simulate tx string:",t),t}var dt=2e3,pt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let t=(await Yo.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=lt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Xo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Le(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:c=[],lookupTableAddress:d=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...d.filter(p=>p!==Le.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(F(R({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Qe;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var b;let{recentBlockHash:c,skipPreflight:d=!0,sendAndConfirm:p,notSendToRpc:y}=u||{},P=c!=null?c:await Re(this.connection,this.blockhashCommitment);if(n.recentBlockhash=P,this.signers.length&&n.sign(...this.signers),ke([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:p?await Wt(this.connection,n,this.signers.find(B=>B.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:d}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:d}),signedTx:n};if(this.signAllTransactions){let h=await this.signAllTransactions([n]);if(this.signers.length)for(let B of h)try{B.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(h[0].serialize(),{skipPreflight:d}),signedTx:h[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var P;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),c=n.filter(b=>b.transaction.instructions.length>0),d=[u,...c.map(b=>b.transaction)],p=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&p.forEach(b=>{b.some(h=>h.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:d,signers:p,instructionTypes:y,execute:async b=>{var x;let{sequentially:h,onTxUpdate:B,skipTxCount:K=0,recentBlockHash:M,skipPreflight:A=!0}=b||{},I=M!=null?M:await Re(this.connection,this.blockhashCommitment);if((x=this.owner)!=null&&x.isKeyPair){if(h){let S=[],v=0;for(let V of d){if(++v,v<=K)continue;let g=await Wt(this.connection,V,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});S.push(g)}return{txIds:S,signedTxs:d}}return{txIds:await await Promise.all(d.map(async S=>(S.recentBlockhash=I,await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:A})))),signedTxs:d}}if(this.signAllTransactions){let S=d.map((V,g)=>(V.recentBlockhash=I,p[g].length&&V.sign(...p[g]),V));ke(S);let v=await this.signAllTransactions(S);if(h){let V=0,g=[],w=async()=>{if(!v[V])return;let k=await this.connection.sendRawTransaction(v[V].serialize(),{skipPreflight:A});g.push({txId:k,status:"sent",signedTx:v[V]}),B==null||B([...g]),V++;let C=!1,L=null,_=null,re=q=>{L!==null&&clearInterval(L),_!==null&&this.connection.removeSignatureListener(_);let W=g.findIndex($=>$.txId===k);if(W>-1){if(g[W].status==="error"||g[W].status==="success")return;g[W].status=q.err?"error":"success"}B==null||B([...g]),q.err||w()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(C){clearInterval(L);return}try{let W=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(C=!0,clearInterval(L),re({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",k))}catch(W){C=!0,clearInterval(L),console.error("getTransaction timeout:",W,k)}},dt)),_=this.connection.onSignature(k,q=>{if(C){this.connection.removeSignatureListener(_);return}C=!0,re(q)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:g.map(k=>k.txId),signedTxs:v}}else{let V=[];for(let g=0;g<v.length;g+=1){let w=await this.connection.sendRawTransaction(v[g].serialize(),{skipPreflight:A});V.push(w)}return{txIds:V,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var A;let M=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:c}=M,d=se(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=R(R({},this.cluster==="devnet"?await Et(this.connection):await _t(this.connection)),n),y=Array.from(new Set([...r,...this.lookupTableAddress])),P=[];for(let I of y)p[I]===void 0&&P.push(new Le(I));let b=await Vt({connection:this.connection,address:P});for(let[I,x]of Object.entries(b))p[I]=x;let h=u?Le.default.toBase58():c!=null?c:await Re(this.connection,this.blockhashCommitment),B=new Ze({payerKey:this.feePayer,recentBlockhash:h,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(I=>I.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let K=new He(B);return K.sign(this.signers),{builder:this,transaction:K,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var V;let{skipPreflight:x=!0,sendAndConfirm:S,notSendToRpc:v}=I||{};if(ke([K]),(V=this.owner)!=null&&V.isKeyPair){let g=await this.connection.sendTransaction(K,{skipPreflight:x});return S&&await mt(this.connection,g),{txId:g,signedTx:K}}if(this.signAllTransactions){let g=await this.signAllTransactions([K]);if(this.signers.length)for(let w of g)try{w.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(g[0],{skipPreflight:x}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}async buildV0MultiTx(t){var P;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),c=n.filter(b=>b.builder.instructions.length>0),d=[u,...c.map(b=>b.transaction)],p=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&p.forEach(b=>{b.some(h=>h.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),d.forEach(async(b,h)=>{b.sign(p[h])}),{builder:this,transactions:d,signers:p,instructionTypes:y,buildProps:r,execute:async b=>{var A;let{sequentially:h,onTxUpdate:B,recentBlockHash:K,skipPreflight:M=!0}=b||{};if(K&&d.forEach(I=>I.message.recentBlockhash=K),ke(d),(A=this.owner)!=null&&A.isKeyPair){if(h){let I=[];for(let x of d){let S=await this.connection.sendTransaction(x,{skipPreflight:M});await mt(this.connection,S),I.push(S)}return{txIds:I,signedTxs:d}}return{txIds:await Promise.all(d.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:M}))),signedTxs:d}}if(this.signAllTransactions){let I=await this.signAllTransactions(d);if(h){let x=0,S=[],v=async()=>{if(!I[x])return;let V=await this.connection.sendTransaction(I[x],{skipPreflight:M});S.push({txId:V,status:"sent",signedTx:I[x]}),B==null||B([...S]),x++;let g=!1,w=null,k=null,C=L=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);let _=S.findIndex(re=>re.txId===V);if(_>-1){if(S[_].status==="error"||S[_].status==="success")return;S[_].status=L.err?"error":"success"}B==null||B([...S]),L.err||v()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var L;if(g){clearInterval(w);return}try{let _=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(g=!0,clearInterval(w),C({err:((L=_.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",V))}catch(_){g=!0,clearInterval(w),console.error("getTransaction timeout:",_,V)}},dt)),k=this.connection.onSignature(V,L=>{if(g){this.connection.removeSignatureListener(k);return}g=!0,C(L)},"confirmed"),this.connection.getSignatureStatus(V)};return v(),{txIds:[],signedTxs:I}}else{let x=[];for(let S=0;S<I.length;S+=1){let v=await this.connection.sendTransaction(I[S],{skipPreflight:M});x.push(v)}return{txIds:x,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var B;let h=t||{},{splitIns:n=[],computeBudgetConfig:r}=h,u=se(h,["splitIns","computeBudgetConfig"]),c=r?lt(r):{instructions:[],instructionTypes:[]},d=this.signers.reduce((K,M)=>F(R({},K),{[M.publicKey.toBase58()]:M}),{}),p=[],y=[],P=[],b=0;if(this.allInstructions.forEach(K=>{let M=[...P,K],A=r?[...c.instructions,...M]:M,x=[...new Set(M.map(S=>S.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(S=>new Le(S));if(K!==n[b]&&P.length<12&&(Xe({instructions:A,payer:this.feePayer,signers:x})||Xe({instructions:M,payer:this.feePayer,signers:x})))P.push(K);else{if(P.length===0)throw Error("item ins too big");b+=K===n[b]?1:0,Xe({instructions:r?[...c.instructions,...P]:[...P],payer:this.feePayer,signers:x})?p.push(new Qe().add(...c.instructions,...P)):p.push(new Qe().add(...P)),y.push(Array.from(new Set(P.map(S=>S.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(S=>d[S]).filter(S=>S!==void 0)),P=[K]}}),P.length>0){let M=[...new Set(P.map(A=>A.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(A=>d[A]).filter(A=>A!==void 0);Xe({instructions:r?[...c.instructions,...P]:[...P],payer:this.feePayer,signers:M.map(A=>A.publicKey)})?p.push(new Qe().add(...c.instructions,...P)):p.push(new Qe().add(...P)),y.push(M)}return p.forEach(K=>K.feePayer=this.feePayer),(B=this.owner)!=null&&B.signer&&y.forEach(K=>{K.some(M=>M.publicKey.equals(this.owner.publicKey))||K.push(this.owner.signer)}),{builder:this,transactions:p,signers:y,instructionTypes:this.instructionTypes,execute:async K=>{var V;let{sequentially:M,onTxUpdate:A,skipTxCount:I=0,recentBlockHash:x,skipPreflight:S=!0}=K||{},v=x!=null?x:await Re(this.connection,this.blockhashCommitment);if(p.forEach(async(g,w)=>{g.recentBlockhash=v,y[w].length&&g.sign(...y[w])}),ke(p),(V=this.owner)!=null&&V.isKeyPair){if(M){let g=0,w=[];for(let k of p){if(++g,g<=I){w.push("tx skipped");continue}let C=await Wt(this.connection,k,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});w.push(C)}return{txIds:w,signedTxs:p}}return{txIds:await Promise.all(p.map(async g=>await this.connection.sendRawTransaction(g.serialize(),{skipPreflight:S}))),signedTxs:p}}if(this.signAllTransactions){let g=await this.signAllTransactions(p.slice(I,p.length)),w=[...p.slice(0,I),...g];if(M){let k=0,C=[],L=async()=>{if(!w[k])return;k<I&&(C.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...C]),k++,L());let _=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:S});C.push({txId:_,status:"sent",signedTx:w[k]}),A==null||A([...C]),k++;let re=!1,q=null,W=null,$=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let ne=C.findIndex(pe=>pe.txId===_);if(ne>-1){if(C[ne].status==="error"||C[ne].status==="success")return;C[ne].status=G.err?"error":"success"}A==null||A([...C]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(re){clearInterval(q);return}try{let ne=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(re=!0,clearInterval(q),$({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(ne){re=!0,clearInterval(q),console.error("getTransaction timeout:",ne,_)}},dt)),W=this.connection.onSignature(_,G=>{if(re){this.connection.removeSignatureListener(W);return}re=!0,$(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await L(),{txIds:C.map(_=>_.txId),signedTxs:w}}else{let k=[];for(let C=0;C<w.length;C+=1){let L=await this.connection.sendRawTransaction(w[C].serialize(),{skipPreflight:S});k.push(L)}return{txIds:k,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var V;let v=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:c=[],insCountLimit:d=12}=v,p=se(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=R(R({},this.cluster==="devnet"?await Et(this.connection):await _t(this.connection)),u),P=Array.from(new Set([...this.lookupTableAddress,...c])),b=[];for(let g of P)y[g]===void 0&&b.push(new Le(g));let h=await Vt({connection:this.connection,address:b});for(let[g,w]of Object.entries(h))y[g]=w;let B=n?lt(n):{instructions:[],instructionTypes:[]},K=await Re(this.connection,this.blockhashCommitment),M=this.signers.reduce((g,w)=>F(R({},g),{[w.publicKey.toBase58()]:w}),{}),A=[],I=[],x=[],S=0;if(this.allInstructions.forEach(g=>{let w=[...x,g],k=n?[...B.instructions,...w]:w;if(g!==r[S]&&x.length<d&&(Ye({instructions:k,payer:this.feePayer,lookupTableAddressAccount:y})||Ye({instructions:w,payer:this.feePayer,lookupTableAddressAccount:y})))x.push(g);else{if(x.length===0)throw Error("item ins too big");S+=g===r[S]?1:0;let C={};for(let L of[...new Set(P)])y[L]!==void 0&&(C[L]=y[L]);if(n&&Ye({instructions:[...B.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:K})){let L=new Ze({payerKey:this.feePayer,recentBlockhash:K,instructions:[...B.instructions,...x]}).compileToV0Message(Object.values(y));A.push(new He(L))}else{let L=new Ze({payerKey:this.feePayer,recentBlockhash:K,instructions:[...x]}).compileToV0Message(Object.values(y));A.push(new He(L))}I.push(Array.from(new Set(x.map(L=>L.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(L=>M[L]).filter(L=>L!==void 0)),x=[g]}}),x.length>0){let w=[...new Set(x.map(k=>k.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(k=>M[k]).filter(k=>k!==void 0);if(n&&Ye({instructions:[...B.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:K})){let k=new Ze({payerKey:this.feePayer,recentBlockhash:K,instructions:[...B.instructions,...x]}).compileToV0Message(Object.values(y));A.push(new He(k))}else{let k=new Ze({payerKey:this.feePayer,recentBlockhash:K,instructions:[...x]}).compileToV0Message(Object.values(y));A.push(new He(k))}I.push(w)}return(V=this.owner)!=null&&V.signer&&I.forEach(g=>{g.some(w=>w.publicKey.equals(this.owner.publicKey))||g.push(this.owner.signer)}),A.forEach((g,w)=>{g.sign(I[w])}),{builder:this,transactions:A,buildProps:t,signers:I,instructionTypes:this.instructionTypes,execute:async g=>{var re;let{sequentially:w,onTxUpdate:k,skipTxCount:C=0,recentBlockHash:L,skipPreflight:_=!0}=g||{};if(A.map(async(q,W)=>{I[W].length&&q.sign(I[W]),L&&(q.message.recentBlockhash=L)}),ke(A),(re=this.owner)!=null&&re.isKeyPair){if(w){let q=0,W=[];for(let $ of A){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:_});await mt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:A}}return{txIds:await Promise.all(A.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:_}))),signedTxs:A}}if(this.signAllTransactions){let q=await this.signAllTransactions(A.slice(C,A.length)),W=[...A.slice(0,C),...q];if(w){let $=0,G=[],ne=async()=>{if(!W[$])return;if($<C){G.push({txId:"",status:"success",signedTx:W[$]}),k==null||k([...G]),$++,ne();return}let pe=await this.connection.sendTransaction(W[$],{skipPreflight:_});G.push({txId:pe,status:"sent",signedTx:W[$]}),k==null||k([...G]),$++;let We=!1,Be=null,nt=null,un=Ae=>{Be!==null&&clearInterval(Be),nt!==null&&this.connection.removeSignatureListener(nt);let fe=G.findIndex(go=>go.txId===pe);if(fe>-1){if(G[fe].status==="error"||G[fe].status==="success")return;G[fe].status=Ae.err?"error":"success"}k==null||k([...G]),Ae.err||ne()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var Ae;if(We){clearInterval(Be);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});fe&&(We=!0,clearInterval(Be),un({err:((Ae=fe.meta)==null?void 0:Ae.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){We=!0,clearInterval(Be),console.error("getTransaction timeout:",fe,pe)}},dt)),nt=this.connection.onSignature(pe,Ae=>{if(We){this.connection.removeSignatureListener(nt);return}We=!0,un(Ae)},"confirmed"),this.connection.getSignatureStatus(pe)};return ne(),{txIds:[],signedTxs:W}}else{let $=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:_});$.push(ne)}return{txIds:$,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};var qt=(...i)=>i.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),ie=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new pt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(qt(t))}logInfo(...t){this.logger.info(qt(t))}logAndCreateError(...t){let n=qt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Uc,SystemProgram as zc}from"@solana/web3.js";import Qc from"bn.js";import{createCloseAccountInstruction as $c,createInitializeAccountInstruction as Jc,createTransferInstruction as el,TOKEN_PROGRAM_ID as tl}from"@solana/spl-token";import{Keypair as Rc,PublicKey as Lc}from"@solana/web3.js";import Mc from"bn.js";import{TOKEN_PROGRAM_ID as Vc}from"@solana/spl-token";import{PublicKey as ri}from"@solana/web3.js";import Rn,{isBN as Ln}from"bn.js";import{bits as Qo,BitStructure as Fu,blob as Zo,Blob as vu,cstr as Vu,f32 as _u,f32be as Eu,f64 as Du,f64be as Wu,greedy as qu,Layout as Ho,ns64 as Uu,ns64be as Gu,nu64 as zu,nu64be as Xu,offset as jo,s16 as Yu,s16be as Qu,s24 as Zu,s24be as Hu,s32 as $o,s32be as ju,s40 as $u,s40be as Ju,s48 as ec,s48be as tc,s8 as nc,seq as Jo,struct as oc,Structure as ei,u16 as ti,u16be as ic,u24 as rc,u24be as ac,u32 as ni,u32be as sc,u40 as uc,u40be as cc,u48 as lc,u48be as mc,u8 as oi,UInt as ii,union as dc,Union as pc,unionLayoutDiscriminator as fc,utf8 as yc}from"@solana/buffer-layout";var ft=Ho,Sn=ei;var Ut=ii;var xn=oi,H=ti;var yt=ni;var ue=$o;var Kn=Jo;var N=Zo;var Gt=Qo,Cn=jo;var he=class extends ft{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new Rn(this.blob.decode(n,r),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,r,u=0){return typeof n=="number"&&(n=new Rn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},bt=class extends ft{constructor(n){super(8,n);this._lower=Gt(yt(),!1),this._upper=Gt(yt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let u=this._lower.decode(n,r),c=this._upper.decode(n,r+this._lower.span);return R(R({},u),c)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function l(i){return new Ut(1,i)}function Y(i){return new Ut(4,i)}function e(i){return new he(8,!1,i)}function O(i){return new he(16,!1,i)}function On(i){return new he(1,!0,i)}function Oe(i){return new he(8,!0,i)}function Nn(i){return new he(16,!0,i)}var je=class extends ft{constructor(n,r,u,c){super(n.span,c);this.layout=n,this.decoder=r,this.encoder=u}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,u){return this.layout.encode(this.encoder(n),r,u)}getSpan(n,r){return this.layout.getSpan(n,r)}};function o(i){return new je(N(32),t=>new ri(t),t=>t.toBuffer(),i)}function ae(i){return new je(xn(),ai,si,i)}function ai(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function si(i){return i?1:0}function Mn(i,t){let n=yt("length"),r=m([n,f(i,Cn(n,-n.span),"values")]);return new je(r,({values:u})=>u,u=>({values:u}),t)}var zt=class extends Sn{decode(t,n){return super.decode(t,n)}};function m(i,t,n){return new zt(i,t,n)}function f(i,t,n){let r,u=typeof t=="number"?t:Ln(t)?t.toNumber():new Proxy(t,{get(c,d){if(!r){let p=Reflect.get(c,"count");r=Ln(p)?p.toNumber():p,Reflect.set(c,"count",r)}return Reflect.get(c,d)},set(c,d,p){return d==="count"&&(r=p),Reflect.set(c,d,p)}});return Kn(i,u,n)}var gt=m([o("mint"),o("owner"),e("amount"),Y("delegateOption"),o("delegate"),l("state"),Y("isNativeOption"),e("isNative"),e("delegatedAmount"),Y("closeAuthorityOption"),o("closeAuthority")]);import{PublicKey as dg,SystemProgram as pg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as yg}from"@solana/spl-token";import{PublicKey as Kl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Rl}from"@solana/spl-token";import{PublicKey as T}from"@solana/web3.js";var vn=new T("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Vn=new T("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),_n=new T("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Xt=new T("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Ml=new T("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ci=new T("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),En=new T("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Dn=new T("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Fl=new T("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),li=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Wn=new T("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),mi=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),di=new T("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),qn=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),vl=new T("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),pi=new T("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Yt=new T("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),fi=new T("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Vl=new T("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),yi=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),bi=new T("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),gi=new T("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),_l=new T("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),El=new T("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Dl=new T("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Wl=new T("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ql=new T("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Pe={OPEN_BOOK_PROGRAM:new T("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new T("Ray1111111111111111111111111111111111111111"),AMM_V4:new T("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new T("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new T("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new T("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new T("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new T("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new T("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new T("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new T("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new T("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:T.default,Router:new T("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new T("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new T("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new T("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new T("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new T("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new T("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new T("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new T("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new T("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new T("Ray1111111111111111111111111111111111111111")};import Bg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Uf,TOKEN_2022_PROGRAM_ID as Gf,TOKEN_PROGRAM_ID as zf}from"@solana/spl-token";import{PublicKey as Yf}from"@solana/web3.js";import Zf from"bn.js";import jf from"decimal.js";import{TOKEN_PROGRAM_ID as nm}from"@solana/spl-token";import{PublicKey as am}from"@solana/web3.js";var Pi=m([Y("mintAuthorityOption"),o("mintAuthority"),e("supply"),l("decimals"),l("isInitialized"),Y("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as mf,TOKEN_2022_PROGRAM_ID as df,TOKEN_PROGRAM_ID as pf}from"@solana/spl-token";import{Keypair as bf,PublicKey as gf,SystemProgram as Af,TransactionInstruction as wf}from"@solana/web3.js";import Tf from"bn.js";import D from"bn.js";var Me=new D(1).shln(64);var Ai=new D(1).shln(128),Qt=new D(1).shln(64).subn(1),wi=new D(1).shln(128).subn(1);var Fe=new D("4295048016"),ve=new D("79226673521066979257578248091"),ki=new D("59543866431248"),Ti=new D("184467440737095516"),hi=new D("15793534762490258745");var Zt=60,Pm=new D("18446743708227953217"),Ii=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var $e=3,Un=100;var Gn=10,zn=100,At=14;var j=new D(0),Ve=new D(1),Am=new D(-1);var wm=new D("18446744073700000000");var Bi=m([N(8),l("bump"),H("index"),o("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),H("tickSpacing"),Y("fundFeeRate"),f(Y(),1),o("fundOwner"),f(e(),3)]),Si=m([Y("blockTimestamp"),Oe("tickCumulative"),f(e(),4)]),Xn=m([N(8),ae("initialized"),e("recentEpoch"),H("observationIndex"),o("poolId"),f(Si,Un,"observations"),f(e(),4)]),xi=m([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),e("lastUpdateTimestamp"),f(l(),46)]),Ki=m([l("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),O("growthGlobalX64")]),Ht=m([N(8),l("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),l("mintDecimalsA"),l("mintDecimalsB"),H("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ue("tickCurrent"),Y(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),f(O(),4),l("status"),l("feeOn"),N(6),f(Ki,$e,"rewardInfos"),N(8*16,"tickArrayBitmap"),f(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),xi.replicate("dynamicFeeInfo"),f(e(),46)]),Ci=m([O("growthInsideLastX64"),e("rewardAmountOwed")]),Ri=m([N(8),l("bump"),o("nftMint"),o("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(Ci,$e,"rewardInfos"),e("recentEpoch"),f(e(),7)]),Im=m([N(8),l("bump"),o("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(O(),$e,"rewardGrowthInside"),e("recentEpoch"),f(e(),7)]),Li=m([ue("tick"),Nn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),f(O(),$e,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),f(Y(),3)]),Yn=m([N(8),o("poolId"),ue("startTickIndex"),f(Li,Zt,"ticks"),l("initializedTickCount"),e("recentEpoch"),f(l(),107)]),Oi=m([N(8),l("bump"),f(o(),Gn,"operationOwners"),f(o(),zn,"whitelistMints")]),Ni=m([N(8),o("poolId"),o("owner"),ue("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),f(e(),4)]),Qn=m([N(8),o("poolId"),N(8*8*At,"positiveTickArrayBitmap"),N(8*8*At,"negativeTickArrayBitmap")]),Bm=m([N(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),f(e(),8)]),Mi=m([N(8),o("wallet"),l("nonceIndex"),e("orderNonce"),f(e(),4)]),Sm=m([e(),l("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),f(e(),8)]),Fi=m([N(8),l("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),f(e(),8)]);import Cm from"bn.js";var Dm=Buffer.from("amm_config","utf8"),vi=Buffer.from("pool","utf8"),Vi=Buffer.from("pool_vault","utf8"),Wm=Buffer.from("pool_reward_vault","utf8"),qm=Buffer.from("position","utf8"),Um=Buffer.from("tick_array","utf8"),Gm=Buffer.from("operation","utf8"),zm=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Xm=Buffer.from("observation","utf8"),Ym=Buffer.from("support_mint","utf8"),Qm=Buffer.from("dynamic_fee_config","utf8");var Zm=Buffer.from("locked_position","utf8");import{sha256 as $i}from"js-sha256";import _i from"bn.js";import Jm from"decimal.js";var td=new _i(1).shln(256).subn(1);import Ad from"bn.js";import ud from"bn.js";import ld from"decimal.js";import Id from"bn.js";import Sd from"decimal.js";import{PublicKey as dp}from"@solana/web3.js";import fp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Tp,TOKEN_PROGRAM_ID as hp}from"@solana/spl-token";import xp from"decimal.js";import tp from"bn.js";import qd from"bn.js";import _p from"bn.js";function J(i){let t=`global:${i}`;return Buffer.from($i.digest(t)).slice(0,8)}Xn.span;var Rf=E("Raydium_Clmm"),Lf={createPool:J("create_pool"),createCustomizablePool:J("create_customizable_pool"),openPositionV2:J("open_position_v2"),openPositionWithToken22Nft:J("open_position_with_token22_nft"),closePosition:J("close_position"),increaseLiquidityV2:J("increase_liquidity_v2"),decreaseLiquid