@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 84.4 kB
JavaScript
var vo=Object.defineProperty,_o=Object.defineProperties;var Vo=Object.getOwnPropertyDescriptors;var lt=Object.getOwnPropertySymbols;var An=Object.prototype.hasOwnProperty,wn=Object.prototype.propertyIsEnumerable;var Pn=(o,e,n)=>e in o?vo(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,L=(o,e)=>{for(var n in e||(e={}))An.call(e,n)&&Pn(o,n,e[n]);if(lt)for(var n of lt(e))wn.call(e,n)&&Pn(o,n,e[n]);return o},E=(o,e)=>_o(o,Vo(e));var me=(o,e)=>{var n={};for(var i in o)An.call(o,i)&&e.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&<)for(var i of lt(o))e.indexOf(i)<0&&wn.call(o,i)&&(n[i]=o[i]);return n};var U={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{TOKEN_PROGRAM_ID as Mo}from"@solana/spl-token";import{PublicKey as st}from"@solana/web3.js";import ut from"bn.js";import{Keypair as Ya,PublicKey as Qa}from"@solana/web3.js";import jR from"bn.js";import{PublicKey as Wo}from"@solana/web3.js";import{get as kn,set as Eo}from"lodash";var Mt=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let n=e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},Tn={},Do={};function D(o){let e=kn(Tn,o);if(!e){let n=kn(Do,o);e=new Mt({name:o,logLevel:n}),Eo(Tn,o,e)}return e}import{MINT_SIZE as ds,TOKEN_PROGRAM_ID as ps,getTransferFeeConfig as fs,unpackMint as ys}from"@solana/spl-token";var Ft=D("Raydium_accountInfo_util");async function ge(o,e,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:c=100}=L({batchRequest:!1},n),l=vt(e,c),p=new Array(l.length).fill([]);if(i){let y=l.map(g=>{let x=o._buildArgs([g.map(T=>T.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:x}}),k=vt(y,10);p=(await(await Promise.all(k.map(async g=>await o._rpcBatchRequest(g)))).flat()).map(g=>(g.error&&Ft.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.error.message}`),g.result.value.map(x=>{if(x){let{data:T,executable:O,lamports:w,owner:P,rentEpoch:S}=x;return T.length!==2&&T[1]!=="base64"&&Ft.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(T[0],"base64"),executable:O,lamports:w,owner:new Wo(P),rentEpoch:S}}return null})))}else try{p=await Promise.all(l.map(y=>o.getMultipleAccountsInfo(y,a)))}catch(y){y instanceof Error&&Ft.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return p.flat()}import Se from"bn.js";import $C from"decimal.js";import Ho from"big.js";import Os from"bn.js";import qo from"toformat";var Uo=qo,Xe=Uo;import dt from"big.js";import zo from"bn.js";import Xo from"decimal.js-light";import Ye from"bn.js";var hn=9007199254740991;function re(o){let e=D("Raydium_parseBigNumberish");if(o instanceof Ye)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ye(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=hn||o<=-hn)&&e.logWithError(`BigNumberish number overflow: ${o}`),new Ye(String(o))):typeof o=="bigint"?new Ye(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new Ye(0))}var mt=D("module/fraction"),_t=Xe(dt),Qe=Xe(Xo),Yo={[0]:Qe.ROUND_DOWN,[1]:Qe.ROUND_HALF_UP,[2]:Qe.ROUND_UP},Qo={[0]:dt.roundDown,[1]:dt.roundHalfUp,[2]:dt.roundUp},z=class{constructor(e,n=new zo(1)){this.numerator=re(e),this.denominator=re(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new z(this.denominator,this.numerator)}add(e){let n=e instanceof z?e:new z(re(e));return this.denominator.eq(n.denominator)?new z(this.numerator.add(n.numerator),this.denominator):new z(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof z?e:new z(re(e));return this.denominator.eq(n.denominator)?new z(this.numerator.sub(n.numerator),this.denominator):new z(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof z?e:new z(re(e));return new z(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof z?e:new z(re(e));return new z(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},i=1){Number.isInteger(e)||mt.logWithError(`${e} is not an integer.`),e<=0&&mt.logWithError(`${e} is not positive.`),Qe.set({precision:e+1,rounding:Yo[i]});let a=new Qe(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return a.toFormat(a.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},i=1){return Number.isInteger(e)||mt.logWithError(`${e} is not an integer.`),e<0&&mt.logWithError(`${e} is negative.`),_t.DP=e,_t.RM=Qo[i]||1,new _t(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Ws=D("Raydium_amount"),qs=Xe(Ho);import{PublicKey as jo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as In}from"@solana/spl-token";var pt={chainId:101,address:jo.default.toBase58(),programId:In.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},pe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:In.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 Et}from"@solana/web3.js";import{PublicKey as Y,SystemProgram as Bn,SYSVAR_RENT_PUBKEY as $o}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jo}from"@solana/spl-token";function Re({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var ei=[Re({pubkey:Jo,isWritable:!1}),Re({pubkey:Bn.programId,isWritable:!1}),Re({pubkey:$o,isWritable:!1})];function xn({publicKey:o,transformSol:e}){let n=Sn(o.toString());if(n instanceof Y)return e&&n.equals(he)?de:n;if(e&&n.toString()===he.toBase58())return de;if(typeof n=="string"){if(n===Y.default.toBase58())return Y.default;try{return new Y(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Sn(o){try{return new Y(o)}catch{return o}}var Vt=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Le=new Y("SysvarRent111111111111111111111111111111111"),ti=new Y("SysvarC1ock11111111111111111111111111111111"),ft=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ni=new Y("Sysvar1nstructions1111111111111111111111111"),Kn=Bn.programId,Zs=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),js=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),$s=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Js=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),eu=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),tu=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),nu=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ou=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),iu=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ru=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),au=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),de=new Y("So11111111111111111111111111111111111111112"),he=Y.default;var Dt=class{constructor({mint:e,decimals:n,symbol:i,name:a,skipMint:c=!1,isToken2022:l=!1}){if(e===he.toBase58()||e instanceof Et&&he.equals(e)){this.decimals=pe.decimals,this.symbol=pe.symbol,this.name=pe.name,this.mint=new Et(pe.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||e.toString().substring(0,6),this.name=a||e.toString().substring(0,6),this.mint=c?Et.default:xn({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},te=Dt;te.WSOL=new Dt(E(L({},pe),{mint:pe.address}));var Wt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=i}equals(e){return this===e}},yt=Wt;yt.SOL=new Wt(pt);import oi from"bn.js";var Pu=new z(new oi(100));var Iu=D("Raydium_price");import{merge as $K}from"lodash";import Nu from"axios";var Cn={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"},ii=E(L({},Cn),{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 nc=D("Raydium_Api");import{PublicKey as rm,SystemProgram as am}from"@solana/web3.js";import{AccountLayout as mm,createAssociatedTokenAccountIdempotentInstruction as dm,TOKEN_PROGRAM_ID as pm,TOKEN_2022_PROGRAM_ID as fm}from"@solana/spl-token";import{PublicKey as ve,sendAndConfirmTransaction as Yt,SystemProgram as li,Transaction as je,TransactionMessage as $e,VersionedTransaction as Je}from"@solana/web3.js";import mi from"axios";import{PublicKey as qt,AddressLookupTableAccount as Me}from"@solana/web3.js";async function Ut({connection:o,address:e,cluster:n="mainnet"}){let i=await ge(o,[...new Set(e.map(c=>c.toString()))].map(c=>new qt(c))),a={};for(let c=0;c<e.length;c++){let l=i[c],p=e[c];if(!l)continue;let y=new Me({key:p,state:Me.deserialize(l.data)});a[p.toString()]=y,n==="devnet"?Ne[p.toString()]=y:Oe[p.toString()]=y}return a}var Oe={},Gt=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Oe[e])return Oe;let n=new qt(e),i=await o.getAccountInfo(n);return i&&(Oe[e]=new Me({key:n,state:Me.deserialize(i.data)})),Oe},Ne={},zt=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ne[e])return Ne;let n=new qt(e),i=await o.getAccountInfo(n);return i&&(Ne[e]=new Me({key:n,state:Me.deserialize(i.data)})),Ne};import{ComputeBudgetProgram as Rn,Keypair as On,PublicKey as ri,Transaction as Nn,TransactionMessage as ai,VersionedTransaction as Mn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as si}from"@solana/spl-token";var Ln=D("Raydium_txUtil"),Fn=1644;function bt(o){let e=[],n=[];return o.microLamports&&(e.push(Rn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(U.SetComputeUnitPrice)),o.units&&(e.push(Rn.setComputeUnitLimit({units:o.units})),n.push(U.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function Fe(o,e){var i,a;let n=e!=null?e:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:a.blockhash}async function gt(o,e){return o.getSignatureStatuses([e]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(e,c=>{if(clearTimeout(a),!c.err){n("");return}i(Object.assign(c.err,{txId:e}))},"confirmed")})}function Xt(o,e){o.length<1&&Ln.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&Ln.logWithError(`no signers provided:, ${e.toString()}`);let n=new Nn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Fn}catch{return!1}}function fe(o,e){let[n,i]=ri.findProgramAddressSync(o,e);return{publicKey:n,nonce:i}}function He({instructions:o,payer:e,signers:n}){return Xt(o,[e,...n])}function Ze({instructions:o,payer:e,lookupTableAddressAccount:n,recentBlockhash:i=On.generate().publicKey.toString()}){let c=new ai({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Mn(c).serialize()).toString("base64").length<Fn}catch{return!1}}var ui=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),ci=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Mn&&(e=ui(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ie(o){let e=[];return o.forEach(n=>{n instanceof Nn&&(n.recentBlockhash||(n.recentBlockhash=si.toBase58()),n.feePayer||(n.feePayer=On.generate().publicKey)),e.push(ci(n))}),console.log("simulate tx string:",e),e}var Pt=2e3,At=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var i;let e=(await mi.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=e==null?void 0:e[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:n,instructionTypes:i}=bt(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push(li.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new ve(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(U.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:n}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:e=[],endInstructions:n=[],signers:i=[],instructionTypes:a=[],endInstructionTypes:c=[],lookupTableAddress:l=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...l.filter(p=>p!==ve.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:i}){return e===0?await this.buildV0(E(L({},n||{}),{lookupTableAddress:i})):this.build(n)}build(e){var i;let n=new je;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async a=>{var b;let{recentBlockHash:c,skipPreflight:l=!0,sendAndConfirm:p,notSendToRpc:y}=a||{},k=c!=null?c:await Fe(this.connection,this.blockhashCommitment);if(n.recentBlockhash=k,this.signers.length&&n.sign(...this.signers),Ie([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:p?await Yt(this.connection,n,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:l}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:l}),signedTx:n};if(this.signAllTransactions){let g=await this.signAllTransactions([n]);if(this.signers.length)for(let x of g)try{x.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(g[0].serialize(),{skipPreflight:l}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var k;let{extraPreBuildData:n=[],extInfo:i}=e,{transaction:a}=this.build(i),c=n.filter(b=>b.transaction.instructions.length>0),l=[a,...c.map(b=>b.transaction)],p=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(k=this.owner)!=null&&k.signer&&p.forEach(b=>{b.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:l,signers:p,instructionTypes:y,execute:async b=>{var S;let{sequentially:g,onTxUpdate:x,skipTxCount:T=0,recentBlockHash:O,skipPreflight:w=!0}=b||{},P=O!=null?O:await Fe(this.connection,this.blockhashCommitment);if((S=this.owner)!=null&&S.isKeyPair){if(g){let K=[],F=0;for(let v of l){if(++F,F<=T)continue;let A=await Yt(this.connection,v,this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});K.push(A)}return{txIds:K,signedTxs:l}}return{txIds:await await Promise.all(l.map(async K=>(K.recentBlockhash=P,await this.connection.sendRawTransaction(K.serialize(),{skipPreflight:w})))),signedTxs:l}}if(this.signAllTransactions){let K=l.map((v,A)=>(v.recentBlockhash=P,p[A].length&&v.sign(...p[A]),v));Ie(K);let F=await this.signAllTransactions(K);if(g){let v=0,A=[],h=async()=>{if(!F[v])return;let I=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:w});A.push({txId:I,status:"sent",signedTx:F[v]}),x==null||x([...A]),v++;let C=!1,R=null,_=null,ie=G=>{R!==null&&clearInterval(R),_!==null&&this.connection.removeSignatureListener(_);let V=A.findIndex(Q=>Q.txId===I);if(V>-1){if(A[V].status==="error"||A[V].status==="success")return;A[V].status=G.err?"error":"success"}x==null||x([...A]),G.err||h()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var G;if(C){clearInterval(R);return}try{let V=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(C=!0,clearInterval(R),ie({err:((G=V.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",I))}catch(V){C=!0,clearInterval(R),console.error("getTransaction timeout:",V,I)}},Pt)),_=this.connection.onSignature(I,G=>{if(C){this.connection.removeSignatureListener(_);return}C=!0,ie(G)},"confirmed"),this.connection.getSignatureStatus(I)};return await h(),{txIds:A.map(I=>I.txId),signedTxs:F}}else{let v=[];for(let A=0;A<F.length;A+=1){let h=await this.connection.sendRawTransaction(F[A].serialize(),{skipPreflight:w});v.push(h)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var w;let O=e||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:c}=O,l=me(O,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=L(L({},this.cluster==="devnet"?await zt(this.connection):await Gt(this.connection)),n),y=Array.from(new Set([...i,...this.lookupTableAddress])),k=[];for(let P of y)p[P]===void 0&&k.push(new ve(P));let b=await Ut({connection:this.connection,address:k});for(let[P,S]of Object.entries(b))p[P]=S;let g=a?ve.default.toBase58():c!=null?c:await Fe(this.connection,this.blockhashCommitment),x=new $e({payerKey:this.feePayer,recentBlockhash:g,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((w=this.owner)==null?void 0:w.signer)&&!this.signers.some(P=>P.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let T=new Je(x);return T.sign(this.signers),{builder:this,transaction:T,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async P=>{var v;let{skipPreflight:S=!0,sendAndConfirm:K,notSendToRpc:F}=P||{};if(Ie([T]),(v=this.owner)!=null&&v.isKeyPair){let A=await this.connection.sendTransaction(T,{skipPreflight:S});return K&&await gt(this.connection,A),{txId:A,signedTx:T}}if(this.signAllTransactions){let A=await this.signAllTransactions([T]);if(this.signers.length)for(let h of A)try{h.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(A[0],{skipPreflight:S}),signedTx:A[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:l||{}}}async buildV0MultiTx(e){var k;let{extraPreBuildData:n=[],buildProps:i}=e,{transaction:a}=await this.buildV0(i),c=n.filter(b=>b.builder.instructions.length>0),l=[a,...c.map(b=>b.transaction)],p=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(k=this.owner)!=null&&k.signer&&p.forEach(b=>{b.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),l.forEach(async(b,g)=>{b.sign(p[g])}),{builder:this,transactions:l,signers:p,instructionTypes:y,buildProps:i,execute:async b=>{var w;let{sequentially:g,onTxUpdate:x,recentBlockHash:T,skipPreflight:O=!0}=b||{};if(T&&l.forEach(P=>P.message.recentBlockhash=T),Ie(l),(w=this.owner)!=null&&w.isKeyPair){if(g){let P=[];for(let S of l){let K=await this.connection.sendTransaction(S,{skipPreflight:O});await gt(this.connection,K),P.push(K)}return{txIds:P,signedTxs:l}}return{txIds:await Promise.all(l.map(async P=>await this.connection.sendTransaction(P,{skipPreflight:O}))),signedTxs:l}}if(this.signAllTransactions){let P=await this.signAllTransactions(l);if(g){let S=0,K=[],F=async()=>{if(!P[S])return;let v=await this.connection.sendTransaction(P[S],{skipPreflight:O});K.push({txId:v,status:"sent",signedTx:P[S]}),x==null||x([...K]),S++;let A=!1,h=null,I=null,C=R=>{h!==null&&clearInterval(h),I!==null&&this.connection.removeSignatureListener(I);let _=K.findIndex(ie=>ie.txId===v);if(_>-1){if(K[_].status==="error"||K[_].status==="success")return;K[_].status=R.err?"error":"success"}x==null||x([...K]),R.err||F()};this.loopMultiTxStatus&&(h=setInterval(async()=>{var R;if(A){clearInterval(h);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(A=!0,clearInterval(h),C({err:((R=_.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",v))}catch(_){A=!0,clearInterval(h),console.error("getTransaction timeout:",_,v)}},Pt)),I=this.connection.onSignature(v,R=>{if(A){this.connection.removeSignatureListener(I);return}A=!0,C(R)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:P}}else{let S=[];for(let K=0;K<P.length;K+=1){let F=await this.connection.sendTransaction(P[K],{skipPreflight:O});S.push(F)}return{txIds:S,signedTxs:P}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var x;let g=e||{},{splitIns:n=[],computeBudgetConfig:i}=g,a=me(g,["splitIns","computeBudgetConfig"]),c=i?bt(i):{instructions:[],instructionTypes:[]},l=this.signers.reduce((T,O)=>E(L({},T),{[O.publicKey.toBase58()]:O}),{}),p=[],y=[],k=[],b=0;if(this.allInstructions.forEach(T=>{let O=[...k,T],w=i?[...c.instructions,...O]:O,S=[...new Set(O.map(K=>K.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(K=>new ve(K));if(T!==n[b]&&k.length<12&&(He({instructions:w,payer:this.feePayer,signers:S})||He({instructions:O,payer:this.feePayer,signers:S})))k.push(T);else{if(k.length===0)throw Error("item ins too big");b+=T===n[b]?1:0,He({instructions:i?[...c.instructions,...k]:[...k],payer:this.feePayer,signers:S})?p.push(new je().add(...c.instructions,...k)):p.push(new je().add(...k)),y.push(Array.from(new Set(k.map(K=>K.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(K=>l[K]).filter(K=>K!==void 0)),k=[T]}}),k.length>0){let O=[...new Set(k.map(w=>w.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(w=>l[w]).filter(w=>w!==void 0);He({instructions:i?[...c.instructions,...k]:[...k],payer:this.feePayer,signers:O.map(w=>w.publicKey)})?p.push(new je().add(...c.instructions,...k)):p.push(new je().add(...k)),y.push(O)}return p.forEach(T=>T.feePayer=this.feePayer),(x=this.owner)!=null&&x.signer&&y.forEach(T=>{T.some(O=>O.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),{builder:this,transactions:p,signers:y,instructionTypes:this.instructionTypes,execute:async T=>{var v;let{sequentially:O,onTxUpdate:w,skipTxCount:P=0,recentBlockHash:S,skipPreflight:K=!0}=T||{},F=S!=null?S:await Fe(this.connection,this.blockhashCommitment);if(p.forEach(async(A,h)=>{A.recentBlockhash=F,y[h].length&&A.sign(...y[h])}),Ie(p),(v=this.owner)!=null&&v.isKeyPair){if(O){let A=0,h=[];for(let I of p){if(++A,A<=P){h.push("tx skipped");continue}let C=await Yt(this.connection,I,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:K});h.push(C)}return{txIds:h,signedTxs:p}}return{txIds:await Promise.all(p.map(async A=>await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:K}))),signedTxs:p}}if(this.signAllTransactions){let A=await this.signAllTransactions(p.slice(P,p.length)),h=[...p.slice(0,P),...A];if(O){let I=0,C=[],R=async()=>{if(!h[I])return;I<P&&(C.push({txId:"",status:"success",signedTx:h[I]}),w==null||w([...C]),I++,R());let _=await this.connection.sendRawTransaction(h[I].serialize(),{skipPreflight:K});C.push({txId:_,status:"sent",signedTx:h[I]}),w==null||w([...C]),I++;let ie=!1,G=null,V=null,Q=q=>{G!==null&&clearInterval(G),V!==null&&this.connection.removeSignatureListener(V);let H=C.findIndex(J=>J.txId===_);if(H>-1){if(C[H].status==="error"||C[H].status==="success")return;C[H].status=q.err?"error":"success"}w==null||w([...C]),q.err||R()};this.loopMultiTxStatus&&(G=setInterval(async()=>{var q;if(ie){clearInterval(G);return}try{let H=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});H&&(ie=!0,clearInterval(G),Q({err:((q=H.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",_))}catch(H){ie=!0,clearInterval(G),console.error("getTransaction timeout:",H,_)}},Pt)),V=this.connection.onSignature(_,q=>{if(ie){this.connection.removeSignatureListener(V);return}ie=!0,Q(q)},"confirmed"),this.connection.getSignatureStatus(_)};return await R(),{txIds:C.map(_=>_.txId),signedTxs:h}}else{let I=[];for(let C=0;C<h.length;C+=1){let R=await this.connection.sendRawTransaction(h[C].serialize(),{skipPreflight:K});I.push(R)}return{txIds:I,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(e){var v;let F=e||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:c=[],insCountLimit:l=12}=F,p=me(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=L(L({},this.cluster==="devnet"?await zt(this.connection):await Gt(this.connection)),a),k=Array.from(new Set([...this.lookupTableAddress,...c])),b=[];for(let A of k)y[A]===void 0&&b.push(new ve(A));let g=await Ut({connection:this.connection,address:b});for(let[A,h]of Object.entries(g))y[A]=h;let x=n?bt(n):{instructions:[],instructionTypes:[]},T=await Fe(this.connection,this.blockhashCommitment),O=this.signers.reduce((A,h)=>E(L({},A),{[h.publicKey.toBase58()]:h}),{}),w=[],P=[],S=[],K=0;if(this.allInstructions.forEach(A=>{let h=[...S,A],I=n?[...x.instructions,...h]:h;if(A!==i[K]&&S.length<l&&(Ze({instructions:I,payer:this.feePayer,lookupTableAddressAccount:y})||Ze({instructions:h,payer:this.feePayer,lookupTableAddressAccount:y})))S.push(A);else{if(S.length===0)throw Error("item ins too big");K+=A===i[K]?1:0;let C={};for(let R of[...new Set(k)])y[R]!==void 0&&(C[R]=y[R]);if(n&&Ze({instructions:[...x.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:T})){let R=new $e({payerKey:this.feePayer,recentBlockhash:T,instructions:[...x.instructions,...S]}).compileToV0Message(Object.values(y));w.push(new Je(R))}else{let R=new $e({payerKey:this.feePayer,recentBlockhash:T,instructions:[...S]}).compileToV0Message(Object.values(y));w.push(new Je(R))}P.push(Array.from(new Set(S.map(R=>R.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(R=>O[R]).filter(R=>R!==void 0)),S=[A]}}),S.length>0){let h=[...new Set(S.map(I=>I.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(I=>O[I]).filter(I=>I!==void 0);if(n&&Ze({instructions:[...x.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:T})){let I=new $e({payerKey:this.feePayer,recentBlockhash:T,instructions:[...x.instructions,...S]}).compileToV0Message(Object.values(y));w.push(new Je(I))}else{let I=new $e({payerKey:this.feePayer,recentBlockhash:T,instructions:[...S]}).compileToV0Message(Object.values(y));w.push(new Je(I))}P.push(h)}return(v=this.owner)!=null&&v.signer&&P.forEach(A=>{A.some(h=>h.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),w.forEach((A,h)=>{A.sign(P[h])}),{builder:this,transactions:w,buildProps:e,signers:P,instructionTypes:this.instructionTypes,execute:async A=>{var ie;let{sequentially:h,onTxUpdate:I,skipTxCount:C=0,recentBlockHash:R,skipPreflight:_=!0}=A||{};if(w.map(async(G,V)=>{P[V].length&&G.sign(P[V]),R&&(G.message.recentBlockhash=R)}),Ie(w),(ie=this.owner)!=null&&ie.isKeyPair){if(h){let G=0,V=[];for(let Q of w){if(++G,G<=C){console.log("skip tx: ",G),V.push("tx skipped");continue}let q=await this.connection.sendTransaction(Q,{skipPreflight:_});await gt(this.connection,q),V.push(q)}return{txIds:V,signedTxs:w}}return{txIds:await Promise.all(w.map(async G=>await this.connection.sendTransaction(G,{skipPreflight:_}))),signedTxs:w}}if(this.signAllTransactions){let G=await this.signAllTransactions(w.slice(C,w.length)),V=[...w.slice(0,C),...G];if(h){let Q=0,q=[],H=async()=>{if(!V[Q])return;if(Q<C){q.push({txId:"",status:"success",signedTx:V[Q]}),I==null||I([...q]),Q++,H();return}let J=await this.connection.sendTransaction(V[Q],{skipPreflight:_});q.push({txId:J,status:"sent",signedTx:V[Q]}),I==null||I([...q]),Q++;let ke=!1,Ce=null,ct=null,gn=Te=>{Ce!==null&&clearInterval(Ce),ct!==null&&this.connection.removeSignatureListener(ct);let be=q.findIndex(Fo=>Fo.txId===J);if(be>-1){if(q[be].status==="error"||q[be].status==="success")return;q[be].status=Te.err?"error":"success"}I==null||I([...q]),Te.err||H()};this.loopMultiTxStatus&&(Ce=setInterval(async()=>{var Te;if(ke){clearInterval(Ce);return}try{let be=await this.connection.getTransaction(J,{commitment:"confirmed",maxSupportedTransactionVersion:0});be&&(ke=!0,clearInterval(Ce),gn({err:((Te=be.meta)==null?void 0:Te.err)||null}),console.log("tx status from getTransaction:",J))}catch(be){ke=!0,clearInterval(Ce),console.error("getTransaction timeout:",be,J)}},Pt)),ct=this.connection.onSignature(J,Te=>{if(ke){this.connection.removeSignatureListener(ct);return}ke=!0,gn(Te)},"confirmed"),this.connection.getSignatureStatus(J)};return H(),{txIds:[],signedTxs:V}}else{let Q=[];for(let q=0;q<V.length;q+=1){let H=await this.connection.sendTransaction(V[q],{skipPreflight:_});Q.push(H)}return{txIds:Q,signedTxs:V}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};var Qt=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),ne=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=D(n)}createTxBuilder(e){return this.scope.checkOwner(),new At({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(Qt(e))}logInfo(...e){this.logger.info(Qt(e))}logAndCreateError(...e){let n=Qt(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as _l,SystemProgram as El}from"@solana/web3.js";import ql from"bn.js";import{createCloseAccountInstruction as Xl,createInitializeAccountInstruction as Yl,createTransferInstruction as Ql,TOKEN_PROGRAM_ID as Hl}from"@solana/spl-token";import{PublicKey as Ii}from"@solana/web3.js";import Wn,{isBN as qn}from"bn.js";import{bits as di,BitStructure as Uc,blob as pi,Blob as Gc,cstr as zc,f32 as Xc,f32be as Yc,f64 as Qc,f64be as Hc,greedy as Zc,Layout as fi,ns64 as jc,ns64be as $c,nu64 as yi,nu64be as Jc,offset as bi,s16 as el,s16be as tl,s24 as nl,s24be as ol,s32 as gi,s32be as il,s40 as rl,s40be as al,s48 as sl,s48be as ul,s8 as cl,seq as Pi,struct as ll,Structure as Ai,u16 as wi,u16be as ml,u24 as dl,u24be as pl,u32 as ki,u32be as fl,u40 as yl,u40be as bl,u48 as gl,u48be as Pl,u8 as Ti,UInt as hi,union as Al,Union as wl,unionLayoutDiscriminator as kl,utf8 as Tl}from"@solana/buffer-layout";var wt=fi,vn=Ai;var Ht=hi;var _n=Ti,j=wi;var kt=ki;var Vn=yi;var ue=gi;var En=Pi;var M=pi;var Zt=di,Dn=bi;var xe=class extends wt{constructor(n,i,a){super(n,a);this.blob=M(n),this.signed=i}decode(n,i=0){let a=new Wn(this.blob.decode(n,i),10,"le");return this.signed?a.fromTwos(this.span*8).clone():a}encode(n,i,a=0){return typeof n=="number"&&(n=new Wn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,a)}},Tt=class extends wt{constructor(n){super(8,n);this._lower=Zt(kt(),!1),this._upper=Zt(kt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let a=this._lower.decode(n,i),c=this._upper.decode(n,i+this._lower.span);return L(L({},a),c)}encode(n,i,a=0){return this._lower.encode(n,i,a)+this._upper.encode(n,i,a+this._lower.span)}};function m(o){return new Ht(1,o)}function X(o){return new Ht(4,o)}function t(o){return new xe(8,!1,o)}function N(o){return new xe(16,!1,o)}function Un(o){return new xe(1,!0,o)}function _e(o){return new xe(8,!0,o)}function Gn(o){return new xe(16,!0,o)}var et=class extends wt{constructor(n,i,a,c){super(n.span,c);this.layout=n,this.decoder=i,this.encoder=a}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,a){return this.layout.encode(this.encoder(n),i,a)}getSpan(n,i){return this.layout.getSpan(n,i)}};function r(o){return new et(M(32),e=>new Ii(e),e=>e.toBuffer(),o)}function ae(o){return new et(_n(),Bi,xi,o)}function Bi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function xi(o){return o?1:0}function zn(o,e){let n=kt("length"),i=d([n,f(o,Dn(n,-n.span),"values")]);return new et(i,({values:a})=>a,a=>({values:a}),e)}var jt=class extends vn{decode(e,n){return super.decode(e,n)}};function d(o,e,n){return new jt(o,e,n)}function f(o,e,n){let i,a=typeof e=="number"?e:qn(e)?e.toNumber():new Proxy(e,{get(c,l){if(!i){let p=Reflect.get(c,"count");i=qn(p)?p.toNumber():p,Reflect.set(c,"count",i)}return Reflect.get(c,l)},set(c,l,p){return l==="count"&&(i=p),Reflect.set(c,l,p)}});return En(o,a,n)}var ht=d([r("mint"),r("owner"),t("amount"),X("delegateOption"),r("delegate"),m("state"),X("isNativeOption"),t("isNative"),t("delegatedAmount"),X("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as oP,SystemProgram as iP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as aP}from"@solana/spl-token";import{PublicKey as Tm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Im}from"@solana/spl-token";import{PublicKey as B}from"@solana/web3.js";var Yn=new B("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Qn=new B("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Hn=new B("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),$t=new B("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Km=new B("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ki=new B("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Zn=new B("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),jn=new B("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Cm=new B("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ci=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),$n=new B("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ri=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Li=new B("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Jn=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Rm=new B("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Oi=new B("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ni=new B("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Mi=new B("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Fi=new B("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),vi=new B("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Jt=new B("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),_i=new B("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Lm=new B("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Vi=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ei=new B("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Di=new B("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Om=new B("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Nm=new B("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Mm=new B("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Fm=new B("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vm=new B("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),tt={IDO_PROGRAM_ID_V1:Ni,IDO_PROGRAM_ID_V2:Mi,IDO_PROGRAM_ID_V3:Fi,IDO_PROGRAM_ID_V4:vi};var Pe={OPEN_BOOK_PROGRAM:new B("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new B("Ray1111111111111111111111111111111111111111"),AMM_V4:new B("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new B("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new B("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new B("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new B("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new B("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new B("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new B("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new B("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new B("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:B.default,Router:new B("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new B("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new B("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new B("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new B("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new B("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new B("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new B("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new B("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new B("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new B("Ray1111111111111111111111111111111111111111")};import bP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as My,TOKEN_2022_PROGRAM_ID as Fy,TOKEN_PROGRAM_ID as vy}from"@solana/spl-token";import{PublicKey as Vy}from"@solana/web3.js";import Dy from"bn.js";import qy from"decimal.js";import{TOKEN_PROGRAM_ID as Zm}from"@solana/spl-token";import{PublicKey as ed}from"@solana/web3.js";var Wi=d([X("mintAuthorityOption"),r("mintAuthority"),t("supply"),m("decimals"),m("isInitialized"),X("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as ny,TOKEN_2022_PROGRAM_ID as oy,TOKEN_PROGRAM_ID as iy}from"@solana/spl-token";import{Keypair as sy,PublicKey as uy,SystemProgram as ly,TransactionInstruction as my}from"@solana/web3.js";import py from"bn.js";import W from"bn.js";var Ee=new W(1).shln(64);var qi=new W(1).shln(128),en=new W(1).shln(64).subn(1),Ui=new W(1).shln(128).subn(1);var De=new W("4295048016"),We=new W("79226673521066979257578248091"),Gi=new W("59543866431248"),zi=new W("184467440737095516"),Xi=new W("15793534762490258745");var tn=60,dd=new W("18446743708227953217"),Yi=[{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 nt=3,eo=100;var to=10,no=100,It=14;var Z=new W(0),qe=new W(1),pd=new W(-1);var fd=new W("18446744073700000000");var Qi=d([M(8),m("bump"),j("index"),r("owner"),X("protocolFeeRate"),X("tradeFeeRate"),j("tickSpacing"),X("fundFeeRate"),f(X(),1),r("fundOwner"),f(t(),3)]),Hi=d([X("blockTimestamp"),_e("tickCumulative"),f(t(),4)]),oo=d([M(8),ae("initialized"),t("recentEpoch"),j("observationIndex"),r("poolId"),f(Hi,eo,"observations"),f(t(),4)]),Zi=d([j("filterPeriod"),j("decayPeriod"),j("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),t("lastUpdateTimestamp"),f(m(),46)]),ji=d([m("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),N("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),r("mint"),r("vault"),r("creator"),N("growthGlobalX64")]),nn=d([M(8),m("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),m("mintDecimalsA"),m("mintDecimalsB"),j("tickSpacing"),N("liquidity"),N("sqrtPriceX64"),ue("tickCurrent"),X(),N("feeGrowthGlobalX64A"),N("feeGrowthGlobalX64B"),t("protocolFeesTokenA"),t("protocolFeesTokenB"),f(N(),4),m("status"),m("feeOn"),M(6),f(ji,nt,"rewardInfos"),M(8*16,"tickArrayBitmap"),f(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),Zi.replicate("dynamicFeeInfo"),f(t(),46)]),$i=d([N("growthInsideLastX64"),t("rewardAmountOwed")]),Ji=d([M(8),m("bump"),r("nftMint"),r("poolId"),ue("tickLower"),ue("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f($i,nt,"rewardInfos"),t("recentEpoch"),f(t(),7)]),Pd=d([M(8),m("bump"),r("poolId"),ue("tickLower"),ue("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(N(),nt,"rewardGrowthInside"),t("recentEpoch"),f(t(),7)]),er=d([ue("tick"),Gn("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),f(N(),nt,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),N("unfilledRatioX64"),f(X(),3)]),io=d([M(8),r("poolId"),ue("startTickIndex"),f(er,tn,"ticks"),m("initializedTickCount"),t("recentEpoch"),f(m(),107)]),tr=d([M(8),m("bump"),f(r(),to,"operationOwners"),f(r(),no,"whitelistMints")]),nr=d([M(8),r("poolId"),r("owner"),ue("tick"),ae("zeroForOne"),t("orderPhase"),t("totalAmount"),t("filledAmount"),t("settleBase"),t("settleOutput"),t("openTime"),N("unfilledRatioX64"),f(t(),4)]),ro=d([M(8),r("poolId"),M(8*8*It,"positiveTickArrayBitmap"),M(8*8*It,"negativeTickArrayBitmap")]),Ad=d([M(8),j("index"),j("filterPeriod"),j("decayPeriod"),j("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),f(t(),8)]),or=d([M(8),r("wallet"),m("nonceIndex"),t("orderNonce"),f(t(),4)]),wd=d([t(),m("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),f(t(),8)]),ir=d([M(8),m("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),t("recentEpoch"),f(t(),8)]);import hd from"bn.js";var Md=Buffer.from("amm_config","utf8"),rr=Buffer.from("pool","utf8"),ar=Buffer.from("pool_vault","utf8"),Fd=Buffer.from("pool_reward_vault","utf8"),vd=Buffer.from("position","utf8"),_d=Buffer.from("tick_array","utf8"),Vd=Buffer.from("operation","utf8"),Ed=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Dd=Buffer.from("observation","utf8"),Wd=Buffer.from("support_mint","utf8"),qd=Buffer.from("dynamic_fee_config","utf8");var Ud=Buffer.from("locked_position","utf8");import{sha256 as kr}from"js-sha256";import sr from"bn.js";import Yd from"decimal.js";var Hd=new sr(1).shln(256).subn(1);import pp from"bn.js";import np from"bn.js";import ip from"decimal.js";import Pp from"bn.js";import wp from"decimal.js";import{PublicKey as sf}from"@solana/web3.js";import cf from"bn.js";import{TOKEN_2022_PROGRAM_ID as gf}from"@solana/spl-token";import kf from"decimal.js";import Hp from"bn.js";import vp from"bn.js";import Rf from"bn.js";function ee(o){let e=`global:${o}`;return Buffer.from(kr.digest(e)).slice(0,8)}oo.span;var ky=D("Raydium_Clmm"),Ty={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:ee("close_limit_order")};import{PublicKey as un}from"@solana/web3.js";var xr=d([m("instruction")]),Sr=d([m("instruction")]),Kr=d([t("rewardState"