UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 89.2 kB
var ho=Object.defineProperty,Io=Object.defineProperties;var Bo=Object.getOwnPropertyDescriptors;var mt=Object.getOwnPropertySymbols;var fn=Object.prototype.hasOwnProperty,yn=Object.prototype.propertyIsEnumerable;var pn=(i,t,n)=>t in i?ho(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,O=(i,t)=>{for(var n in t||(t={}))fn.call(t,n)&&pn(i,n,t[n]);if(mt)for(var n of mt(t))yn.call(t,n)&&pn(i,n,t[n]);return i},v=(i,t)=>Io(i,Bo(t));var pe=(i,t)=>{var n={};for(var o in i)fn.call(i,o)&&t.indexOf(o)<0&&(n[o]=i[o]);if(i!=null&&mt)for(var o of mt(i))t.indexOf(o)<0&&yn.call(i,o)&&(n[o]=i[o]);return n};import{PublicKey as Ko}from"@solana/web3.js";import{get as bn,set as So}from"lodash";var Ot=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(o=>typeof o=="object"?JSON.stringify(o):o).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}},gn={},xo={};function D(i){let t=bn(gn,i);if(!t){let n=bn(xo,i);t=new Ot({name:i,logLevel:n}),So(gn,i,t)}return t}import{MINT_SIZE as ts,TOKEN_PROGRAM_ID as ns,getTransferFeeConfig as os,unpackMint as is}from"@solana/spl-token";var Nt=D("Raydium_accountInfo_util");async function Ae(i,t,n){let{batchRequest:o,commitment:s="confirmed",chunkCount:a=100}=O({batchRequest:!1},n),d=Mt(t,a),f=new Array(d.length).fill([]);if(o){let b=d.map(B=>{let x=i._buildArgs([B.map(T=>T.toBase58())],s,"base64");return{methodName:"getMultipleAccounts",args:x}}),h=Mt(b,10);f=(await(await Promise.all(h.map(async B=>await i._rpcBatchRequest(B)))).flat()).map(B=>(B.error&&Nt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${B.error.message}`),B.result.value.map(x=>{if(x){let{data:T,executable:K,lamports:g,owner:y,rentEpoch:I}=x;return T.length!==2&&T[1]!=="base64"&&Nt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(T[0],"base64"),executable:K,lamports:g,owner:new Ko(y),rentEpoch:I}}return null})))}else try{f=await Promise.all(d.map(b=>i.getMultipleAccountsInfo(b,s)))}catch(b){b instanceof Error&&Nt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.message}`)}return f.flat()}import Re from"bn.js";import iR from"decimal.js";import vo from"big.js";import ks from"bn.js";import Co from"toformat";var Ro=Co,Ze=Ro;import pt from"big.js";import Oo from"bn.js";import No from"decimal.js-light";import He from"bn.js";var Pn=9007199254740991;function ae(i){let t=D("Raydium_parseBigNumberish");if(i instanceof He)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new He(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=Pn||i<=-Pn)&&t.logWithError(`BigNumberish number overflow: ${i}`),new He(String(i))):typeof i=="bigint"?new He(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new He(0))}var dt=D("module/fraction"),Ft=Ze(pt),je=Ze(No),Mo={[0]:je.ROUND_DOWN,[1]:je.ROUND_HALF_UP,[2]:je.ROUND_UP},Fo={[0]:pt.roundDown,[1]:pt.roundHalfUp,[2]:pt.roundUp},U=class{constructor(t,n=new Oo(1)){this.numerator=ae(t),this.denominator=ae(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(ae(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(ae(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(ae(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(ae(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},o=1){Number.isInteger(t)||dt.logWithError(`${t} is not an integer.`),t<=0&&dt.logWithError(`${t} is not positive.`),je.set({precision:t+1,rounding:Mo[o]});let s=new je(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return s.toFormat(s.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},o=1){return Number.isInteger(t)||dt.logWithError(`${t} is not an integer.`),t<0&&dt.logWithError(`${t} is negative.`),Ft.DP=t,Ft.RM=Fo[o]||1,new Ft(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Rs=D("Raydium_amount"),Ls=Ze(vo);import{PublicKey as _o}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as An}from"@solana/spl-token";var ft={chainId:101,address:_o.default.toBase58(),programId:An.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ye={chainId:101,address:"So11111111111111111111111111111111111111112",programId:An.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as Vt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as wn,SYSVAR_RENT_PUBKEY as Eo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Do}from"@solana/spl-token";function Oe({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var Wo=[Oe({pubkey:Do,isWritable:!1}),Oe({pubkey:wn.programId,isWritable:!1}),Oe({pubkey:Eo,isWritable:!1})];function kn({publicKey:i,transformSol:t}){let n=Tn(i.toString());if(n instanceof X)return t&&n.equals(Be)?fe:n;if(t&&n.toString()===Be.toBase58())return fe;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Tn(i){try{return new X(i)}catch{return i}}var vt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ke=new X("SysvarRent111111111111111111111111111111111"),qo=new X("SysvarC1ock11111111111111111111111111111111"),Ne=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Uo=new X("Sysvar1nstructions1111111111111111111111111"),hn=wn.programId,Es=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ds=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ws=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),qs=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Us=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Gs=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),zs=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Xs=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ys=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Qs=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Zs=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),fe=new X("So11111111111111111111111111111111111111112"),Be=X.default;var _t=class{constructor({mint:t,decimals:n,symbol:o,name:s,skipMint:a=!1,isToken2022:d=!1}){if(t===Be.toBase58()||t instanceof Vt&&Be.equals(t)){this.decimals=ye.decimals,this.symbol=ye.symbol,this.name=ye.name,this.mint=new Vt(ye.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=o||t.toString().substring(0,6),this.name=s||t.toString().substring(0,6),this.mint=a?Vt.default:kn({publicKey:t}),this.isToken2022=d}equals(t){return this===t?!0:this.mint.equals(t.mint)}},oe=_t;oe.WSOL=new _t(v(O({},ye),{mint:ye.address}));var Et=class{constructor({decimals:t,symbol:n="UNKNOWN",name:o="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=o}equals(t){return this===t}},yt=Et;yt.SOL=new Et(ft);import Go from"bn.js";var su=new U(new Go(100));var pu=D("Raydium_price");import{merge as iC}from"lodash";import Tu from"axios";var In={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"},zo=v(O({},In),{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 zu=D("Raydium_Api");import{PublicKey as cm,SystemProgram as lm}from"@solana/web3.js";import{AccountLayout as ym,createAssociatedTokenAccountIdempotentInstruction as bm,TOKEN_PROGRAM_ID as gm,TOKEN_2022_PROGRAM_ID as Pm}from"@solana/spl-token";import{PublicKey as _e,sendAndConfirmTransaction as zt,SystemProgram as jo,Transaction as et,TransactionMessage as tt,VersionedTransaction as nt}from"@solana/web3.js";import $o from"axios";import{PublicKey as Dt,AddressLookupTableAccount as ve}from"@solana/web3.js";async function Wt({connection:i,address:t,cluster:n="mainnet"}){let o=await Ae(i,[...new Set(t.map(a=>a.toString()))].map(a=>new Dt(a))),s={};for(let a=0;a<t.length;a++){let d=o[a],f=t[a];if(!d)continue;let b=new ve({key:f,state:ve.deserialize(d.data)});s[f.toString()]=b,n==="devnet"?Fe[f.toString()]=b:Me[f.toString()]=b}return s}var Me={},qt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Me[t])return Me;let n=new Dt(t),o=await i.getAccountInfo(n);return o&&(Me[t]=new ve({key:n,state:ve.deserialize(o.data)})),Me},Fe={},Ut=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Fe[t])return Fe;let n=new Dt(t),o=await i.getAccountInfo(n);return o&&(Fe[t]=new ve({key:n,state:ve.deserialize(o.data)})),Fe};var H={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 Bn,Keypair as xn,PublicKey as Xo,Transaction as Kn,TransactionMessage as Yo,VersionedTransaction as Cn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Qo}from"@solana/spl-token";var Sn=D("Raydium_txUtil"),Rn=1644;function bt(i){let t=[],n=[];return i.microLamports&&(t.push(Bn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(H.SetComputeUnitPrice)),i.units&&(t.push(Bn.setComputeUnitLimit({units:i.units})),n.push(H.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Ve(i,t){var o,s;let n=t!=null?t:"confirmed";return(s=await((o=i.getLatestBlockhash)==null?void 0:o.call(i,{commitment:n})))==null?void 0:s.blockhash}async function gt(i,t){return i.getSignatureStatuses([t]),new Promise((n,o)=>{let s=setTimeout(o,6e4);i.onSignature(t,a=>{if(clearTimeout(s),!a.err){n("");return}o(Object.assign(a.err,{txId:t}))},"confirmed")})}function Gt(i,t){i.length<1&&Sn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&Sn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Kn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Rn}catch{return!1}}function le(i,t){let[n,o]=Xo.findProgramAddressSync(i,t);return{publicKey:n,nonce:o}}function $e({instructions:i,payer:t,signers:n}){return Gt(i,[t,...n])}function Je({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:o=xn.generate().publicKey.toString()}){let a=new Yo({payerKey:t,recentBlockhash:o,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Cn(a).serialize()).toString("base64").length<Rn}catch{return!1}}var Zo=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Ho=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof Cn&&(t=Zo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Se(i){let t=[];return i.forEach(n=>{n instanceof Kn&&(n.recentBlockhash||(n.recentBlockhash=Qo.toBase58()),n.feePayer||(n.feePayer=xn.generate().publicKey)),t.push(Ho(n))}),console.log("simulate tx string:",t),t}var Pt=2e3,At=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 o;let t=(await $o.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(o=t==null?void 0:t[15])!=null?o:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:o}=bt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(jo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new _e(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(H.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let o=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(o))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:o=[],instructionTypes:s=[],endInstructionTypes:a=[],lookupTableAddress:d=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...o),this.instructionTypes.push(...s),this.endInstructionTypes.push(...a),this.lookupTableAddress.push(...d.filter(f=>f!==_e.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:o}){return t===0?await this.buildV0(v(O({},n||{}),{lookupTableAddress:o})):this.build(n)}build(t){var o;let n=new et;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((o=this.owner)==null?void 0:o.signer)&&!this.signers.some(s=>s.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 s=>{var P;let{recentBlockHash:a,skipPreflight:d=!0,sendAndConfirm:f,notSendToRpc:b}=s||{},h=a!=null?a:await Ve(this.connection,this.blockhashCommitment);if(n.recentBlockhash=h,this.signers.length&&n.sign(...this.signers),Se([n]),(P=this.owner)!=null&&P.isKeyPair)return{txId:f?await zt(this.connection,n,this.signers.find(x=>x.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 B=await this.signAllTransactions([n]);if(this.signers.length)for(let x of B)try{x.sign(...this.signers)}catch{}return{txId:b?"":await this.connection.sendRawTransaction(B[0].serialize(),{skipPreflight:d}),signedTx:B[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var h;let{extraPreBuildData:n=[],extInfo:o}=t,{transaction:s}=this.build(o),a=n.filter(P=>P.transaction.instructions.length>0),d=[s,...a.map(P=>P.transaction)],f=[this.signers,...a.map(P=>P.signers)],b=[...this.instructionTypes,...a.map(P=>P.instructionTypes).flat()];return(h=this.owner)!=null&&h.signer&&f.forEach(P=>{P.some(B=>B.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:d,signers:f,instructionTypes:b,execute:async P=>{var I;let{sequentially:B,onTxUpdate:x,skipTxCount:T=0,recentBlockHash:K,skipPreflight:g=!0}=P||{},y=K!=null?K:await Ve(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(B){let k=[],N=0;for(let L of d){if(++N,N<=T)continue;let p=await zt(this.connection,L,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});k.push(p)}return{txIds:k,signedTxs:d}}return{txIds:await await Promise.all(d.map(async k=>(k.recentBlockhash=y,await this.connection.sendRawTransaction(k.serialize(),{skipPreflight:g})))),signedTxs:d}}if(this.signAllTransactions){let k=d.map((L,p)=>(L.recentBlockhash=y,f[p].length&&L.sign(...f[p]),L));Se(k);let N=await this.signAllTransactions(k);if(B){let L=0,p=[],w=async()=>{if(!N[L])return;let S=await this.connection.sendRawTransaction(N[L].serialize(),{skipPreflight:g});p.push({txId:S,status:"sent",signedTx:N[L]}),x==null||x([...p]),L++;let C=!1,M=null,F=null,G=q=>{M!==null&&clearInterval(M),F!==null&&this.connection.removeSignatureListener(F);let _=p.findIndex($=>$.txId===S);if(_>-1){if(p[_].status==="error"||p[_].status==="success")return;p[_].status=q.err?"error":"success"}x==null||x([...p]),q.err||w()};this.loopMultiTxStatus&&(M=setInterval(async()=>{var q;if(C){clearInterval(M);return}try{let _=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(C=!0,clearInterval(M),G({err:((q=_.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",S))}catch(_){C=!0,clearInterval(M),console.error("getTransaction timeout:",_,S)}},Pt)),F=this.connection.onSignature(S,q=>{if(C){this.connection.removeSignatureListener(F);return}C=!0,G(q)},"confirmed"),this.connection.getSignatureStatus(S)};return await w(),{txIds:p.map(S=>S.txId),signedTxs:N}}else{let L=[];for(let p=0;p<N.length;p+=1){let w=await this.connection.sendRawTransaction(N[p].serialize(),{skipPreflight:g});L.push(w)}return{txIds:L,signedTxs:N}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:o}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:o||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:o})}async buildV0(t){var g;let K=t||{},{lookupTableCache:n={},lookupTableAddress:o=[],forerunCreate:s,recentBlockhash:a}=K,d=pe(K,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=O(O({},this.cluster==="devnet"?await Ut(this.connection):await qt(this.connection)),n),b=Array.from(new Set([...o,...this.lookupTableAddress])),h=[];for(let y of b)f[y]===void 0&&h.push(new _e(y));let P=await Wt({connection:this.connection,address:h});for(let[y,I]of Object.entries(P))f[y]=I;let B=s?_e.default.toBase58():a!=null?a:await Ve(this.connection,this.blockhashCommitment),x=new tt({payerKey:this.feePayer,recentBlockhash:B,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((g=this.owner)==null?void 0:g.signer)&&!this.signers.some(y=>y.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let T=new nt(x);return T.sign(this.signers),{builder:this,transaction:T,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async y=>{var L;let{skipPreflight:I=!0,sendAndConfirm:k,notSendToRpc:N}=y||{};if(Se([T]),(L=this.owner)!=null&&L.isKeyPair){let p=await this.connection.sendTransaction(T,{skipPreflight:I});return k&&await gt(this.connection,p),{txId:p,signedTx:T}}if(this.signAllTransactions){let p=await this.signAllTransactions([T]);if(this.signers.length)for(let w of p)try{w.sign(this.signers)}catch{}return{txId:N?"":await this.connection.sendTransaction(p[0],{skipPreflight:I}),signedTx:p[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}async buildV0MultiTx(t){var h;let{extraPreBuildData:n=[],buildProps:o}=t,{transaction:s}=await this.buildV0(o),a=n.filter(P=>P.builder.instructions.length>0),d=[s,...a.map(P=>P.transaction)],f=[this.signers,...a.map(P=>P.signers)],b=[...this.instructionTypes,...a.map(P=>P.instructionTypes).flat()];return(h=this.owner)!=null&&h.signer&&f.forEach(P=>{P.some(B=>B.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),d.forEach(async(P,B)=>{P.sign(f[B])}),{builder:this,transactions:d,signers:f,instructionTypes:b,buildProps:o,execute:async P=>{var g;let{sequentially:B,onTxUpdate:x,recentBlockHash:T,skipPreflight:K=!0}=P||{};if(T&&d.forEach(y=>y.message.recentBlockhash=T),Se(d),(g=this.owner)!=null&&g.isKeyPair){if(B){let y=[];for(let I of d){let k=await this.connection.sendTransaction(I,{skipPreflight:K});await gt(this.connection,k),y.push(k)}return{txIds:y,signedTxs:d}}return{txIds:await Promise.all(d.map(async y=>await this.connection.sendTransaction(y,{skipPreflight:K}))),signedTxs:d}}if(this.signAllTransactions){let y=await this.signAllTransactions(d);if(B){let I=0,k=[],N=async()=>{if(!y[I])return;let L=await this.connection.sendTransaction(y[I],{skipPreflight:K});k.push({txId:L,status:"sent",signedTx:y[I]}),x==null||x([...k]),I++;let p=!1,w=null,S=null,C=M=>{w!==null&&clearInterval(w),S!==null&&this.connection.removeSignatureListener(S);let F=k.findIndex(G=>G.txId===L);if(F>-1){if(k[F].status==="error"||k[F].status==="success")return;k[F].status=M.err?"error":"success"}x==null||x([...k]),M.err||N()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var M;if(p){clearInterval(w);return}try{let F=await this.connection.getTransaction(L,{commitment:"confirmed",maxSupportedTransactionVersion:0});F&&(p=!0,clearInterval(w),C({err:((M=F.meta)==null?void 0:M.err)||null}),console.log("tx status from getTransaction:",L))}catch(F){p=!0,clearInterval(w),console.error("getTransaction timeout:",F,L)}},Pt)),S=this.connection.onSignature(L,M=>{if(p){this.connection.removeSignatureListener(S);return}p=!0,C(M)},"confirmed"),this.connection.getSignatureStatus(L)};return N(),{txIds:[],signedTxs:y}}else{let I=[];for(let k=0;k<y.length;k+=1){let N=await this.connection.sendTransaction(y[k],{skipPreflight:K});I.push(N)}return{txIds:I,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuild(t){var x;let B=t||{},{splitIns:n=[],computeBudgetConfig:o}=B,s=pe(B,["splitIns","computeBudgetConfig"]),a=o?bt(o):{instructions:[],instructionTypes:[]},d=this.signers.reduce((T,K)=>v(O({},T),{[K.publicKey.toBase58()]:K}),{}),f=[],b=[],h=[],P=0;if(this.allInstructions.forEach(T=>{let K=[...h,T],g=o?[...a.instructions,...K]:K,I=[...new Set(K.map(k=>k.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat()).values()].map(k=>new _e(k));if(T!==n[P]&&h.length<12&&($e({instructions:g,payer:this.feePayer,signers:I})||$e({instructions:K,payer:this.feePayer,signers:I})))h.push(T);else{if(h.length===0)throw Error("item ins too big");P+=T===n[P]?1:0,$e({instructions:o?[...a.instructions,...h]:[...h],payer:this.feePayer,signers:I})?f.push(new et().add(...a.instructions,...h)):f.push(new et().add(...h)),b.push(Array.from(new Set(h.map(k=>k.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat())).map(k=>d[k]).filter(k=>k!==void 0)),h=[T]}}),h.length>0){let K=[...new Set(h.map(g=>g.keys.filter(y=>y.isSigner).map(y=>y.pubkey.toString())).flat()).values()].map(g=>d[g]).filter(g=>g!==void 0);$e({instructions:o?[...a.instructions,...h]:[...h],payer:this.feePayer,signers:K.map(g=>g.publicKey)})?f.push(new et().add(...a.instructions,...h)):f.push(new et().add(...h)),b.push(K)}return f.forEach(T=>T.feePayer=this.feePayer),(x=this.owner)!=null&&x.signer&&b.forEach(T=>{T.some(K=>K.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),{builder:this,transactions:f,signers:b,instructionTypes:this.instructionTypes,execute:async T=>{var L;let{sequentially:K,onTxUpdate:g,skipTxCount:y=0,recentBlockHash:I,skipPreflight:k=!0}=T||{},N=I!=null?I:await Ve(this.connection,this.blockhashCommitment);if(f.forEach(async(p,w)=>{p.recentBlockhash=N,b[w].length&&p.sign(...b[w])}),Se(f),(L=this.owner)!=null&&L.isKeyPair){if(K){let p=0,w=[];for(let S of f){if(++p,p<=y){w.push("tx skipped");continue}let C=await zt(this.connection,S,this.signers.find(M=>M.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:k});w.push(C)}return{txIds:w,signedTxs:f}}return{txIds:await Promise.all(f.map(async p=>await this.connection.sendRawTransaction(p.serialize(),{skipPreflight:k}))),signedTxs:f}}if(this.signAllTransactions){let p=await this.signAllTransactions(f.slice(y,f.length)),w=[...f.slice(0,y),...p];if(K){let S=0,C=[],M=async()=>{if(!w[S])return;S<y&&(C.push({txId:"",status:"success",signedTx:w[S]}),g==null||g([...C]),S++,M());let F=await this.connection.sendRawTransaction(w[S].serialize(),{skipPreflight:k});C.push({txId:F,status:"sent",signedTx:w[S]}),g==null||g([...C]),S++;let G=!1,q=null,_=null,$=z=>{q!==null&&clearInterval(q),_!==null&&this.connection.removeSignatureListener(_);let re=C.findIndex(ge=>ge.txId===F);if(re>-1){if(C[re].status==="error"||C[re].status==="success")return;C[re].status=z.err?"error":"success"}g==null||g([...C]),z.err||M()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var z;if(G){clearInterval(q);return}try{let re=await this.connection.getTransaction(F,{commitment:"confirmed",maxSupportedTransactionVersion:0});re&&(G=!0,clearInterval(q),$({err:((z=re.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",F))}catch(re){G=!0,clearInterval(q),console.error("getTransaction timeout:",re,F)}},Pt)),_=this.connection.onSignature(F,z=>{if(G){this.connection.removeSignatureListener(_);return}G=!0,$(z)},"confirmed"),this.connection.getSignatureStatus(F)};return await M(),{txIds:C.map(F=>F.txId),signedTxs:w}}else{let S=[];for(let C=0;C<w.length;C+=1){let M=await this.connection.sendRawTransaction(w[C].serialize(),{skipPreflight:k});S.push(M)}return{txIds:S,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}async sizeCheckBuildV0(t){var L;let N=t||{},{computeBudgetConfig:n,splitIns:o=[],lookupTableCache:s={},lookupTableAddress:a=[],insCountLimit:d=12}=N,f=pe(N,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=O(O({},this.cluster==="devnet"?await Ut(this.connection):await qt(this.connection)),s),h=Array.from(new Set([...this.lookupTableAddress,...a])),P=[];for(let p of h)b[p]===void 0&&P.push(new _e(p));let B=await Wt({connection:this.connection,address:P});for(let[p,w]of Object.entries(B))b[p]=w;let x=n?bt(n):{instructions:[],instructionTypes:[]},T=await Ve(this.connection,this.blockhashCommitment),K=this.signers.reduce((p,w)=>v(O({},p),{[w.publicKey.toBase58()]:w}),{}),g=[],y=[],I=[],k=0;if(this.allInstructions.forEach(p=>{let w=[...I,p],S=n?[...x.instructions,...w]:w;if(p!==o[k]&&I.length<d&&(Je({instructions:S,payer:this.feePayer,lookupTableAddressAccount:b})||Je({instructions:w,payer:this.feePayer,lookupTableAddressAccount:b})))I.push(p);else{if(I.length===0)throw Error("item ins too big");k+=p===o[k]?1:0;let C={};for(let M of[...new Set(h)])b[M]!==void 0&&(C[M]=b[M]);if(n&&Je({instructions:[...x.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:T})){let M=new tt({payerKey:this.feePayer,recentBlockhash:T,instructions:[...x.instructions,...I]}).compileToV0Message(Object.values(b));g.push(new nt(M))}else{let M=new tt({payerKey:this.feePayer,recentBlockhash:T,instructions:[...I]}).compileToV0Message(Object.values(b));g.push(new nt(M))}y.push(Array.from(new Set(I.map(M=>M.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(M=>K[M]).filter(M=>M!==void 0)),I=[p]}}),I.length>0){let w=[...new Set(I.map(S=>S.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(S=>K[S]).filter(S=>S!==void 0);if(n&&Je({instructions:[...x.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:T})){let S=new tt({payerKey:this.feePayer,recentBlockhash:T,instructions:[...x.instructions,...I]}).compileToV0Message(Object.values(b));g.push(new nt(S))}else{let S=new tt({payerKey:this.feePayer,recentBlockhash:T,instructions:[...I]}).compileToV0Message(Object.values(b));g.push(new nt(S))}y.push(w)}return(L=this.owner)!=null&&L.signer&&y.forEach(p=>{p.some(w=>w.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),g.forEach((p,w)=>{p.sign(y[w])}),{builder:this,transactions:g,buildProps:t,signers:y,instructionTypes:this.instructionTypes,execute:async p=>{var G;let{sequentially:w,onTxUpdate:S,skipTxCount:C=0,recentBlockHash:M,skipPreflight:F=!0}=p||{};if(g.map(async(q,_)=>{y[_].length&&q.sign(y[_]),M&&(q.message.recentBlockhash=M)}),Se(g),(G=this.owner)!=null&&G.isKeyPair){if(w){let q=0,_=[];for(let $ of g){if(++q,q<=C){console.log("skip tx: ",q),_.push("tx skipped");continue}let z=await this.connection.sendTransaction($,{skipPreflight:F});await gt(this.connection,z),_.push(z)}return{txIds:_,signedTxs:g}}return{txIds:await Promise.all(g.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:F}))),signedTxs:g}}if(this.signAllTransactions){let q=await this.signAllTransactions(g.slice(C,g.length)),_=[...g.slice(0,C),...q];if(w){let $=0,z=[],re=async()=>{if(!_[$])return;if($<C){z.push({txId:"",status:"success",signedTx:_[$]}),S==null||S([...z]),$++,re();return}let ge=await this.connection.sendTransaction(_[$],{skipPreflight:F});z.push({txId:ge,status:"sent",signedTx:_[$]}),S==null||S([...z]),$++;let Ye=!1,Le=null,lt=null,dn=Ie=>{Le!==null&&clearInterval(Le),lt!==null&&this.connection.removeSignatureListener(lt);let Pe=z.findIndex(To=>To.txId===ge);if(Pe>-1){if(z[Pe].status==="error"||z[Pe].status==="success")return;z[Pe].status=Ie.err?"error":"success"}S==null||S([...z]),Ie.err||re()};this.loopMultiTxStatus&&(Le=setInterval(async()=>{var Ie;if(Ye){clearInterval(Le);return}try{let Pe=await this.connection.getTransaction(ge,{commitment:"confirmed",maxSupportedTransactionVersion:0});Pe&&(Ye=!0,clearInterval(Le),dn({err:((Ie=Pe.meta)==null?void 0:Ie.err)||null}),console.log("tx status from getTransaction:",ge))}catch(Pe){Ye=!0,clearInterval(Le),console.error("getTransaction timeout:",Pe,ge)}},Pt)),lt=this.connection.onSignature(ge,Ie=>{if(Ye){this.connection.removeSignatureListener(lt);return}Ye=!0,dn(Ie)},"confirmed"),this.connection.getSignatureStatus(ge)};return re(),{txIds:[],signedTxs:_}}else{let $=[];for(let z=0;z<_.length;z+=1){let re=await this.connection.sendTransaction(_[z],{skipPreflight:F});$.push(re)}return{txIds:$,signedTxs:_}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};var Xt=(...i)=>i.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),se=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=D(n)}createTxBuilder(t){return this.scope.checkOwner(),new At({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(Xt(t))}logInfo(...t){this.logger.info(Xt(t))}logAndCreateError(...t){let n=Xt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Dl,SystemProgram as ql}from"@solana/web3.js";import zl from"bn.js";import{createCloseAccountInstruction as Zl,createInitializeAccountInstruction as Hl,createTransferInstruction as jl,TOKEN_PROGRAM_ID as $l}from"@solana/spl-token";import{Keypair as xl,PublicKey as Kl}from"@solana/web3.js";import Ll from"bn.js";import{TOKEN_PROGRAM_ID as Ml}from"@solana/spl-token";import{PublicKey as mi}from"@solana/web3.js";import Fn,{isBN as vn}from"bn.js";import{bits as Jo,BitStructure as Nc,blob as ei,Blob as Mc,cstr as Fc,f32 as vc,f32be as Vc,f64 as _c,f64be as Ec,greedy as Dc,Layout as ti,ns64 as Wc,ns64be as qc,nu64 as ni,nu64be as Uc,offset as oi,s16 as Gc,s16be as zc,s24 as Xc,s24be as Yc,s32 as ii,s32be as Qc,s40 as Zc,s40be as Hc,s48 as jc,s48be as $c,s8 as Jc,seq as ri,struct as el,Structure as ai,u16 as si,u16be as tl,u24 as nl,u24be as ol,u32 as ui,u32be as il,u40 as rl,u40be as al,u48 as sl,u48be as ul,u8 as ci,UInt as li,union as cl,Union as ll,unionLayoutDiscriminator as ml,utf8 as dl}from"@solana/buffer-layout";var wt=ti,Ln=ai;var Yt=li;var On=ci,Q=si;var ot=ui;var Nn=ni;var me=ii;var Mn=ri;var E=ei;var Qt=Jo,Zt=oi;var Ke=class extends wt{constructor(n,o,s){super(n,s);this.blob=E(n),this.signed=o}decode(n,o=0){let s=new Fn(this.blob.decode(n,o),10,"le");return this.signed?s.fromTwos(this.span*8).clone():s}encode(n,o,s=0){return typeof n=="number"&&(n=new Fn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),o,s)}},kt=class extends wt{constructor(n){super(8,n);this._lower=Qt(ot(),!1),this._upper=Qt(ot(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,o=0){let s=this._lower.decode(n,o),a=this._upper.decode(n,o+this._lower.span);return O(O({},s),a)}encode(n,o,s=0){return this._lower.encode(n,o,s)+this._upper.encode(n,o,s+this._lower.span)}};function l(i){return new Yt(1,i)}function Y(i){return new Yt(4,i)}function e(i){return new Ke(8,!1,i)}function V(i){return new Ke(16,!1,i)}function Vn(i){return new Ke(1,!0,i)}function Ee(i){return new Ke(8,!0,i)}function _n(i){return new Ke(16,!0,i)}var Ce=class extends wt{constructor(n,o,s,a){super(n.span,a);this.layout=n,this.decoder=o,this.encoder=s}decode(n,o){return this.decoder(this.layout.decode(n,o))}encode(n,o,s){return this.layout.encode(this.encoder(n),o,s)}getSpan(n,o){return this.layout.getSpan(n,o)}};function r(i){return new Ce(E(32),t=>new mi(t),t=>t.toBuffer(),i)}function ce(i){return new Ce(On(),di,pi,i)}function di(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function pi(i){return i?1:0}function En(i,t){let n=ot("length"),o=m([n,A(i,Zt(n,-n.span),"values")]);return new Ce(o,({values:s})=>s,s=>({values:s}),t)}function fi(i){let t=ot("length"),n=m([t,E(Zt(t,-t.span),"data")]);return new Ce(n,({data:o})=>o,o=>({data:o}),i)}function J(i){return new Ce(fi(),t=>t.toString("utf-8"),t=>Buffer.from(t,"utf-8"),i)}var Ht=class extends Ln{decode(t,n){return super.decode(t,n)}};function m(i,t,n){return new Ht(i,t,n)}function A(i,t,n){let o,s=typeof t=="number"?t:vn(t)?t.toNumber():new Proxy(t,{get(a,d){if(!o){let f=Reflect.get(a,"count");o=vn(f)?f.toNumber():f,Reflect.set(a,"count",o)}return Reflect.get(a,d)},set(a,d,f){return d==="count"&&(o=f),Reflect.set(a,d,f)}});return Mn(i,s,n)}var Tt=m([r("mint"),r("owner"),e("amount"),Y("delegateOption"),r("delegate"),l("state"),Y("isNativeOption"),e("isNative"),e("delegatedAmount"),Y("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as aP,SystemProgram as sP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as cP}from"@solana/spl-token";import{PublicKey as Bm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as xm}from"@solana/spl-token";import{PublicKey as R}from"@solana/web3.js";var Wn=new R("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),qn=new R("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Un=new R("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),jt=new R("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Lm=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),bi=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Gn=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),zn=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Om=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),gi=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Xn=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Pi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ai=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Yn=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Nm=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),wi=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ki=new R("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Ti=new R("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),hi=new R("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ii=new R("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),$t=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Bi=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Mm=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Si=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),xi=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ki=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Fm=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),vm=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Vm=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),_m=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Em=new R("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),it={IDO_PROGRAM_ID_V1:ki,IDO_PROGRAM_ID_V2:Ti,IDO_PROGRAM_ID_V3:hi,IDO_PROGRAM_ID_V4:Ii};var Te={OPEN_BOOK_PROGRAM:new R("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new R("Ray1111111111111111111111111111111111111111"),AMM_V4:new R("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new R("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new R("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new R("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new R("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new R("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new R("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new R("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:R.default,Router:new R("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new R("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new R("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new R("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new R("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new R("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new R("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new R("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new R("Ray1111111111111111111111111111111111111111")};import AP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Vy,TOKEN_2022_PROGRAM_ID as _y,TOKEN_PROGRAM_ID as Ey}from"@solana/spl-token";import{PublicKey as Wy}from"@solana/web3.js";import Uy from"bn.js";import zy from"decimal.js";import{TOKEN_PROGRAM_ID as Jm}from"@solana/spl-token";import{PublicKey as od}from"@solana/web3.js";var Ci=m([Y("mintAuthorityOption"),r("mintAuthority"),e("supply"),l("decimals"),l("isInitialized"),Y("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as ry,TOKEN_2022_PROGRAM_ID as ay,TOKEN_PROGRAM_ID as sy}from"@solana/spl-token";import{Keypair as ly,PublicKey as my,SystemProgram as py,TransactionInstruction as fy}from"@solana/web3.js";import by from"bn.js";import W from"bn.js";var We=new W(1).shln(64);var Ri=new W(1).shln(128),Jt=new W(1).shln(64).subn(1),Li=new W(1).shln(128).subn(1);var qe=new W("4295048016"),Ue=new W("79226673521066979257578248091"),Oi=new W("59543866431248"),Ni=new W("184467440737095516"),Mi=new W("15793534762490258745");var en=60,yd=new W("18446743708227953217"),Fi=[{bit:0,factor:new W("fffcb933bd6fb800",16)},{bit:1,factor:new W("fff97272373d4000",16)},{bit:2,factor:new W("fff2e50f5f657000",16)},{bit:3,factor:new W("ffe5caca7e10f000",16)},{bit:4,factor:new W("ffcb9843d60f7000",16)},{bit:5,factor:new W("ff973b41fa98e800",16)},{bit:6,factor:new W("ff2ea16466c9b000",16)},{bit:7,factor:new W("fe5dee046a9a3800",16)},{bit:8,factor:new W("fcbe86c7900bb000",16)},{bit:9,factor:new W("f987a7253ac65800",16)},{bit:10,factor:new W("f3392b0822bb6000",16)},{bit:11,factor:new W("e7159475a2caf000",16)},{bit:12,factor:new W("d097f3bdfd2f2000",16)},{bit:13,factor:new W("a9f746462d9f8000",16)},{bit:14,factor:new W("70d869a156f31c00",16)},{bit:15,factor:new W("31be135f97ed3200",16)},{bit:16,factor:new W("9aa508b5b85a500",16)},{bit:17,factor:new W("5d6af8dedc582c",16)},{bit:18,factor:new W("2216e584f5fa",16)}];var rt=3,Qn=100;var Zn=10,Hn=100,It=14;var j=new W(0),Ge=new W(1),bd=new W(-1);var gd=new W("18446744073700000000");var vi=m([E(8),l("bump"),Q("index"),r("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),Q("tickSpacing"),Y("fundFeeRate"),A(Y(),1),r("fundOwner"),A(e(),3)]),Vi=m([Y("blockTimestamp"),Ee("tickCumulative"),A(e(),4)]),jn=m([E(8),ce("initialized"),e("recentEpoch"),Q("observationIndex"),r("poolId"),A(Vi,Qn,"observations"),A(e(),4)]),_i=m([Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),me("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),e("lastUpdateTimestamp"),A(l(),46)]),Ei=m([l("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),V("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),V("growthGlobalX64")]),tn=m([E(8),l("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),l("mintDecimalsA"),l("mintDecimalsB"),Q("tickSpacing"),V("liquidity"),V("sqrtPriceX64"),me("tickCurrent"),Y(),V("feeGrowthGlobalX64A"),V("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),A(V(),4),l("status"),l("feeOn"),E(6),A(Ei,rt,"rewardInfos"),E(8*16,"tickArrayBitmap"),A(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),_i.replicate("dynamicFeeInfo"),A(e(),46)]),Di=m([V("growthInsideLastX64"),e("rewardAmountOwed")]),Wi=m([E(8),l("bump"),r("nftMint"),r("poolId"),me("tickLower"),me("tickUpper"),V("liquidity"),V("feeGrowthInsideLastX64A"),V("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),A(Di,rt,"rewardInfos"),e("recentEpoch"),A(e(),7)]),kd=m([E(8),l("bump"),r("poolId"),me("tickLower"),me("tickUpper"),V("liquidity"),V("feeGrowthInsideLastX64A"),V("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),A(V(),rt,"rewardGrowthInside"),e("recentEpoch"),A(e(),7)]),qi=m([me("tick"),_n("liquidityNet"),V("liquidityGross"),V("feeGrowthOutsideX64A"),V("feeGrowthOutsideX64B"),A(V(),rt,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),V("unfilledRatioX64"),A(Y(),3)]),$n=m([E(8),r("poolId"),me("startTickIndex"),A(qi,en,"ticks"),l("initializedTickCount"),e("recentEpoch"),A(l(),107)]),Ui=m([E(8),l("bump"),A(r(),Zn,"operationOwners"),A(r(),Hn,"whitelistMints")]),Gi=m([E(8),r("poolId"),r("owner"),me("tick"),ce("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),V("unfilledRatioX64"),A(e(),4)]),Jn=m([E(8),r("poolId"),E(8*8*It,"positiveTickArrayBitmap"),E(8*8*It,"negativeTickArrayBitmap")]),Td=m([E(8),Q("index"),Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),A(e(),8)]),zi=m([E(8),r("wallet"),l("nonceIndex"),e("orderNonce"),A(e(),4)]),hd=m([e(),l("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),A(e(),8)]),Xi=m([E(8),l("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),e("recentEpoch"),A(e(),8)]);import Sd from"bn.js";var Vd=Buffer.from("amm_config","utf8"),Yi=Buffer.from("pool","utf8"),Qi=Buffer.from("pool_vault","utf8"),_d=Buffer.from("pool_reward_vault","utf8"),Ed=Buffer.from("position","utf8"),Dd=Buffer.from("tick_array","utf8"),Wd=Buffer.from("operation","utf8"),qd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Ud=Buffer.from("observation","utf8"),Gd=Buffer.from("support_mint","utf8"),zd=Buffer.from("dynamic_fee_config","utf8");var Xd=Buffer.from("locked_position","utf8");import{sha256 as cr}from"js-sha256";import Zi from"bn.js";import Hd from"decimal.js";var $d=new Zi(1).shln(256).subn(1);import bp from"bn.js";import rp from"bn.js";import sp from"decimal.js";import kp from"bn.js";import hp from"decimal.js";import{PublicKey as lf}from"@solana/web3.js";import df from"bn.js";import{TOKEN_2022_PROGRAM_ID as wf}from"@solana/spl-token";import If from"decimal.js";import $p from"bn.js";import Ep from"bn.js";import Nf from"bn.js";function ee(i){let t=`global:${i}`;return Buffer.from(cr.digest(t)).slice(0,8)}jn.span;var Iy=D("Raydium_Clmm"),By={createPool:ee("create_pool"),createCustomizablePool:ee("create_customizable_pool"),openPositionV2:ee("open_position_v2"),openPositionWithToken22Nft:ee("open_position_with_token22_nft"),closePosition:ee("close_position"),increaseLiquidityV2:ee("increase_liquidity_v2"),decreaseLiquidityV2:ee("decrease_liquidity_v2"),initializeReward:ee("initialize_reward"),setRewardParams:ee("set_reward_params"),updateRewardInfos:ee("update_reward_infos"),collectRemainingRewards:ee("collect_remaining_rewards"),swapV2:ee("swap_v2"),openLimitOrder:ee("open_limit_order"),increaseLimitOrder:ee("increase_limit_order"),decreaseLimitOrder:ee("decrease_limit_order"),settleLimitOrder:ee("settle_limit_order"),closeLimitOrder:e