UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 84.3 kB
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&&lt)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 Qa,PublicKey as Ha}from"@solana/web3.js";import QR 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 ps,TOKEN_PROGRAM_ID as fs,getTransferFeeConfig as ys,unpackMint as bs}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 Ke from"bn.js";import HC from"decimal.js";import Ho from"big.js";import Ns from"bn.js";import qo from"toformat";var Uo=qo,Ye=Uo;import dt from"big.js";import zo from"bn.js";import Yo from"decimal.js-light";import Xe from"bn.js";var hn=9007199254740991;function re(o){let e=D("Raydium_parseBigNumberish");if(o instanceof Xe)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Xe(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 Xe(String(o))):typeof o=="bigint"?new Xe(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new Xe(0))}var mt=D("module/fraction"),_t=Ye(dt),Qe=Ye(Yo),Xo={[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:Xo[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 qs=D("Raydium_amount"),Us=Ye(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 X,SystemProgram as Bn,SYSVAR_RENT_PUBKEY as $o}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jo}from"@solana/spl-token";function Le({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var ei=[Le({pubkey:Jo,isWritable:!1}),Le({pubkey:Bn.programId,isWritable:!1}),Le({pubkey:$o,isWritable:!1})];function xn({publicKey:o,transformSol:e}){let n=Sn(o.toString());if(n instanceof X)return e&&n.equals(he)?de:n;if(e&&n.toString()===he.toBase58())return de;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 Sn(o){try{return new X(o)}catch{return o}}var Vt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Oe=new X("SysvarRent111111111111111111111111111111111"),ti=new X("SysvarC1ock11111111111111111111111111111111"),ft=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ni=new X("Sysvar1nstructions1111111111111111111111111"),Kn=Bn.programId,js=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),$s=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Js=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),eu=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),tu=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),nu=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ou=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),iu=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ru=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),au=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),su=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),de=new X("So11111111111111111111111111111111111111112"),he=X.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 Au=new z(new oi(100));var Bu=D("Raydium_price");import{merge as HK}from"lodash";import Mu 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 oc=D("Raydium_Api");import{PublicKey as am,SystemProgram as sm}from"@solana/web3.js";import{AccountLayout as dm,createAssociatedTokenAccountIdempotentInstruction as pm,TOKEN_PROGRAM_ID as fm,TOKEN_2022_PROGRAM_ID as ym}from"@solana/spl-token";import{PublicKey as _e,sendAndConfirmTransaction as Xt,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 Fe}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 Fe({key:p,state:Fe.deserialize(l.data)});a[p.toString()]=y,n==="devnet"?Me[p.toString()]=y:Ne[p.toString()]=y}return a}var Ne={},Gt=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ne[e])return Ne;let n=new qt(e),i=await o.getAccountInfo(n);return i&&(Ne[e]=new Fe({key:n,state:Fe.deserialize(i.data)})),Ne},Me={},zt=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Me[e])return Me;let n=new qt(e),i=await o.getAccountInfo(n);return i&&(Me[e]=new Fe({key:n,state:Fe.deserialize(i.data)})),Me};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 ve(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 Yt(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 Yt(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 _e(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!==_e.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 ve(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 Xt(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 ve(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 Xt(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 _e(P));let b=await Ut({connection:this.connection,address:k});for(let[P,S]of Object.entries(b))p[P]=S;let g=a?_e.default.toBase58():c!=null?c:await ve(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 _e(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 ve(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 Xt(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 _e(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 ve(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,Re=null,ct=null,gn=Te=>{Re!==null&&clearInterval(Re),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&&(Re=setInterval(async()=>{var Te;if(ke){clearInterval(Re);return}try{let be=await this.connection.getTransaction(J,{commitment:"confirmed",maxSupportedTransactionVersion:0});be&&(ke=!0,clearInterval(Re),gn({err:((Te=be.meta)==null?void 0:Te.err)||null}),console.log("tx status from getTransaction:",J))}catch(be){ke=!0,clearInterval(Re),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 Vl,SystemProgram as Dl}from"@solana/web3.js";import Ul from"bn.js";import{createCloseAccountInstruction as Xl,createInitializeAccountInstruction as Ql,createTransferInstruction as Hl,TOKEN_PROGRAM_ID as Zl}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 Gc,blob as pi,Blob as zc,cstr as Yc,f32 as Xc,f32be as Qc,f64 as Hc,f64be as Zc,greedy as jc,Layout as fi,ns64 as $c,ns64be as Jc,nu64 as yi,nu64be as el,offset as bi,s16 as tl,s16be as nl,s24 as ol,s24be as il,s32 as gi,s32be as rl,s40 as al,s40be as sl,s48 as ul,s48be as cl,s8 as ll,seq as Pi,struct as ml,Structure as Ai,u16 as wi,u16be as dl,u24 as pl,u24be as fl,u32 as ki,u32be as yl,u40 as bl,u40be as gl,u48 as Pl,u48be as Al,u8 as Ti,UInt as hi,union as wl,Union as kl,unionLayoutDiscriminator as Tl,utf8 as hl}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 Y(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 Ve(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"),Y("delegateOption"),r("delegate"),m("state"),Y("isNativeOption"),t("isNative"),t("delegatedAmount"),Y("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 hm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Bm}from"@solana/spl-token";import{PublicKey as B}from"@solana/web3.js";var Xn=new B("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Qn=new B("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Hn=new B("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),$t=new B("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Cm=new B("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ki=new B("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Zn=new B("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),jn=new B("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Rm=new B("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ci=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),$n=new B("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ri=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Li=new B("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Jn=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Lm=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"),Om=new B("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Vi=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ei=new B("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Di=new B("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Nm=new B("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Mm=new B("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Fm=new B("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),vm=new B("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),_m=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 jm}from"@solana/spl-token";import{PublicKey as td}from"@solana/web3.js";var Wi=d([Y("mintAuthorityOption"),r("mintAuthority"),t("supply"),m("decimals"),m("isInitialized"),Y("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 Se=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"),Yi=new W("15793534762490258745");var tn=60,pd=new W("18446743708227953217"),Xi=[{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),fd=new W(-1);var yd=new W("18446744073700000000");var Qi=d([M(8),m("bump"),j("index"),r("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),j("tickSpacing"),Y("fundFeeRate"),f(Y(),1),r("fundOwner"),f(t(),3)]),Hi=d([Y("blockTimestamp"),Ve("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"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),Y("volatilityReference"),Y("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"),Y(),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)]),Ad=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(Y(),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")]),wd=d([M(8),j("index"),j("filterPeriod"),j("decayPeriod"),j("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),f(t(),8)]),or=d([M(8),r("wallet"),m("nonceIndex"),t("orderNonce"),f(t(),4)]),kd=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 Id from"bn.js";var Fd=Buffer.from("amm_config","utf8"),rr=Buffer.from("pool","utf8"),ar=Buffer.from("pool_vault","utf8"),vd=Buffer.from("pool_reward_vault","utf8"),_d=Buffer.from("position","utf8"),Vd=Buffer.from("tick_array","utf8"),Ed=Buffer.from("operation","utf8"),Dd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Wd=Buffer.from("observation","utf8"),qd=Buffer.from("support_mint","utf8"),Ud=Buffer.from("dynamic_fee_config","utf8");var Gd=Buffer.from("locked_position","utf8");import{sha256 as Tr}from"js-sha256";import sr from"bn.js";import Qd from"decimal.js";var Zd=new sr(1).shln(256).subn(1);import fp from"bn.js";import op from"bn.js";import rp from"decimal.js";import Tp from"bn.js";import Ip 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(Tr.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 Sr=d([m("instruction")]),Kr=d([m("instruction")]),Cr=d([t("rewardState"