@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 78.7 kB
JavaScript
var So=Object.defineProperty,Ko=Object.defineProperties;var Co=Object.getOwnPropertyDescriptors;var st=Object.getOwnPropertySymbols;var pn=Object.prototype.hasOwnProperty,fn=Object.prototype.propertyIsEnumerable;var dn=(o,e,n)=>e in o?So(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,R=(o,e)=>{for(var n in e||(e={}))pn.call(e,n)&&dn(o,n,e[n]);if(st)for(var n of st(e))fn.call(e,n)&&dn(o,n,e[n]);return o},V=(o,e)=>Ko(o,Co(e));var me=(o,e)=>{var n={};for(var i in o)pn.call(o,i)&&e.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&st)for(var i of st(o))e.indexOf(i)<0&&fn.call(o,i)&&(n[i]=o[i]);return n};import{Keypair as za,PublicKey as Bo}from"@solana/web3.js";import Xa from"bn.js";import{PublicKey as Oo}from"@solana/web3.js";import{get as yn,set as Ro}from"lodash";var Rt=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}},bn={},Lo={};function E(o){let e=yn(bn,o);if(!e){let n=yn(Lo,o);e=new Rt({name:o,logLevel:n}),Ro(bn,o,e)}return e}import{MINT_SIZE as rs,TOKEN_PROGRAM_ID as as,getTransferFeeConfig as ss,unpackMint as us}from"@solana/spl-token";var Lt=E("Raydium_accountInfo_util");async function be(o,e,n){let{batchRequest:i,commitment:u="confirmed",chunkCount:c=100}=R({batchRequest:!1},n),l=Ot(e,c),p=new Array(l.length).fill([]);if(i){let y=l.map(g=>{let S=o._buildArgs([g.map(T=>T.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:S}}),A=Ot(y,10);p=(await(await Promise.all(A.map(async g=>await o._rpcBatchRequest(g)))).flat()).map(g=>(g.error&&Lt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.error.message}`),g.result.value.map(S=>{if(S){let{data:T,executable:N,lamports:w,owner:B,rentEpoch:K}=S;return T.length!==2&&T[1]!=="base64"&&Lt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(T[0],"base64"),executable:N,lamports:w,owner:new Oo(B),rentEpoch:K}}return null})))}else try{p=await Promise.all(l.map(y=>o.getMultipleAccountsInfo(y,u)))}catch(y){y instanceof Error&&Lt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return p.flat()}import Be from"bn.js";import hR from"decimal.js";import Do from"big.js";import Bs from"bn.js";import No from"toformat";var Mo=No,Ge=Mo;import ct from"big.js";import vo from"bn.js";import _o from"decimal.js-light";import ze from"bn.js";var gn=9007199254740991;function ne(o){let e=E("Raydium_parseBigNumberish");if(o instanceof ze)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new ze(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=gn||o<=-gn)&&e.logWithError(`BigNumberish number overflow: ${o}`),new ze(String(o))):typeof o=="bigint"?new ze(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new ze(0))}var ut=E("module/fraction"),Nt=Ge(ct),Xe=Ge(_o),Vo={[0]:Xe.ROUND_DOWN,[1]:Xe.ROUND_HALF_UP,[2]:Xe.ROUND_UP},Eo={[0]:ct.roundDown,[1]:ct.roundHalfUp,[2]:ct.roundUp},U=class{constructor(e,n=new vo(1)){this.numerator=ne(e),this.denominator=ne(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(e){let n=e instanceof U?e:new U(ne(e));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof U?e:new U(ne(e));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof U?e:new U(ne(e));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof U?e:new U(ne(e));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},i=1){Number.isInteger(e)||ut.logWithError(`${e} is not an integer.`),e<=0&&ut.logWithError(`${e} is not positive.`),Xe.set({precision:e+1,rounding:Vo[i]});let u=new Xe(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return u.toFormat(u.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},i=1){return Number.isInteger(e)||ut.logWithError(`${e} is not an integer.`),e<0&&ut.logWithError(`${e} is negative.`),Nt.DP=e,Nt.RM=Eo[i]||1,new Nt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Ms=E("Raydium_amount"),Fs=Ge(Do);import{PublicKey as qo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Pn}from"@solana/spl-token";var lt={chainId:101,address:qo.default.toBase58(),programId:Pn.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:Pn.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 Ft}from"@solana/web3.js";import{PublicKey as z,SystemProgram as An,SYSVAR_RENT_PUBKEY as Uo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Go}from"@solana/spl-token";function Se({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var zo=[Se({pubkey:Go,isWritable:!1}),Se({pubkey:An.programId,isWritable:!1}),Se({pubkey:Uo,isWritable:!1})];function wn({publicKey:o,transformSol:e}){let n=kn(o.toString());if(n instanceof z)return e&&n.equals(ke)?de:n;if(e&&n.toString()===ke.toBase58())return de;if(typeof n=="string"){if(n===z.default.toBase58())return z.default;try{return new z(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function kn(o){try{return new z(o)}catch{return o}}var Mt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ke=new z("SysvarRent111111111111111111111111111111111"),Xo=new z("SysvarC1ock11111111111111111111111111111111"),mt=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Yo=new z("Sysvar1nstructions1111111111111111111111111"),Tn=An.programId,Us=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Gs=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),zs=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Xs=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ys=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Qs=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Hs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Zs=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),js=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),$s=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Js=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),de=new z("So11111111111111111111111111111111111111112"),ke=z.default;var vt=class{constructor({mint:e,decimals:n,symbol:i,name:u,skipMint:c=!1,isToken2022:l=!1}){if(e===ke.toBase58()||e instanceof Ft&&ke.equals(e)){this.decimals=pe.decimals,this.symbol=pe.symbol,this.name=pe.name,this.mint=new Ft(pe.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||e.toString().substring(0,6),this.name=u||e.toString().substring(0,6),this.mint=c?Ft.default:wn({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},J=vt;J.WSOL=new vt(V(R({},pe),{mint:pe.address}));var _t=class{constructor({decimals:e,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=i}equals(e){return this===e}},dt=_t;dt.SOL=new _t(lt);import Qo from"bn.js";var mu=new U(new Qo(100));var gu=E("Raydium_price");import{merge as hC}from"lodash";import xu from"axios";var hn={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"},Ho=V(R({},hn),{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 Hu=E("Raydium_Api");import{PublicKey as Jl,SystemProgram as em}from"@solana/web3.js";import{AccountLayout as rm,createAssociatedTokenAccountIdempotentInstruction as am,TOKEN_PROGRAM_ID as sm,TOKEN_2022_PROGRAM_ID as um}from"@solana/spl-token";import{PublicKey as Ne,sendAndConfirmTransaction as Ut,SystemProgram as ti,Transaction as He,TransactionMessage as Ze,VersionedTransaction as je}from"@solana/web3.js";import ni from"axios";import{PublicKey as Vt,AddressLookupTableAccount as Le}from"@solana/web3.js";async function Et({connection:o,address:e,cluster:n="mainnet"}){let i=await be(o,[...new Set(e.map(c=>c.toString()))].map(c=>new Vt(c))),u={};for(let c=0;c<e.length;c++){let l=i[c],p=e[c];if(!l)continue;let y=new Le({key:p,state:Le.deserialize(l.data)});u[p.toString()]=y,n==="devnet"?Re[p.toString()]=y:Ce[p.toString()]=y}return u}var Ce={},Dt=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ce[e])return Ce;let n=new Vt(e),i=await o.getAccountInfo(n);return i&&(Ce[e]=new Le({key:n,state:Le.deserialize(i.data)})),Ce},Re={},Wt=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Re[e])return Re;let n=new Vt(e),i=await o.getAccountInfo(n);return i&&(Re[e]=new Le({key:n,state:Le.deserialize(i.data)})),Re};var Q={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as In,Keypair as xn,PublicKey as Zo,Transaction as Sn,TransactionMessage as jo,VersionedTransaction as Kn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as $o}from"@solana/spl-token";var Bn=E("Raydium_txUtil"),Cn=1644;function pt(o){let e=[],n=[];return o.microLamports&&(e.push(In.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Q.SetComputeUnitPrice)),o.units&&(e.push(In.setComputeUnitLimit({units:o.units})),n.push(Q.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function Oe(o,e){var i,u;let n=e!=null?e:"confirmed";return(u=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:u.blockhash}async function ft(o,e){return o.getSignatureStatuses([e]),new Promise((n,i)=>{let u=setTimeout(i,6e4);o.onSignature(e,c=>{if(clearTimeout(u),!c.err){n("");return}i(Object.assign(c.err,{txId:e}))},"confirmed")})}function qt(o,e){o.length<1&&Bn.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&Bn.logWithError(`no signers provided:, ${e.toString()}`);let n=new Sn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Cn}catch{return!1}}function se(o,e){let[n,i]=Zo.findProgramAddressSync(o,e);return{publicKey:n,nonce:i}}function Ye({instructions:o,payer:e,signers:n}){return qt(o,[e,...n])}function Qe({instructions:o,payer:e,lookupTableAddressAccount:n,recentBlockhash:i=xn.generate().publicKey.toString()}){let c=new jo({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Kn(c).serialize()).toString("base64").length<Cn}catch{return!1}}var Jo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),ei=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Kn&&(e=Jo(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Te(o){let e=[];return o.forEach(n=>{n instanceof Sn&&(n.recentBlockhash||(n.recentBlockhash=$o.toBase58()),n.feePayer||(n.feePayer=xn.generate().publicKey)),e.push(ei(n))}),console.log("simulate tx string:",e),e}var yt=2e3,bt=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 ni.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}=pt(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push(ti.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new Ne(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(Q.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:u=[],endInstructionTypes:c=[],lookupTableAddress:l=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...u),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...l.filter(p=>p!==Ne.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:i}){return e===0?await this.buildV0(V(R({},n||{}),{lookupTableAddress:i})):this.build(n)}build(e){var i;let n=new He;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var b;let{recentBlockHash:c,skipPreflight:l=!0,sendAndConfirm:p,notSendToRpc:y}=u||{},A=c!=null?c:await Oe(this.connection,this.blockhashCommitment);if(n.recentBlockhash=A,this.signers.length&&n.sign(...this.signers),Te([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:p?await Ut(this.connection,n,this.signers.find(S=>S.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 S of g)try{S.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 A;let{extraPreBuildData:n=[],extInfo:i}=e,{transaction:u}=this.build(i),c=n.filter(b=>b.transaction.instructions.length>0),l=[u,...c.map(b=>b.transaction)],p=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(A=this.owner)!=null&&A.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 K;let{sequentially:g,onTxUpdate:S,skipTxCount:T=0,recentBlockHash:N,skipPreflight:w=!0}=b||{},B=N!=null?N:await Oe(this.connection,this.blockhashCommitment);if((K=this.owner)!=null&&K.isKeyPair){if(g){let x=[],F=0;for(let v of l){if(++F,F<=T)continue;let P=await Ut(this.connection,v,this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});x.push(P)}return{txIds:x,signedTxs:l}}return{txIds:await await Promise.all(l.map(async x=>(x.recentBlockhash=B,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:w})))),signedTxs:l}}if(this.signAllTransactions){let x=l.map((v,P)=>(v.recentBlockhash=B,p[P].length&&v.sign(...p[P]),v));Te(x);let F=await this.signAllTransactions(x);if(g){let v=0,P=[],h=async()=>{if(!F[v])return;let I=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:w});P.push({txId:I,status:"sent",signedTx:F[v]}),S==null||S([...P]),v++;let C=!1,L=null,_=null,ie=q=>{L!==null&&clearInterval(L),_!==null&&this.connection.removeSignatureListener(_);let W=P.findIndex(j=>j.txId===I);if(W>-1){if(P[W].status==="error"||P[W].status==="success")return;P[W].status=q.err?"error":"success"}S==null||S([...P]),q.err||h()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(C){clearInterval(L);return}try{let W=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(C=!0,clearInterval(L),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",I))}catch(W){C=!0,clearInterval(L),console.error("getTransaction timeout:",W,I)}},yt)),_=this.connection.onSignature(I,q=>{if(C){this.connection.removeSignatureListener(_);return}C=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(I)};return await h(),{txIds:P.map(I=>I.txId),signedTxs:F}}else{let v=[];for(let P=0;P<F.length;P+=1){let h=await this.connection.sendRawTransaction(F[P].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 N=e||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:u,recentBlockhash:c}=N,l=me(N,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=R(R({},this.cluster==="devnet"?await Wt(this.connection):await Dt(this.connection)),n),y=Array.from(new Set([...i,...this.lookupTableAddress])),A=[];for(let B of y)p[B]===void 0&&A.push(new Ne(B));let b=await Et({connection:this.connection,address:A});for(let[B,K]of Object.entries(b))p[B]=K;let g=u?Ne.default.toBase58():c!=null?c:await Oe(this.connection,this.blockhashCommitment),S=new Ze({payerKey:this.feePayer,recentBlockhash:g,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((w=this.owner)==null?void 0:w.signer)&&!this.signers.some(B=>B.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let T=new je(S);return T.sign(this.signers),{builder:this,transaction:T,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async B=>{var v;let{skipPreflight:K=!0,sendAndConfirm:x,notSendToRpc:F}=B||{};if(Te([T]),(v=this.owner)!=null&&v.isKeyPair){let P=await this.connection.sendTransaction(T,{skipPreflight:K});return x&&await ft(this.connection,P),{txId:P,signedTx:T}}if(this.signAllTransactions){let P=await this.signAllTransactions([T]);if(this.signers.length)for(let h of P)try{h.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(P[0],{skipPreflight:K}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:l||{}}}async buildV0MultiTx(e){var A;let{extraPreBuildData:n=[],buildProps:i}=e,{transaction:u}=await this.buildV0(i),c=n.filter(b=>b.builder.instructions.length>0),l=[u,...c.map(b=>b.transaction)],p=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(A=this.owner)!=null&&A.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:S,recentBlockHash:T,skipPreflight:N=!0}=b||{};if(T&&l.forEach(B=>B.message.recentBlockhash=T),Te(l),(w=this.owner)!=null&&w.isKeyPair){if(g){let B=[];for(let K of l){let x=await this.connection.sendTransaction(K,{skipPreflight:N});await ft(this.connection,x),B.push(x)}return{txIds:B,signedTxs:l}}return{txIds:await Promise.all(l.map(async B=>await this.connection.sendTransaction(B,{skipPreflight:N}))),signedTxs:l}}if(this.signAllTransactions){let B=await this.signAllTransactions(l);if(g){let K=0,x=[],F=async()=>{if(!B[K])return;let v=await this.connection.sendTransaction(B[K],{skipPreflight:N});x.push({txId:v,status:"sent",signedTx:B[K]}),S==null||S([...x]),K++;let P=!1,h=null,I=null,C=L=>{h!==null&&clearInterval(h),I!==null&&this.connection.removeSignatureListener(I);let _=x.findIndex(ie=>ie.txId===v);if(_>-1){if(x[_].status==="error"||x[_].status==="success")return;x[_].status=L.err?"error":"success"}S==null||S([...x]),L.err||F()};this.loopMultiTxStatus&&(h=setInterval(async()=>{var L;if(P){clearInterval(h);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(P=!0,clearInterval(h),C({err:((L=_.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",v))}catch(_){P=!0,clearInterval(h),console.error("getTransaction timeout:",_,v)}},yt)),I=this.connection.onSignature(v,L=>{if(P){this.connection.removeSignatureListener(I);return}P=!0,C(L)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:B}}else{let K=[];for(let x=0;x<B.length;x+=1){let F=await this.connection.sendTransaction(B[x],{skipPreflight:N});K.push(F)}return{txIds:K,signedTxs:B}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var S;let g=e||{},{splitIns:n=[],computeBudgetConfig:i}=g,u=me(g,["splitIns","computeBudgetConfig"]),c=i?pt(i):{instructions:[],instructionTypes:[]},l=this.signers.reduce((T,N)=>V(R({},T),{[N.publicKey.toBase58()]:N}),{}),p=[],y=[],A=[],b=0;if(this.allInstructions.forEach(T=>{let N=[...A,T],w=i?[...c.instructions,...N]:N,K=[...new Set(N.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(x=>new Ne(x));if(T!==n[b]&&A.length<12&&(Ye({instructions:w,payer:this.feePayer,signers:K})||Ye({instructions:N,payer:this.feePayer,signers:K})))A.push(T);else{if(A.length===0)throw Error("item ins too big");b+=T===n[b]?1:0,Ye({instructions:i?[...c.instructions,...A]:[...A],payer:this.feePayer,signers:K})?p.push(new He().add(...c.instructions,...A)):p.push(new He().add(...A)),y.push(Array.from(new Set(A.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(x=>l[x]).filter(x=>x!==void 0)),A=[T]}}),A.length>0){let N=[...new Set(A.map(w=>w.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat()).values()].map(w=>l[w]).filter(w=>w!==void 0);Ye({instructions:i?[...c.instructions,...A]:[...A],payer:this.feePayer,signers:N.map(w=>w.publicKey)})?p.push(new He().add(...c.instructions,...A)):p.push(new He().add(...A)),y.push(N)}return p.forEach(T=>T.feePayer=this.feePayer),(S=this.owner)!=null&&S.signer&&y.forEach(T=>{T.some(N=>N.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:N,onTxUpdate:w,skipTxCount:B=0,recentBlockHash:K,skipPreflight:x=!0}=T||{},F=K!=null?K:await Oe(this.connection,this.blockhashCommitment);if(p.forEach(async(P,h)=>{P.recentBlockhash=F,y[h].length&&P.sign(...y[h])}),Te(p),(v=this.owner)!=null&&v.isKeyPair){if(N){let P=0,h=[];for(let I of p){if(++P,P<=B){h.push("tx skipped");continue}let C=await Ut(this.connection,I,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});h.push(C)}return{txIds:h,signedTxs:p}}return{txIds:await Promise.all(p.map(async P=>await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:x}))),signedTxs:p}}if(this.signAllTransactions){let P=await this.signAllTransactions(p.slice(B,p.length)),h=[...p.slice(0,B),...P];if(N){let I=0,C=[],L=async()=>{if(!h[I])return;I<B&&(C.push({txId:"",status:"success",signedTx:h[I]}),w==null||w([...C]),I++,L());let _=await this.connection.sendRawTransaction(h[I].serialize(),{skipPreflight:x});C.push({txId:_,status:"sent",signedTx:h[I]}),w==null||w([...C]),I++;let ie=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=C.findIndex(fe=>fe.txId===_);if(te>-1){if(C[te].status==="error"||C[te].status==="success")return;C[te].status=G.err?"error":"success"}w==null||w([...C]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ie){clearInterval(q);return}try{let te=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});te&&(ie=!0,clearInterval(q),j({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(te){ie=!0,clearInterval(q),console.error("getTransaction timeout:",te,_)}},yt)),W=this.connection.onSignature(_,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await L(),{txIds:C.map(_=>_.txId),signedTxs:h}}else{let I=[];for(let C=0;C<h.length;C+=1){let L=await this.connection.sendRawTransaction(h[C].serialize(),{skipPreflight:x});I.push(L)}return{txIds:I,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(e){var v;let F=e||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:u={},lookupTableAddress:c=[],insCountLimit:l=12}=F,p=me(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=R(R({},this.cluster==="devnet"?await Wt(this.connection):await Dt(this.connection)),u),A=Array.from(new Set([...this.lookupTableAddress,...c])),b=[];for(let P of A)y[P]===void 0&&b.push(new Ne(P));let g=await Et({connection:this.connection,address:b});for(let[P,h]of Object.entries(g))y[P]=h;let S=n?pt(n):{instructions:[],instructionTypes:[]},T=await Oe(this.connection,this.blockhashCommitment),N=this.signers.reduce((P,h)=>V(R({},P),{[h.publicKey.toBase58()]:h}),{}),w=[],B=[],K=[],x=0;if(this.allInstructions.forEach(P=>{let h=[...K,P],I=n?[...S.instructions,...h]:h;if(P!==i[x]&&K.length<l&&(Qe({instructions:I,payer:this.feePayer,lookupTableAddressAccount:y})||Qe({instructions:h,payer:this.feePayer,lookupTableAddressAccount:y})))K.push(P);else{if(K.length===0)throw Error("item ins too big");x+=P===i[x]?1:0;let C={};for(let L of[...new Set(A)])y[L]!==void 0&&(C[L]=y[L]);if(n&&Qe({instructions:[...S.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:T})){let L=new Ze({payerKey:this.feePayer,recentBlockhash:T,instructions:[...S.instructions,...K]}).compileToV0Message(Object.values(y));w.push(new je(L))}else{let L=new Ze({payerKey:this.feePayer,recentBlockhash:T,instructions:[...K]}).compileToV0Message(Object.values(y));w.push(new je(L))}B.push(Array.from(new Set(K.map(L=>L.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(L=>N[L]).filter(L=>L!==void 0)),K=[P]}}),K.length>0){let h=[...new Set(K.map(I=>I.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(I=>N[I]).filter(I=>I!==void 0);if(n&&Qe({instructions:[...S.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:T})){let I=new Ze({payerKey:this.feePayer,recentBlockhash:T,instructions:[...S.instructions,...K]}).compileToV0Message(Object.values(y));w.push(new je(I))}else{let I=new Ze({payerKey:this.feePayer,recentBlockhash:T,instructions:[...K]}).compileToV0Message(Object.values(y));w.push(new je(I))}B.push(h)}return(v=this.owner)!=null&&v.signer&&B.forEach(P=>{P.some(h=>h.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),w.forEach((P,h)=>{P.sign(B[h])}),{builder:this,transactions:w,buildProps:e,signers:B,instructionTypes:this.instructionTypes,execute:async P=>{var ie;let{sequentially:h,onTxUpdate:I,skipTxCount:C=0,recentBlockHash:L,skipPreflight:_=!0}=P||{};if(w.map(async(q,W)=>{B[W].length&&q.sign(B[W]),L&&(q.message.recentBlockhash=L)}),Te(w),(ie=this.owner)!=null&&ie.isKeyPair){if(h){let q=0,W=[];for(let j of w){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:_});await ft(this.connection,G),W.push(G)}return{txIds:W,signedTxs:w}}return{txIds:await Promise.all(w.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:_}))),signedTxs:w}}if(this.signAllTransactions){let q=await this.signAllTransactions(w.slice(C,w.length)),W=[...w.slice(0,C),...q];if(h){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<C){G.push({txId:"",status:"success",signedTx:W[j]}),I==null||I([...G]),j++,te();return}let fe=await this.connection.sendTransaction(W[j],{skipPreflight:_});G.push({txId:fe,status:"sent",signedTx:W[j]}),I==null||I([...G]),j++;let qe=!1,xe=null,at=null,mn=we=>{xe!==null&&clearInterval(xe),at!==null&&this.connection.removeSignatureListener(at);let ye=G.findIndex(xo=>xo.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=we.err?"error":"success"}I==null||I([...G]),we.err||te()};this.loopMultiTxStatus&&(xe=setInterval(async()=>{var we;if(qe){clearInterval(xe);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(qe=!0,clearInterval(xe),mn({err:((we=ye.meta)==null?void 0:we.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){qe=!0,clearInterval(xe),console.error("getTransaction timeout:",ye,fe)}},yt)),at=this.connection.onSignature(fe,we=>{if(qe){this.connection.removeSignatureListener(at);return}qe=!0,mn(we)},"confirmed"),this.connection.getSignatureStatus(fe)};return te(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let te=await this.connection.sendTransaction(W[G],{skipPreflight:_});j.push(te)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};var Gt=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),oe=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=E(n)}createTxBuilder(e){return this.scope.checkOwner(),new bt({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(Gt(e))}logInfo(...e){this.logger.info(Gt(e))}logAndCreateError(...e){let n=Gt(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Ll,SystemProgram as Nl}from"@solana/web3.js";import vl from"bn.js";import{createCloseAccountInstruction as Dl,createInitializeAccountInstruction as Wl,createTransferInstruction as ql,TOKEN_PROGRAM_ID as Ul}from"@solana/spl-token";import{PublicKey as yi}from"@solana/web3.js";import Fn,{isBN as vn}from"bn.js";import{bits as oi,BitStructure as _c,blob as ii,Blob as Vc,cstr as Ec,f32 as Dc,f32be as Wc,f64 as qc,f64be as Uc,greedy as Gc,Layout as ri,ns64 as zc,ns64be as Xc,nu64 as ai,nu64be as Yc,offset as si,s16 as Qc,s16be as Hc,s24 as Zc,s24be as jc,s32 as ui,s32be as $c,s40 as Jc,s40be as el,s48 as tl,s48be as nl,s8 as ol,seq as ci,struct as il,Structure as li,u16 as mi,u16be as rl,u24 as al,u24be as sl,u32 as di,u32be as ul,u40 as cl,u40be as ll,u48 as ml,u48be as dl,u8 as pi,UInt as fi,union as pl,Union as fl,unionLayoutDiscriminator as yl,utf8 as bl}from"@solana/buffer-layout";var gt=ri,Rn=li;var zt=fi;var Ln=pi,H=mi;var Pt=di;var On=ai;var ue=ui;var Nn=ci;var M=ii;var Xt=oi,Mn=si;var Ie=class extends gt{constructor(n,i,u){super(n,u);this.blob=M(n),this.signed=i}decode(n,i=0){let u=new Fn(this.blob.decode(n,i),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,i,u=0){return typeof n=="number"&&(n=new Fn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,u)}},At=class extends gt{constructor(n){super(8,n);this._lower=Xt(Pt(),!1),this._upper=Xt(Pt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let u=this._lower.decode(n,i),c=this._upper.decode(n,i+this._lower.span);return R(R({},u),c)}encode(n,i,u=0){return this._lower.encode(n,i,u)+this._upper.encode(n,i,u+this._lower.span)}};function m(o){return new zt(1,o)}function X(o){return new zt(4,o)}function t(o){return new Ie(8,!1,o)}function O(o){return new Ie(16,!1,o)}function _n(o){return new Ie(1,!0,o)}function Me(o){return new Ie(8,!0,o)}function Vn(o){return new Ie(16,!0,o)}var $e=class extends gt{constructor(n,i,u,c){super(n.span,c);this.layout=n,this.decoder=i,this.encoder=u}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,u){return this.layout.encode(this.encoder(n),i,u)}getSpan(n,i){return this.layout.getSpan(n,i)}};function r(o){return new $e(M(32),e=>new yi(e),e=>e.toBuffer(),o)}function re(o){return new $e(Ln(),bi,gi,o)}function bi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function gi(o){return o?1:0}function En(o,e){let n=Pt("length"),i=d([n,f(o,Mn(n,-n.span),"values")]);return new $e(i,({values:u})=>u,u=>({values:u}),e)}var Yt=class extends Rn{decode(e,n){return super.decode(e,n)}};function d(o,e,n){return new Yt(o,e,n)}function f(o,e,n){let i,u=typeof e=="number"?e:vn(e)?e.toNumber():new Proxy(e,{get(c,l){if(!i){let p=Reflect.get(c,"count");i=vn(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 Nn(o,u,n)}var Je=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 Qg,SystemProgram as Hg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as jg}from"@solana/spl-token";import{PublicKey as wi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ki}from"@solana/spl-token";function ae(o,e,n){return se([o.toBuffer(),(n!=null?n:ki).toBuffer(),e.toBuffer()],new wi("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as k}from"@solana/web3.js";var Wn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),qn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Un=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Qt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Am=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ti=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Gn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),zn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),wm=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),hi=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Xn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ii=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Bi=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Yn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),km=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),xi=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Si=new k("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Ki=new k("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ci=new k("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ri=new k("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Ht=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Li=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Tm=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Oi=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ni=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Mi=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),hm=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Im=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Bm=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),xm=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Sm=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),tt={IDO_PROGRAM_ID_V1:Si,IDO_PROGRAM_ID_V2:Ki,IDO_PROGRAM_ID_V3:Ci,IDO_PROGRAM_ID_V4:Ri};var ge={OPEN_BOOK_PROGRAM:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new k("Ray1111111111111111111111111111111111111111"),AMM_V4:new k("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new k("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new k("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new k("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new k("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new k("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new k("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new k("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:k.default,Router:new k("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new k("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new k("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new k("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new k("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new k("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new k("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new k("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new k("Ray1111111111111111111111111111111111111111")};import sP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as By,TOKEN_2022_PROGRAM_ID as xy,TOKEN_PROGRAM_ID as Sy}from"@solana/spl-token";import{PublicKey as Cy}from"@solana/web3.js";import Ly from"bn.js";import Ny from"decimal.js";import{TOKEN_PROGRAM_ID as Wm}from"@solana/spl-token";import{PublicKey as zm}from"@solana/web3.js";var Fi=d([X("mintAuthorityOption"),r("mintAuthority"),t("supply"),m("decimals"),m("isInitialized"),X("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Yf,TOKEN_2022_PROGRAM_ID as Qf,TOKEN_PROGRAM_ID as Hf}from"@solana/spl-token";import{Keypair as $f,PublicKey as Jf,SystemProgram as ty,TransactionInstruction as ny}from"@solana/web3.js";import iy from"bn.js";import D from"bn.js";var ve=new D(1).shln(64);var vi=new D(1).shln(128),Zt=new D(1).shln(64).subn(1),_i=new D(1).shln(128).subn(1);var _e=new D("4295048016"),Ve=new D("79226673521066979257578248091"),Vi=new D("59543866431248"),Ei=new D("184467440737095516"),Di=new D("15793534762490258745");var jt=60,od=new D("18446743708227953217"),Wi=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var nt=3,Qn=100;var Hn=10,Zn=100,wt=14;var Z=new D(0),Ee=new D(1),id=new D(-1);var rd=new D("18446744073700000000");var qi=d([M(8),m("bump"),H("index"),r("owner"),X("protocolFeeRate"),X("tradeFeeRate"),H("tickSpacing"),X("fundFeeRate"),f(X(),1),r("fundOwner"),f(t(),3)]),Ui=d([X("blockTimestamp"),Me("tickCumulative"),f(t(),4)]),jn=d([M(8),re("initialized"),t("recentEpoch"),H("observationIndex"),r("poolId"),f(Ui,Qn,"observations"),f(t(),4)]),Gi=d([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),t("lastUpdateTimestamp"),f(m(),46)]),zi=d([m("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),O("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),r("mint"),r("vault"),r("creator"),O("growthGlobalX64")]),$t=d([M(8),m("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),m("mintDecimalsA"),m("mintDecimalsB"),H("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ue("tickCurrent"),X(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),t("protocolFeesTokenA"),t("protocolFeesTokenB"),f(O(),4),m("status"),m("feeOn"),M(6),f(zi,nt,"rewardInfos"),M(8*16,"tickArrayBitmap"),f(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),Gi.replicate("dynamicFeeInfo"),f(t(),46)]),Xi=d([O("growthInsideLastX64"),t("rewardAmountOwed")]),Yi=d([M(8),m("bump"),r("nftMint"),r("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(Xi,nt,"rewardInfos"),t("recentEpoch"),f(t(),7)]),cd=d([M(8),m("bump"),r("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(O(),nt,"rewardGrowthInside"),t("recentEpoch"),f(t(),7)]),Qi=d([ue("tick"),Vn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),f(O(),nt,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),O("unfilledRatioX64"),f(X(),3)]),$n=d([M(8),r("poolId"),ue("startTickIndex"),f(Qi,jt,"ticks"),m("initializedTickCount"),t("recentEpoch"),f(m(),107)]),Hi=d([M(8),m("bump"),f(r(),Hn,"operationOwners"),f(r(),Zn,"whitelistMints")]),Zi=d([M(8),r("poolId"),r("owner"),ue("tick"),re("zeroForOne"),t("orderPhase"),t("totalAmount"),t("filledAmount"),t("settleBase"),t("settleOutput"),t("openTime"),O("unfilledRatioX64"),f(t(),4)]),Jn=d([M(8),r("poolId"),M(8*8*wt,"positiveTickArrayBitmap"),M(8*8*wt,"negativeTickArrayBitmap")]),ld=d([M(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),f(t(),8)]),ji=d([M(8),r("wallet"),m("nonceIndex"),t("orderNonce"),f(t(),4)]),md=d([t(),m("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),f(t(),8)]),$i=d([M(8),m("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),t("recentEpoch"),f(t(),8)]);import fd from"bn.js";var Bd=Buffer.from("amm_config","utf8"),Ji=Buffer.from("pool","utf8"),er=Buffer.from("pool_vault","utf8"),xd=Buffer.from("pool_reward_vault","utf8"),Sd=Buffer.from("position","utf8"),Kd=Buffer.from("tick_array","utf8"),Cd=Buffer.from("operation","utf8"),Rd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Ld=Buffer.from("observation","utf8"),Od=Buffer.from("support_mint","utf8"),Nd=Buffer.from("dynamic_fee_config","utf8");var Md=Buffer.from("locked_position","utf8");import{sha256 as yr}from"js-sha256";import tr from"bn.js";import Vd from"decimal.js";var Dd=new tr(1).shln(256).subn(1);import ip from"bn.js";import Yd from"bn.js";import Hd from"decimal.js";import cp from"bn.js";import mp from"decimal.js";import{PublicKey as jp}from"@solana/web3.js";import Jp from"bn.js";import{TOKEN_2022_PROGRAM_ID as uf}from"@solana/spl-token";import df from"decimal.js";import Dp from"bn.js";import Sp from"bn.js";import kf from"bn.js";function $(o){let e=`global:${o}`;return Buffer.from(yr.digest(e)).slice(0,8)}jn.span;var dy=E("Raydium_Clmm"),py={createPool:$("create_pool"),createCustomizablePool:$("create_customizable_pool"),openPositionV2:$("open_position_v2"),openPositionWithToken22Nft:$("open_position_with_token22_nft"),closePosition:$("close_position"),increaseLiquidityV2:$("increase_liquidity_v2"),decreaseLiquidityV2:$("decrease_liquidity_v2"),initializeReward:$("initialize_reward"),setRewardParams:$("set_reward_params"),updateRewardInfos:$("update_reward_infos"),collectRemainingRewards:$("collect_remaining_rewards"),swapV2:$("swap_v2"),openLimitOrder:$("open_limit_order"),increaseLimitOrder:$("increase_limit_order"),decreaseLimitOrder:$("decrease_limit_order"),settleLimitOrder:$("settle_limit_order"),closeLimitOrder:$("close_limit_order")};import{PublicKey as on}from"@solana/web3.js";var wr=d([m("instruction")]),kr=d([m("instruction")