UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 73.2 kB
var uo=Object.defineProperty,co=Object.defineProperties;var lo=Object.getOwnPropertyDescriptors;var tt=Object.getOwnPropertySymbols;var on=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable;var nn=(i,t,n)=>t in i?uo(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,K=(i,t)=>{for(var n in t||(t={}))on.call(t,n)&&nn(i,n,t[n]);if(tt)for(var n of tt(t))rn.call(t,n)&&nn(i,n,t[n]);return i},F=(i,t)=>co(i,lo(t));var ue=(i,t)=>{var n={};for(var r in i)on.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&tt)for(var r of tt(i))t.indexOf(r)<0&&rn.call(i,r)&&(n[r]=i[r]);return n};import{PublicKey as ao}from"@solana/web3.js";import Ie from"bn.js";import kC from"decimal.js";import ko from"big.js";import Ma from"bn.js";import{get as an,set as mo}from"lodash";var ht=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},sn={},po={};function E(i){let t=an(sn,i);if(!t){let n=an(po,i);t=new ht({name:i,logLevel:n}),mo(sn,i,t)}return t}import fo from"toformat";var yo=fo,De=yo;import ot from"big.js";import go from"bn.js";import Po from"decimal.js-light";import We from"bn.js";var un=9007199254740991;function ne(i){let t=E("Raydium_parseBigNumberish");if(i instanceof We)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new We(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=un||i<=-un)&&t.logWithError(`BigNumberish number overflow: ${i}`),new We(String(i))):typeof i=="bigint"?new We(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new We(0))}var nt=E("module/fraction"),It=De(ot),qe=De(Po),Ao={[0]:qe.ROUND_DOWN,[1]:qe.ROUND_HALF_UP,[2]:qe.ROUND_UP},wo={[0]:ot.roundDown,[1]:ot.roundHalfUp,[2]:ot.roundUp},U=class{constructor(t,n=new go(1)){this.numerator=ne(t),this.denominator=ne(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||nt.logWithError(`${t} is not an integer.`),t<=0&&nt.logWithError(`${t} is not positive.`),qe.set({precision:t+1,rounding:Ao[r]});let u=new qe(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||nt.logWithError(`${t} is not an integer.`),t<0&&nt.logWithError(`${t} is negative.`),It.DP=t,It.RM=wo[r]||1,new It(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Ua=E("Raydium_amount"),Ga=De(ko);import{PublicKey as ho}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as cn}from"@solana/spl-token";var it={chainId:101,address:ho.default.toBase58(),programId:cn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ce={chainId:101,address:"So11111111111111111111111111111111111111112",programId:cn.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 xt}from"@solana/web3.js";import{PublicKey as z,SystemProgram as ln,SYSVAR_RENT_PUBKEY as Io}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Bo}from"@solana/spl-token";function Se({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var So=[Se({pubkey:Bo,isWritable:!1}),Se({pubkey:ln.programId,isWritable:!1}),Se({pubkey:Io,isWritable:!1})];function Bt({publicKey:i,transformSol:t}){let n=mn(i.toString());if(n instanceof z)return t&&n.equals(Ae)?le:n;if(t&&n.toString()===Ae.toBase58())return le;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 mn(i){try{return new z(i)}catch{return i}}var St=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ue=new z("SysvarRent111111111111111111111111111111111"),$a=new z("SysvarC1ock11111111111111111111111111111111"),rt=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),xo=new z("Sysvar1nstructions1111111111111111111111111"),Ko=ln.programId,Ja=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),es=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ts=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ns=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),os=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),is=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),rs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),as=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ss=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),us=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),cs=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),le=new z("So11111111111111111111111111111111111111112"),Ae=z.default;function we(i){return Bt({publicKey:i,transformSol:!0})}var Kt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:d=!1,isToken2022:y=!1}){if(t===Ae.toBase58()||t instanceof xt&&Ae.equals(t)){this.decimals=ce.decimals,this.symbol=ce.symbol,this.name=ce.name,this.mint=new xt(ce.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=d?xt.default:Bt({publicKey:t}),this.isToken2022=y}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Kt;J.WSOL=new Kt(F(K({},ce),{mint:ce.address}));var Ct=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},at=Ct;at.SOL=new Ct(it);import Co from"bn.js";var ks=new U(new Co(100));var xs=E("Raydium_price");import{merge as hK}from"lodash";import vs from"axios";var dn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Ro=F(K({},dn),{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 ru=E("Raydium_Api");import{PublicKey as Il,SystemProgram as Bl}from"@solana/web3.js";import{AccountLayout as Rl,createAssociatedTokenAccountIdempotentInstruction as Ll,TOKEN_PROGRAM_ID as Ol,TOKEN_2022_PROGRAM_ID as Nl}from"@solana/spl-token";import{PublicKey as Le,sendAndConfirmTransaction as Ft,SystemProgram as vo,Transaction as Xe,TransactionMessage as Ye,VersionedTransaction as Qe}from"@solana/web3.js";import Vo from"axios";import{PublicKey as Rt,AddressLookupTableAccount as Ce}from"@solana/web3.js";async function Lt({connection:i,address:t,cluster:n="mainnet"}){let r=await me(i,[...new Set(t.map(d=>d.toString()))].map(d=>new Rt(d))),u={};for(let d=0;d<t.length;d++){let y=r[d],p=t[d];if(!y)continue;let b=new Ce({key:p,state:Ce.deserialize(y.data)});u[p.toString()]=b,n==="devnet"?Ke[p.toString()]=b:xe[p.toString()]=b}return u}var xe={},Ot=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(xe[t])return xe;let n=new Rt(t),r=await i.getAccountInfo(n);return r&&(xe[t]=new Ce({key:n,state:Ce.deserialize(r.data)})),xe},Ke={},Nt=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ke[t])return Ke;let n=new Rt(t),r=await i.getAccountInfo(n);return r&&(Ke[t]=new Ce({key:n,state:Ce.deserialize(r.data)})),Ke};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 pn,Keypair as yn,PublicKey as Lo,Transaction as bn,TransactionMessage as Oo,VersionedTransaction as gn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as No}from"@solana/spl-token";var fn=E("Raydium_txUtil"),Pn=1644;function st(i){let t=[],n=[];return i.microLamports&&(t.push(pn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Q.SetComputeUnitPrice)),i.units&&(t.push(pn.setComputeUnitLimit({units:i.units})),n.push(Q.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Re(i,t){var r,u;let n=t!=null?t:"confirmed";return(u=await((r=i.getLatestBlockhash)==null?void 0:r.call(i,{commitment:n})))==null?void 0:u.blockhash}async function ut(i,t){return i.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);i.onSignature(t,d=>{if(clearTimeout(u),!d.err){n("");return}r(Object.assign(d.err,{txId:t}))},"confirmed")})}function Mt(i,t){i.length<1&&fn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&fn.logWithError(`no signers provided:, ${t.toString()}`);let n=new bn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Pn}catch{return!1}}function de(i,t){let[n,r]=Lo.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function Ge({instructions:i,payer:t,signers:n}){return Mt(i,[t,...n])}function ze({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=yn.generate().publicKey.toString()}){let d=new Oo({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new gn(d).serialize()).toString("base64").length<Pn}catch{return!1}}var Mo=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Fo=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof gn&&(t=Mo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function ke(i){let t=[];return i.forEach(n=>{n instanceof bn&&(n.recentBlockhash||(n.recentBlockhash=No.toBase58()),n.feePayer||(n.feePayer=yn.generate().publicKey)),t.push(Fo(n))}),console.log("simulate tx string:",t),t}var ct=2e3,lt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let t=(await Vo.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=st(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(vo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Le(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Q.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:d=[],lookupTableAddress:y=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...y.filter(p=>p!==Le.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(F(K({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Xe;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var g;let{recentBlockHash:d,skipPreflight:y=!0,sendAndConfirm:p,notSendToRpc:b}=u||{},B=d!=null?d:await Re(this.connection,this.blockhashCommitment);if(n.recentBlockhash=B,this.signers.length&&n.sign(...this.signers),ke([n]),(g=this.owner)!=null&&g.isKeyPair)return{txId:p?await Ft(this.connection,n,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:y}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:y}),signedTx:n};if(this.signAllTransactions){let O=await this.signAllTransactions([n]);if(this.signers.length)for(let C of O)try{C.sign(...this.signers)}catch{}return{txId:b?"":await this.connection.sendRawTransaction(O[0].serialize(),{skipPreflight:y}),signedTx:O[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var B;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),d=n.filter(g=>g.transaction.instructions.length>0),y=[u,...d.map(g=>g.transaction)],p=[this.signers,...d.map(g=>g.signers)],b=[...this.instructionTypes,...d.map(g=>g.instructionTypes).flat()];return(B=this.owner)!=null&&B.signer&&p.forEach(g=>{g.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:y,signers:p,instructionTypes:b,execute:async g=>{var I;let{sequentially:O,onTxUpdate:C,skipTxCount:S=0,recentBlockHash:M,skipPreflight:P=!0}=g||{},T=M!=null?M:await Re(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(O){let h=[],v=0;for(let V of y){if(++v,v<=S)continue;let f=await Ft(this.connection,V,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});h.push(f)}return{txIds:h,signedTxs:y}}return{txIds:await await Promise.all(y.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:P})))),signedTxs:y}}if(this.signAllTransactions){let h=y.map((V,f)=>(V.recentBlockhash=T,p[f].length&&V.sign(...p[f]),V));ke(h);let v=await this.signAllTransactions(h);if(O){let V=0,f=[],A=async()=>{if(!v[V])return;let w=await this.connection.sendRawTransaction(v[V].serialize(),{skipPreflight:P});f.push({txId:w,status:"sent",signedTx:v[V]}),C==null||C([...f]),V++;let x=!1,R=null,_=null,ie=q=>{R!==null&&clearInterval(R),_!==null&&this.connection.removeSignatureListener(_);let W=f.findIndex(j=>j.txId===w);if(W>-1){if(f[W].status==="error"||f[W].status==="success")return;f[W].status=q.err?"error":"success"}C==null||C([...f]),q.err||A()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var q;if(x){clearInterval(R);return}try{let W=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(x=!0,clearInterval(R),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",w))}catch(W){x=!0,clearInterval(R),console.error("getTransaction timeout:",W,w)}},ct)),_=this.connection.onSignature(w,q=>{if(x){this.connection.removeSignatureListener(_);return}x=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:f.map(w=>w.txId),signedTxs:v}}else{let V=[];for(let f=0;f<v.length;f+=1){let A=await this.connection.sendRawTransaction(v[f].serialize(),{skipPreflight:P});V.push(A)}return{txIds:V,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var P;let M=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:d}=M,y=ue(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=K(K({},this.cluster==="devnet"?await Nt(this.connection):await Ot(this.connection)),n),b=Array.from(new Set([...r,...this.lookupTableAddress])),B=[];for(let T of b)p[T]===void 0&&B.push(new Le(T));let g=await Lt({connection:this.connection,address:B});for(let[T,I]of Object.entries(g))p[T]=I;let O=u?Le.default.toBase58():d!=null?d:await Re(this.connection,this.blockhashCommitment),C=new Ye({payerKey:this.feePayer,recentBlockhash:O,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let S=new Qe(C);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var V;let{skipPreflight:I=!0,sendAndConfirm:h,notSendToRpc:v}=T||{};if(ke([S]),(V=this.owner)!=null&&V.isKeyPair){let f=await this.connection.sendTransaction(S,{skipPreflight:I});return h&&await ut(this.connection,f),{txId:f,signedTx:S}}if(this.signAllTransactions){let f=await this.signAllTransactions([S]);if(this.signers.length)for(let A of f)try{A.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(f[0],{skipPreflight:I}),signedTx:f[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:y||{}}}async buildV0MultiTx(t){var B;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),d=n.filter(g=>g.builder.instructions.length>0),y=[u,...d.map(g=>g.transaction)],p=[this.signers,...d.map(g=>g.signers)],b=[...this.instructionTypes,...d.map(g=>g.instructionTypes).flat()];return(B=this.owner)!=null&&B.signer&&p.forEach(g=>{g.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),y.forEach(async(g,O)=>{g.sign(p[O])}),{builder:this,transactions:y,signers:p,instructionTypes:b,buildProps:r,execute:async g=>{var P;let{sequentially:O,onTxUpdate:C,recentBlockHash:S,skipPreflight:M=!0}=g||{};if(S&&y.forEach(T=>T.message.recentBlockhash=S),ke(y),(P=this.owner)!=null&&P.isKeyPair){if(O){let T=[];for(let I of y){let h=await this.connection.sendTransaction(I,{skipPreflight:M});await ut(this.connection,h),T.push(h)}return{txIds:T,signedTxs:y}}return{txIds:await Promise.all(y.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:y}}if(this.signAllTransactions){let T=await this.signAllTransactions(y);if(O){let I=0,h=[],v=async()=>{if(!T[I])return;let V=await this.connection.sendTransaction(T[I],{skipPreflight:M});h.push({txId:V,status:"sent",signedTx:T[I]}),C==null||C([...h]),I++;let f=!1,A=null,w=null,x=R=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let _=h.findIndex(ie=>ie.txId===V);if(_>-1){if(h[_].status==="error"||h[_].status==="success")return;h[_].status=R.err?"error":"success"}C==null||C([...h]),R.err||v()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var R;if(f){clearInterval(A);return}try{let _=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(f=!0,clearInterval(A),x({err:((R=_.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",V))}catch(_){f=!0,clearInterval(A),console.error("getTransaction timeout:",_,V)}},ct)),w=this.connection.onSignature(V,R=>{if(f){this.connection.removeSignatureListener(w);return}f=!0,x(R)},"confirmed"),this.connection.getSignatureStatus(V)};return v(),{txIds:[],signedTxs:T}}else{let I=[];for(let h=0;h<T.length;h+=1){let v=await this.connection.sendTransaction(T[h],{skipPreflight:M});I.push(v)}return{txIds:I,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var C;let O=t||{},{splitIns:n=[],computeBudgetConfig:r}=O,u=ue(O,["splitIns","computeBudgetConfig"]),d=r?st(r):{instructions:[],instructionTypes:[]},y=this.signers.reduce((S,M)=>F(K({},S),{[M.publicKey.toBase58()]:M}),{}),p=[],b=[],B=[],g=0;if(this.allInstructions.forEach(S=>{let M=[...B,S],P=r?[...d.instructions,...M]:M,I=[...new Set(M.map(h=>h.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(h=>new Le(h));if(S!==n[g]&&B.length<12&&(Ge({instructions:P,payer:this.feePayer,signers:I})||Ge({instructions:M,payer:this.feePayer,signers:I})))B.push(S);else{if(B.length===0)throw Error("item ins too big");g+=S===n[g]?1:0,Ge({instructions:r?[...d.instructions,...B]:[...B],payer:this.feePayer,signers:I})?p.push(new Xe().add(...d.instructions,...B)):p.push(new Xe().add(...B)),b.push(Array.from(new Set(B.map(h=>h.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(h=>y[h]).filter(h=>h!==void 0)),B=[S]}}),B.length>0){let M=[...new Set(B.map(P=>P.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(P=>y[P]).filter(P=>P!==void 0);Ge({instructions:r?[...d.instructions,...B]:[...B],payer:this.feePayer,signers:M.map(P=>P.publicKey)})?p.push(new Xe().add(...d.instructions,...B)):p.push(new Xe().add(...B)),b.push(M)}return p.forEach(S=>S.feePayer=this.feePayer),(C=this.owner)!=null&&C.signer&&b.forEach(S=>{S.some(M=>M.publicKey.equals(this.owner.publicKey))||S.push(this.owner.signer)}),{builder:this,transactions:p,signers:b,instructionTypes:this.instructionTypes,execute:async S=>{var V;let{sequentially:M,onTxUpdate:P,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=S||{},v=I!=null?I:await Re(this.connection,this.blockhashCommitment);if(p.forEach(async(f,A)=>{f.recentBlockhash=v,b[A].length&&f.sign(...b[A])}),ke(p),(V=this.owner)!=null&&V.isKeyPair){if(M){let f=0,A=[];for(let w of p){if(++f,f<=T){A.push("tx skipped");continue}let x=await Ft(this.connection,w,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});A.push(x)}return{txIds:A,signedTxs:p}}return{txIds:await Promise.all(p.map(async f=>await this.connection.sendRawTransaction(f.serialize(),{skipPreflight:h}))),signedTxs:p}}if(this.signAllTransactions){let f=await this.signAllTransactions(p.slice(T,p.length)),A=[...p.slice(0,T),...f];if(M){let w=0,x=[],R=async()=>{if(!A[w])return;w<T&&(x.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...x]),w++,R());let _=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:h});x.push({txId:_,status:"sent",signedTx:A[w]}),P==null||P([...x]),w++;let ie=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=x.findIndex(fe=>fe.txId===_);if(te>-1){if(x[te].status==="error"||x[te].status==="success")return;x[te].status=G.err?"error":"success"}P==null||P([...x]),G.err||R()};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,_)}},ct)),W=this.connection.onSignature(_,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await R(),{txIds:x.map(_=>_.txId),signedTxs:A}}else{let w=[];for(let x=0;x<A.length;x+=1){let R=await this.connection.sendRawTransaction(A[x].serialize(),{skipPreflight:h});w.push(R)}return{txIds:w,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var V;let v=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:d=[],insCountLimit:y=12}=v,p=ue(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=K(K({},this.cluster==="devnet"?await Nt(this.connection):await Ot(this.connection)),u),B=Array.from(new Set([...this.lookupTableAddress,...d])),g=[];for(let f of B)b[f]===void 0&&g.push(new Le(f));let O=await Lt({connection:this.connection,address:g});for(let[f,A]of Object.entries(O))b[f]=A;let C=n?st(n):{instructions:[],instructionTypes:[]},S=await Re(this.connection,this.blockhashCommitment),M=this.signers.reduce((f,A)=>F(K({},f),{[A.publicKey.toBase58()]:A}),{}),P=[],T=[],I=[],h=0;if(this.allInstructions.forEach(f=>{let A=[...I,f],w=n?[...C.instructions,...A]:A;if(f!==r[h]&&I.length<y&&(ze({instructions:w,payer:this.feePayer,lookupTableAddressAccount:b})||ze({instructions:A,payer:this.feePayer,lookupTableAddressAccount:b})))I.push(f);else{if(I.length===0)throw Error("item ins too big");h+=f===r[h]?1:0;let x={};for(let R of[...new Set(B)])b[R]!==void 0&&(x[R]=b[R]);if(n&&ze({instructions:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:S})){let R=new Ye({payerKey:this.feePayer,recentBlockhash:S,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(b));P.push(new Qe(R))}else{let R=new Ye({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(b));P.push(new Qe(R))}T.push(Array.from(new Set(I.map(R=>R.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(R=>M[R]).filter(R=>R!==void 0)),I=[f]}}),I.length>0){let A=[...new Set(I.map(w=>w.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat()).values()].map(w=>M[w]).filter(w=>w!==void 0);if(n&&ze({instructions:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:S})){let w=new Ye({payerKey:this.feePayer,recentBlockhash:S,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(b));P.push(new Qe(w))}else{let w=new Ye({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(b));P.push(new Qe(w))}T.push(A)}return(V=this.owner)!=null&&V.signer&&T.forEach(f=>{f.some(A=>A.publicKey.equals(this.owner.publicKey))||f.push(this.owner.signer)}),P.forEach((f,A)=>{f.sign(T[A])}),{builder:this,transactions:P,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async f=>{var ie;let{sequentially:A,onTxUpdate:w,skipTxCount:x=0,recentBlockHash:R,skipPreflight:_=!0}=f||{};if(P.map(async(q,W)=>{T[W].length&&q.sign(T[W]),R&&(q.message.recentBlockhash=R)}),ke(P),(ie=this.owner)!=null&&ie.isKeyPair){if(A){let q=0,W=[];for(let j of P){if(++q,q<=x){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:_});await ut(this.connection,G),W.push(G)}return{txIds:W,signedTxs:P}}return{txIds:await Promise.all(P.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:_}))),signedTxs:P}}if(this.signAllTransactions){let q=await this.signAllTransactions(P.slice(x,P.length)),W=[...P.slice(0,x),...q];if(A){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<x){G.push({txId:"",status:"success",signedTx:W[j]}),w==null||w([...G]),j++,te();return}let fe=await this.connection.sendTransaction(W[j],{skipPreflight:_});G.push({txId:fe,status:"sent",signedTx:W[j]}),w==null||w([...G]),j++;let Ee=!1,Be=null,et=null,tn=Pe=>{Be!==null&&clearInterval(Be),et!==null&&this.connection.removeSignatureListener(et);let ye=G.findIndex(so=>so.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=Pe.err?"error":"success"}w==null||w([...G]),Pe.err||te()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var Pe;if(Ee){clearInterval(Be);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(Ee=!0,clearInterval(Be),tn({err:((Pe=ye.meta)==null?void 0:Pe.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){Ee=!0,clearInterval(Be),console.error("getTransaction timeout:",ye,fe)}},ct)),et=this.connection.onSignature(fe,Pe=>{if(Ee){this.connection.removeSignatureListener(et);return}Ee=!0,tn(Pe)},"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 vt=(...i)=>i.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new lt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(vt(t))}logInfo(...t){this.logger.info(vt(t))}logAndCreateError(...t){let n=vt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as tl,SystemProgram as ol}from"@solana/web3.js";import al from"bn.js";import{createCloseAccountInstruction as ll,createInitializeAccountInstruction as ml,createTransferInstruction as dl,TOKEN_PROGRAM_ID as pl}from"@solana/spl-token";import{Keypair as qc,PublicKey as Uc}from"@solana/web3.js";import Xc from"bn.js";import{TOKEN_PROGRAM_ID as Zc}from"@solana/spl-token";import{PublicKey as Zo}from"@solana/web3.js";import hn,{isBN as In}from"bn.js";import{bits as _o,BitStructure as Yu,blob as Eo,Blob as Qu,cstr as Zu,f32 as Hu,f32be as ju,f64 as $u,f64be as Ju,greedy as ec,Layout as Do,ns64 as tc,ns64be as nc,nu64 as oc,nu64be as ic,offset as Wo,s16 as rc,s16be as ac,s24 as sc,s24be as uc,s32 as qo,s32be as cc,s40 as lc,s40be as mc,s48 as dc,s48be as pc,s8 as fc,seq as Uo,struct as yc,Structure as Go,u16 as zo,u16be as bc,u24 as gc,u24be as Pc,u32 as Xo,u32be as Ac,u40 as wc,u40be as kc,u48 as Tc,u48be as hc,u8 as Yo,UInt as Qo,union as Ic,Union as Bc,unionLayoutDiscriminator as Sc,utf8 as xc}from"@solana/buffer-layout";var mt=Do,An=Go;var Vt=Qo;var wn=Yo,Z=zo;var dt=Xo;var ae=qo;var kn=Uo;var N=Eo;var _t=_o,Tn=Wo;var he=class extends mt{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new hn(this.blob.decode(n,r),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,r,u=0){return typeof n=="number"&&(n=new hn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},pt=class extends mt{constructor(n){super(8,n);this._lower=_t(dt(),!1),this._upper=_t(dt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let u=this._lower.decode(n,r),d=this._upper.decode(n,r+this._lower.span);return K(K({},u),d)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function c(i){return new Vt(1,i)}function X(i){return new Vt(4,i)}function e(i){return new he(8,!1,i)}function L(i){return new he(16,!1,i)}function Bn(i){return new he(1,!0,i)}function Oe(i){return new he(8,!0,i)}function Sn(i){return new he(16,!0,i)}var Ze=class extends mt{constructor(n,r,u,d){super(n.span,d);this.layout=n,this.decoder=r,this.encoder=u}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,u){return this.layout.encode(this.encoder(n),r,u)}getSpan(n,r){return this.layout.getSpan(n,r)}};function o(i){return new Ze(N(32),t=>new Zo(t),t=>t.toBuffer(),i)}function re(i){return new Ze(wn(),Ho,jo,i)}function Ho(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function jo(i){return i?1:0}function xn(i,t){let n=dt("length"),r=l([n,m(i,Tn(n,-n.span),"values")]);return new Ze(r,({values:u})=>u,u=>({values:u}),t)}var Et=class extends An{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new Et(i,t,n)}function m(i,t,n){let r,u=typeof t=="number"?t:In(t)?t.toNumber():new Proxy(t,{get(d,y){if(!r){let p=Reflect.get(d,"count");r=In(p)?p.toNumber():p,Reflect.set(d,"count",r)}return Reflect.get(d,y)},set(d,y,p){return y==="count"&&(r=p),Reflect.set(d,y,p)}});return kn(i,u,n)}var ft=l([o("mint"),o("owner"),e("amount"),X("delegateOption"),o("delegate"),c("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),o("closeAuthority")]);import{PublicKey as Ig,SystemProgram as Bg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as xg}from"@solana/spl-token";import{PublicKey as Dl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ql}from"@solana/spl-token";import{PublicKey as k}from"@solana/web3.js";var Cn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Rn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Ln=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Dt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Xl=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Jo=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),On=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Nn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Yl=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ei=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Mn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ti=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ni=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Fn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ql=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),oi=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Wt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ii=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Zl=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ri=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ai=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),si=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Hl=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),jl=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),$l=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Jl=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),em=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var be={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 Vg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as ty,TOKEN_2022_PROGRAM_ID as ny,TOKEN_PROGRAM_ID as oy}from"@solana/spl-token";import{PublicKey as ry}from"@solana/web3.js";import sy from"bn.js";import cy from"decimal.js";import{TOKEN_PROGRAM_ID as fm}from"@solana/spl-token";import{PublicKey as Pm}from"@solana/web3.js";var ui=l([X("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as hf,TOKEN_2022_PROGRAM_ID as If,TOKEN_PROGRAM_ID as Bf}from"@solana/spl-token";import{Keypair as Kf,PublicKey as Cf,SystemProgram as Lf,TransactionInstruction as Of}from"@solana/web3.js";import Mf from"bn.js";import D from"bn.js";var Me=new D(1).shln(64);var ci=new D(1).shln(128),qt=new D(1).shln(64).subn(1),li=new D(1).shln(128).subn(1);var Fe=new D("4295048016"),ve=new D("79226673521066979257578248091"),mi=new D("59543866431248"),di=new D("184467440737095516"),pi=new D("15793534762490258745");var Ut=60,Rm=new D("18446743708227953217"),fi=[{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 He=3,vn=100;var Vn=10,_n=100,bt=14;var H=new D(0),Ve=new D(1),Lm=new D(-1);var Om=new D("18446744073700000000");var yi=l([N(8),c("bump"),Z("index"),o("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Z("tickSpacing"),X("fundFeeRate"),m(X(),1),o("fundOwner"),m(e(),3)]),bi=l([X("blockTimestamp"),Oe("tickCumulative"),m(e(),4)]),En=l([N(8),re("initialized"),e("recentEpoch"),Z("observationIndex"),o("poolId"),m(bi,vn,"observations"),m(e(),4)]),gi=l([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),m(c(),46)]),Pi=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),L("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),L("growthGlobalX64")]),Gt=l([N(8),c("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),Z("tickSpacing"),L("liquidity"),L("sqrtPriceX64"),ae("tickCurrent"),X(),L("feeGrowthGlobalX64A"),L("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),m(L(),4),c("status"),c("feeOn"),N(6),m(Pi,He,"rewardInfos"),N(8*16,"tickArrayBitmap"),m(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),gi.replicate("dynamicFeeInfo"),m(e(),46)]),Ai=l([L("growthInsideLastX64"),e("rewardAmountOwed")]),wi=l([N(8),c("bump"),o("nftMint"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(Ai,He,"rewardInfos"),e("recentEpoch"),m(e(),7)]),vm=l([N(8),c("bump"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(L(),He,"rewardGrowthInside"),e("recentEpoch"),m(e(),7)]),ki=l([ae("tick"),Sn("liquidityNet"),L("liquidityGross"),L("feeGrowthOutsideX64A"),L("feeGrowthOutsideX64B"),m(L(),He,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),L("unfilledRatioX64"),m(X(),3)]),Dn=l([N(8),o("poolId"),ae("startTickIndex"),m(ki,Ut,"ticks"),c("initializedTickCount"),e("recentEpoch"),m(c(),107)]),Ti=l([N(8),c("bump"),m(o(),Vn,"operationOwners"),m(o(),_n,"whitelistMints")]),hi=l([N(8),o("poolId"),o("owner"),ae("tick"),re("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),L("unfilledRatioX64"),m(e(),4)]),Wn=l([N(8),o("poolId"),N(8*8*bt,"positiveTickArrayBitmap"),N(8*8*bt,"negativeTickArrayBitmap")]),Vm=l([N(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),m(e(),8)]),Ii=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),_m=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),m(e(),8)]),Bi=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),m(e(),8)]);import Wm from"bn.js";var $m=Buffer.from("amm_config","utf8"),Si=Buffer.from("pool","utf8"),xi=Buffer.from("pool_vault","utf8"),Jm=Buffer.from("pool_reward_vault","utf8"),ed=Buffer.from("position","utf8"),td=Buffer.from("tick_array","utf8"),nd=Buffer.from("operation","utf8"),od=Buffer.from("pool_tick_array_bitmap_extension","utf8"),id=Buffer.from("observation","utf8"),rd=Buffer.from("support_mint","utf8"),ad=Buffer.from("dynamic_fee_config","utf8");var sd=Buffer.from("locked_position","utf8");import{sha256 as qi}from"js-sha256";import Ki from"bn.js";import md from"decimal.js";var pd=new Ki(1).shln(256).subn(1);import Ld from"bn.js";import wd from"bn.js";import Td from"decimal.js";import vd from"bn.js";import _d from"decimal.js";import{PublicKey as Ip}from"@solana/web3.js";import Sp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Mp,TOKEN_PROGRAM_ID as Fp}from"@solana/spl-token";import Ep from"decimal.js";import pp from"bn.js";import ep from"bn.js";import Hp from"bn.js";function $(i){let t=`global:${i}`;return Buffer.from(qi.digest(t)).slice(0,8)}En.span;var qf=E("Raydium_Clmm"),Uf={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 Zt}from"@solana/web3.js";var Yi=l([c("instruction")]),Qi=l([c("instruction")]),Zi=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),L("accRewardPerShare"),o("rewardVault"),o("rewardMint"),o("rewardSender"),e("rewardType"),m(e(),15,"padding")]),Hi=l([e("state"),e("nonce"),o("lpVault"),o("rewardVault"),o(),o(),e(),e(),e("totalReward"),L("perShareReward"),e("lastSlot"),e("perSlotReward")]),ji=l([e("state"),e("nonce"),o("lpVault"),o("rewardVaultA"),e("totalRewardA"),L("perShareRewardA"),e("perSlotRewardA"),c("option"),o("rewardVaultB"),N(7),e("totalRewardB"),L("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),o()]),$i=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),L("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),o("lpMint"),o("lpVault"),m(Zi,5,"rewardInfos"),o("creator"),o(),m(e(),32,"padding")]),Ji=new Proxy(Hi,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return F(K({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(i,t,n)}}),er=new Proxy(ji,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return F(K({},u),{version:5,rewardInfos:[{rewardVault:u.rewardVaultA,totalReward:u.totalRewardA,perSlotReward:u.perSlotRewardA,perShareReward:u.perShareRewardA},{rewardVault:u.rewardVaultB,totalReward:u.totalRewardB,perSlotReward:u.perSlotRewardB,perShareReward:u.perS