UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 74 kB
var mo=Object.defineProperty,po=Object.defineProperties;var fo=Object.getOwnPropertyDescriptors;var nt=Object.getOwnPropertySymbols;var rn=Object.prototype.hasOwnProperty,an=Object.prototype.propertyIsEnumerable;var on=(i,t,n)=>t in i?mo(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,K=(i,t)=>{for(var n in t||(t={}))rn.call(t,n)&&on(i,n,t[n]);if(nt)for(var n of nt(t))an.call(t,n)&&on(i,n,t[n]);return i},F=(i,t)=>po(i,fo(t));var ce=(i,t)=>{var n={};for(var r in i)rn.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&nt)for(var r of nt(i))t.indexOf(r)<0&&an.call(i,r)&&(n[r]=i[r]);return n};import{PublicKey as co}from"@solana/web3.js";import Ie from"bn.js";import rR from"decimal.js";import Io from"big.js";import za from"bn.js";import{get as sn,set as yo}from"lodash";var It=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}},un={},bo={};function E(i){let t=sn(un,i);if(!t){let n=sn(bo,i);t=new It({name:i,logLevel:n}),yo(un,i,t)}return t}import go from"toformat";var Po=go,We=Po;import it from"big.js";import wo from"bn.js";import ko from"decimal.js-light";import qe from"bn.js";var cn=9007199254740991;function ne(i){let t=E("Raydium_parseBigNumberish");if(i instanceof qe)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new qe(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=cn||i<=-cn)&&t.logWithError(`BigNumberish number overflow: ${i}`),new qe(String(i))):typeof i=="bigint"?new qe(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new qe(0))}var ot=E("module/fraction"),Bt=We(it),Ue=We(ko),To={[0]:Ue.ROUND_DOWN,[1]:Ue.ROUND_HALF_UP,[2]:Ue.ROUND_UP},ho={[0]:it.roundDown,[1]:it.roundHalfUp,[2]:it.roundUp},U=class{constructor(t,n=new wo(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)||ot.logWithError(`${t} is not an integer.`),t<=0&&ot.logWithError(`${t} is not positive.`),Ue.set({precision:t+1,rounding:To[r]});let u=new Ue(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)||ot.logWithError(`${t} is not an integer.`),t<0&&ot.logWithError(`${t} is negative.`),Bt.DP=t,Bt.RM=ho[r]||1,new Bt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var es=E("Raydium_amount"),ts=We(Io);import{PublicKey as So}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ln}from"@solana/spl-token";var rt={chainId:101,address:So.default.toBase58(),programId:ln.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:ln.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 Kt}from"@solana/web3.js";import{PublicKey as z,SystemProgram as mn,SYSVAR_RENT_PUBKEY as xo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ko}from"@solana/spl-token";function Se({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var Co=[Se({pubkey:Ko,isWritable:!1}),Se({pubkey:mn.programId,isWritable:!1}),Se({pubkey:xo,isWritable:!1})];function St({publicKey:i,transformSol:t}){let n=dn(i.toString());if(n instanceof z)return t&&n.equals(Ae)?ae:n;if(t&&n.toString()===Ae.toBase58())return ae;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 dn(i){try{return new z(i)}catch{return i}}var xt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),xe=new z("SysvarRent111111111111111111111111111111111"),Ro=new z("SysvarC1ock11111111111111111111111111111111"),at=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Lo=new z("Sysvar1nstructions1111111111111111111111111"),pn=mn.programId,cs=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ls=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ms=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ds=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ps=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),fs=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ys=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),bs=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),gs=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ps=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),As=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ae=new z("So11111111111111111111111111111111111111112"),Ae=z.default;function we(i){return St({publicKey:i,transformSol:!0})}var Ct=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:d=!1,isToken2022:y=!1}){if(t===Ae.toBase58()||t instanceof Kt&&Ae.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Kt(le.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?Kt.default:St({publicKey:t}),this.isToken2022=y}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Ct;J.WSOL=new Ct(F(K({},le),{mint:le.address}));var Rt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},st=Rt;st.SOL=new Rt(rt);import Oo from"bn.js";var Ls=new U(new Oo(100));var Vs=E("Raydium_price");import{merge as rC}from"lodash";import Xs from"axios";var fn={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"},No=F(K({},fn),{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 yu=E("Raydium_Api");import{PublicKey as Nl,SystemProgram as Ml}from"@solana/web3.js";import{AccountLayout as El,createAssociatedTokenAccountIdempotentInstruction as Dl,TOKEN_PROGRAM_ID as Wl,TOKEN_2022_PROGRAM_ID as ql}from"@solana/spl-token";import{PublicKey as Oe,sendAndConfirmTransaction as vt,SystemProgram as Eo,Transaction as Xe,TransactionMessage as Ye,VersionedTransaction as Qe}from"@solana/web3.js";import Do from"axios";import{PublicKey as Lt,AddressLookupTableAccount as Re}from"@solana/web3.js";async function Ot({connection:i,address:t,cluster:n="mainnet"}){let r=await me(i,[...new Set(t.map(d=>d.toString()))].map(d=>new Lt(d))),u={};for(let d=0;d<t.length;d++){let y=r[d],p=t[d];if(!y)continue;let b=new Re({key:p,state:Re.deserialize(y.data)});u[p.toString()]=b,n==="devnet"?Ce[p.toString()]=b:Ke[p.toString()]=b}return u}var Ke={},Nt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ke[t])return Ke;let n=new Lt(t),r=await i.getAccountInfo(n);return r&&(Ke[t]=new Re({key:n,state:Re.deserialize(r.data)})),Ke},Ce={},Mt=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ce[t])return Ce;let n=new Lt(t),r=await i.getAccountInfo(n);return r&&(Ce[t]=new Re({key:n,state:Re.deserialize(r.data)})),Ce};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 yn,Keypair as gn,PublicKey as Mo,Transaction as Pn,TransactionMessage as Fo,VersionedTransaction as An}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as vo}from"@solana/spl-token";var bn=E("Raydium_txUtil"),wn=1644;function ut(i){let t=[],n=[];return i.microLamports&&(t.push(yn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Q.SetComputeUnitPrice)),i.units&&(t.push(yn.setComputeUnitLimit({units:i.units})),n.push(Q.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Le(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 ct(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 Ft(i,t){i.length<1&&bn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&bn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Pn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<wn}catch{return!1}}function de(i,t){let[n,r]=Mo.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function Ge({instructions:i,payer:t,signers:n}){return Ft(i,[t,...n])}function ze({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=gn.generate().publicKey.toString()}){let d=new Fo({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new An(d).serialize()).toString("base64").length<wn}catch{return!1}}var Vo=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),_o=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof An&&(t=Vo(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 Pn&&(n.recentBlockhash||(n.recentBlockhash=vo.toBase58()),n.feePayer||(n.feePayer=gn.generate().publicKey)),t.push(_o(n))}),console.log("simulate tx string:",t),t}var lt=2e3,mt=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 Do.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}=ut(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Eo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Oe(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!==Oe.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 Le(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 vt(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:A=!0}=g||{},T=M!=null?M:await Le(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 vt(this.connection,V,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});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:A})))),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=[],w=async()=>{if(!v[V])return;let k=await this.connection.sendRawTransaction(v[V].serialize(),{skipPreflight:A});f.push({txId:k,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===k);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||w()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var q;if(x){clearInterval(R);return}try{let W=await this.connection.getTransaction(k,{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:",k))}catch(W){x=!0,clearInterval(R),console.error("getTransaction timeout:",W,k)}},lt)),_=this.connection.onSignature(k,q=>{if(x){this.connection.removeSignatureListener(_);return}x=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:f.map(k=>k.txId),signedTxs:v}}else{let V=[];for(let f=0;f<v.length;f+=1){let w=await this.connection.sendRawTransaction(v[f].serialize(),{skipPreflight:A});V.push(w)}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 A;let M=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:d}=M,y=ce(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=K(K({},this.cluster==="devnet"?await Mt(this.connection):await Nt(this.connection)),n),b=Array.from(new Set([...r,...this.lookupTableAddress])),B=[];for(let T of b)p[T]===void 0&&B.push(new Oe(T));let g=await Ot({connection:this.connection,address:B});for(let[T,I]of Object.entries(g))p[T]=I;let O=u?Oe.default.toBase58():d!=null?d:await Le(this.connection,this.blockhashCommitment),C=new Ye({payerKey:this.feePayer,recentBlockhash:O,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((A=this.owner)==null?void 0:A.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 ct(this.connection,f),{txId:f,signedTx:S}}if(this.signAllTransactions){let f=await this.signAllTransactions([S]);if(this.signers.length)for(let w of f)try{w.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 A;let{sequentially:O,onTxUpdate:C,recentBlockHash:S,skipPreflight:M=!0}=g||{};if(S&&y.forEach(T=>T.message.recentBlockhash=S),ke(y),(A=this.owner)!=null&&A.isKeyPair){if(O){let T=[];for(let I of y){let h=await this.connection.sendTransaction(I,{skipPreflight:M});await ct(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,w=null,k=null,x=R=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);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&&(w=setInterval(async()=>{var R;if(f){clearInterval(w);return}try{let _=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(f=!0,clearInterval(w),x({err:((R=_.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",V))}catch(_){f=!0,clearInterval(w),console.error("getTransaction timeout:",_,V)}},lt)),k=this.connection.onSignature(V,R=>{if(f){this.connection.removeSignatureListener(k);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=ce(O,["splitIns","computeBudgetConfig"]),d=r?ut(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],A=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 Oe(h));if(S!==n[g]&&B.length<12&&(Ge({instructions:A,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(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(A=>y[A]).filter(A=>A!==void 0);Ge({instructions:r?[...d.instructions,...B]:[...B],payer:this.feePayer,signers:M.map(A=>A.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:A,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=S||{},v=I!=null?I:await Le(this.connection,this.blockhashCommitment);if(p.forEach(async(f,w)=>{f.recentBlockhash=v,b[w].length&&f.sign(...b[w])}),ke(p),(V=this.owner)!=null&&V.isKeyPair){if(M){let f=0,w=[];for(let k of p){if(++f,f<=T){w.push("tx skipped");continue}let x=await vt(this.connection,k,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});w.push(x)}return{txIds:w,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)),w=[...p.slice(0,T),...f];if(M){let k=0,x=[],R=async()=>{if(!w[k])return;k<T&&(x.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...x]),k++,R());let _=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:h});x.push({txId:_,status:"sent",signedTx:w[k]}),A==null||A([...x]),k++;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"}A==null||A([...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,_)}},lt)),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:w}}else{let k=[];for(let x=0;x<w.length;x+=1){let R=await this.connection.sendRawTransaction(w[x].serialize(),{skipPreflight:h});k.push(R)}return{txIds:k,signedTxs:w}}}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=ce(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=K(K({},this.cluster==="devnet"?await Mt(this.connection):await Nt(this.connection)),u),B=Array.from(new Set([...this.lookupTableAddress,...d])),g=[];for(let f of B)b[f]===void 0&&g.push(new Oe(f));let O=await Ot({connection:this.connection,address:g});for(let[f,w]of Object.entries(O))b[f]=w;let C=n?ut(n):{instructions:[],instructionTypes:[]},S=await Le(this.connection,this.blockhashCommitment),M=this.signers.reduce((f,w)=>F(K({},f),{[w.publicKey.toBase58()]:w}),{}),A=[],T=[],I=[],h=0;if(this.allInstructions.forEach(f=>{let w=[...I,f],k=n?[...C.instructions,...w]:w;if(f!==r[h]&&I.length<y&&(ze({instructions:k,payer:this.feePayer,lookupTableAddressAccount:b})||ze({instructions:w,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));A.push(new Qe(R))}else{let R=new Ye({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(b));A.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 w=[...new Set(I.map(k=>k.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat()).values()].map(k=>M[k]).filter(k=>k!==void 0);if(n&&ze({instructions:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:S})){let k=new Ye({payerKey:this.feePayer,recentBlockhash:S,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(b));A.push(new Qe(k))}else{let k=new Ye({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(b));A.push(new Qe(k))}T.push(w)}return(V=this.owner)!=null&&V.signer&&T.forEach(f=>{f.some(w=>w.publicKey.equals(this.owner.publicKey))||f.push(this.owner.signer)}),A.forEach((f,w)=>{f.sign(T[w])}),{builder:this,transactions:A,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async f=>{var ie;let{sequentially:w,onTxUpdate:k,skipTxCount:x=0,recentBlockHash:R,skipPreflight:_=!0}=f||{};if(A.map(async(q,W)=>{T[W].length&&q.sign(T[W]),R&&(q.message.recentBlockhash=R)}),ke(A),(ie=this.owner)!=null&&ie.isKeyPair){if(w){let q=0,W=[];for(let j of A){if(++q,q<=x){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:_});await ct(this.connection,G),W.push(G)}return{txIds:W,signedTxs:A}}return{txIds:await Promise.all(A.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:_}))),signedTxs:A}}if(this.signAllTransactions){let q=await this.signAllTransactions(A.slice(x,A.length)),W=[...A.slice(0,x),...q];if(w){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<x){G.push({txId:"",status:"success",signedTx:W[j]}),k==null||k([...G]),j++,te();return}let fe=await this.connection.sendTransaction(W[j],{skipPreflight:_});G.push({txId:fe,status:"sent",signedTx:W[j]}),k==null||k([...G]),j++;let De=!1,Be=null,tt=null,nn=Pe=>{Be!==null&&clearInterval(Be),tt!==null&&this.connection.removeSignatureListener(tt);let ye=G.findIndex(lo=>lo.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=Pe.err?"error":"success"}k==null||k([...G]),Pe.err||te()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var Pe;if(De){clearInterval(Be);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(De=!0,clearInterval(Be),nn({err:((Pe=ye.meta)==null?void 0:Pe.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){De=!0,clearInterval(Be),console.error("getTransaction timeout:",ye,fe)}},lt)),tt=this.connection.onSignature(fe,Pe=>{if(De){this.connection.removeSignatureListener(tt);return}De=!0,nn(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 mt({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 ll,SystemProgram as dl}from"@solana/web3.js";import yl from"bn.js";import{createCloseAccountInstruction as Al,createInitializeAccountInstruction as wl,createTransferInstruction as kl,TOKEN_PROGRAM_ID as Tl}from"@solana/spl-token";import{Keypair as jc,PublicKey as $c}from"@solana/web3.js";import tl from"bn.js";import{TOKEN_PROGRAM_ID as il}from"@solana/spl-token";import{PublicKey as Jo}from"@solana/web3.js";import Sn,{isBN as xn}from"bn.js";import{bits as Wo,BitStructure as oc,blob as qo,Blob as ic,cstr as rc,f32 as ac,f32be as sc,f64 as uc,f64be as cc,greedy as lc,Layout as Uo,ns64 as mc,ns64be as dc,nu64 as Go,nu64be as pc,offset as zo,s16 as fc,s16be as yc,s24 as bc,s24be as gc,s32 as Xo,s32be as Pc,s40 as Ac,s40be as wc,s48 as kc,s48be as Tc,s8 as hc,seq as Yo,struct as Ic,Structure as Qo,u16 as Zo,u16be as Bc,u24 as Sc,u24be as xc,u32 as Ho,u32be as Kc,u40 as Cc,u40be as Rc,u48 as Lc,u48be as Oc,u8 as jo,UInt as $o,union as Nc,Union as Mc,unionLayoutDiscriminator as Fc,utf8 as vc}from"@solana/buffer-layout";var dt=Uo,kn=Qo;var _t=$o;var Tn=jo,Z=Zo;var pt=Ho;var hn=Go;var se=Xo;var In=Yo;var N=qo;var Et=Wo,Bn=zo;var he=class extends dt{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new Sn(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 Sn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},ft=class extends dt{constructor(n){super(8,n);this._lower=Et(pt(),!1),this._upper=Et(pt(),!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 _t(1,i)}function X(i){return new _t(4,i)}function e(i){return new he(8,!1,i)}function L(i){return new he(16,!1,i)}function Kn(i){return new he(1,!0,i)}function Ne(i){return new he(8,!0,i)}function Cn(i){return new he(16,!0,i)}var Ze=class extends dt{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 Jo(t),t=>t.toBuffer(),i)}function re(i){return new Ze(Tn(),ei,ti,i)}function ei(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function ti(i){return i?1:0}function Rn(i,t){let n=pt("length"),r=l([n,m(i,Bn(n,-n.span),"values")]);return new Ze(r,({values:u})=>u,u=>({values:u}),t)}var Dt=class extends kn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new Dt(i,t,n)}function m(i,t,n){let r,u=typeof t=="number"?t:xn(t)?t.toNumber():new Proxy(t,{get(d,y){if(!r){let p=Reflect.get(d,"count");r=xn(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 In(i,u,n)}var yt=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 Rg,SystemProgram as Lg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Ng}from"@solana/spl-token";import{PublicKey as Zl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as jl}from"@solana/spl-token";import{PublicKey as P}from"@solana/web3.js";var On=new P("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Nn=new P("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Mn=new P("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Wt=new P("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),tm=new P("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),oi=new P("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Fn=new P("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),vn=new P("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),nm=new P("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ii=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Vn=new P("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ri=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ai=new P("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),_n=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),om=new P("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),si=new P("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ui=new P("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),ci=new P("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),li=new P("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),mi=new P("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),qt=new P("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),di=new P("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),im=new P("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),pi=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),fi=new P("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),yi=new P("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),rm=new P("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),am=new P("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),sm=new P("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),um=new P("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),cm=new P("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),He={IDO_PROGRAM_ID_V1:ui,IDO_PROGRAM_ID_V2:ci,IDO_PROGRAM_ID_V3:li,IDO_PROGRAM_ID_V4:mi};var be={OPEN_BOOK_PROGRAM:new P("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new P("Ray1111111111111111111111111111111111111111"),AMM_V4:new P("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new P("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new P("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new P("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new P("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new P("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new P("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new P("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new P("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new P("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:P.default,Router:new P("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new P("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new P("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new P("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new P("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new P("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new P("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new P("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new P("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new P("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new P("Ray1111111111111111111111111111111111111111")};import Ug from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as sy,TOKEN_2022_PROGRAM_ID as uy,TOKEN_PROGRAM_ID as cy}from"@solana/spl-token";import{PublicKey as my}from"@solana/web3.js";import py from"bn.js";import yy from"decimal.js";import{TOKEN_PROGRAM_ID as hm}from"@solana/spl-token";import{PublicKey as xm}from"@solana/web3.js";var bi=l([X("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Cf,TOKEN_2022_PROGRAM_ID as Rf,TOKEN_PROGRAM_ID as Lf}from"@solana/spl-token";import{Keypair as Mf,PublicKey as Ff,SystemProgram as Vf,TransactionInstruction as _f}from"@solana/web3.js";import Df from"bn.js";import D from"bn.js";var Fe=new D(1).shln(64);var gi=new D(1).shln(128),Ut=new D(1).shln(64).subn(1),Pi=new D(1).shln(128).subn(1);var ve=new D("4295048016"),Ve=new D("79226673521066979257578248091"),Ai=new D("59543866431248"),wi=new D("184467440737095516"),ki=new D("15793534762490258745");var Gt=60,Em=new D("18446743708227953217"),Ti=[{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 je=3,En=100;var Dn=10,Wn=100,gt=14;var H=new D(0),_e=new D(1),Dm=new D(-1);var Wm=new D("18446744073700000000");var hi=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)]),Ii=l([X("blockTimestamp"),Ne("tickCumulative"),m(e(),4)]),qn=l([N(8),re("initialized"),e("recentEpoch"),Z("observationIndex"),o("poolId"),m(Ii,En,"observations"),m(e(),4)]),Bi=l([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),se("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),m(c(),46)]),Si=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),L("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),L("growthGlobalX64")]),zt=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"),se("tickCurrent"),X(),L("feeGrowthGlobalX64A"),L("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),m(L(),4),c("status"),c("feeOn"),N(6),m(Si,je,"rewardInfos"),N(8*16,"tickArrayBitmap"),m(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Bi.replicate("dynamicFeeInfo"),m(e(),46)]),xi=l([L("growthInsideLastX64"),e("rewardAmountOwed")]),Ki=l([N(8),c("bump"),o("nftMint"),o("poolId"),se("tickLower"),se("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(xi,je,"rewardInfos"),e("recentEpoch"),m(e(),7)]),zm=l([N(8),c("bump"),o("poolId"),se("tickLower"),se("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(L(),je,"rewardGrowthInside"),e("recentEpoch"),m(e(),7)]),Ci=l([se("tick"),Cn("liquidityNet"),L("liquidityGross"),L("feeGrowthOutsideX64A"),L("feeGrowthOutsideX64B"),m(L(),je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),L("unfilledRatioX64"),m(X(),3)]),Un=l([N(8),o("poolId"),se("startTickIndex"),m(Ci,Gt,"ticks"),c("initializedTickCount"),e("recentEpoch"),m(c(),107)]),Ri=l([N(8),c("bump"),m(o(),Dn,"operationOwners"),m(o(),Wn,"whitelistMints")]),Li=l([N(8),o("poolId"),o("owner"),se("tick"),re("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),L("unfilledRatioX64"),m(e(),4)]),Gn=l([N(8),o("poolId"),N(8*8*gt,"positiveTickArrayBitmap"),N(8*8*gt,"negativeTickArrayBitmap")]),Xm=l([N(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),m(e(),8)]),Oi=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),Ym=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),m(e(),8)]),Ni=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),m(e(),8)]);import Hm from"bn.js";var sd=Buffer.from("amm_config","utf8"),Mi=Buffer.from("pool","utf8"),Fi=Buffer.from("pool_vault","utf8"),ud=Buffer.from("pool_reward_vault","utf8"),cd=Buffer.from("position","utf8"),ld=Buffer.from("tick_array","utf8"),md=Buffer.from("operation","utf8"),dd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),pd=Buffer.from("observation","utf8"),fd=Buffer.from("support_mint","utf8"),yd=Buffer.from("dynamic_fee_config","utf8");var bd=Buffer.from("locked_position","utf8");import{sha256 as Hi}from"js-sha256";import vi from"bn.js";import wd from"decimal.js";var Td=new vi(1).shln(256).subn(1);import Dd from"bn.js";import Cd from"bn.js";import Ld from"decimal.js";import zd from"bn.js";import Yd from"decimal.js";import{PublicKey as Np}from"@solana/web3.js";import Fp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Up}from"@solana/spl-token";import Yp from"decimal.js";import Tp from"bn.js";import cp from"bn.js";import nf from"bn.js";function $(i){let t=`global:${i}`;return Buffer.from(Hi.digest(t)).slice(0,8)}qn.span;var Qf=E("Raydium_Clmm"),Zf={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 jt}from"@solana/web3.js";var tr=l([c("instruction")]),nr=l([c("instruction")]),or=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")]),ir=l([e("state"),e("nonce"),o("lpVault"),o("rewardVault"),o(),o(),e(),e(),e("totalReward"),L("perShareReward"),e("lastSlot"),e("perSlotReward")]),rr=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()]),ar=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),L("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),o("lpMint"),o("lpVault"),m(or,5,"rewardInfos"),o("creator"),o(),m(e(),32,"padding")]),sr=new Proxy(ir,{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.ge