UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 85.8 kB
var No=Object.defineProperty,Mo=Object.defineProperties;var Fo=Object.getOwnPropertyDescriptors;var mt=Object.getOwnPropertySymbols;var hn=Object.prototype.hasOwnProperty,In=Object.prototype.propertyIsEnumerable;var Tn=(o,e,n)=>e in o?No(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,M=(o,e)=>{for(var n in e||(e={}))hn.call(e,n)&&Tn(o,n,e[n]);if(mt)for(var n of mt(e))In.call(e,n)&&Tn(o,n,e[n]);return o},D=(o,e)=>Mo(o,Fo(e));var me=(o,e)=>{var n={};for(var i in o)hn.call(o,i)&&e.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&mt)for(var i of mt(o))e.indexOf(i)<0&&In.call(o,i)&&(n[i]=o[i]);return n};import{PublicKey as Yo}from"@solana/web3.js";import Cn,{isBN as Rn}from"bn.js";import{bits as vo,BitStructure as us,blob as Vo,Blob as cs,cstr as ls,f32 as ms,f32be as ds,f64 as ps,f64be as fs,greedy as ys,Layout as _o,ns64 as bs,ns64be as gs,nu64 as Ps,nu64be as As,offset as Eo,s16 as ws,s16be as ks,s24 as Ts,s24be as hs,s32 as Do,s32be as Is,s40 as Bs,s40be as Ss,s48 as xs,s48be as Ks,s8 as Cs,seq as Wo,struct as Rs,Structure as qo,u16 as Uo,u16be as Ls,u24 as Os,u24be as Ns,u32 as Go,u32be as Ms,u40 as Fs,u40be as vs,u48 as Vs,u48be as _s,u8 as zo,UInt as Xo,union as Es,Union as Ds,unionLayoutDiscriminator as Ws,utf8 as qs}from"@solana/buffer-layout";var dt=_o,Bn=qo;var Vt=Xo;var Sn=zo,H=Uo;var pt=Go;var ce=Do;var xn=Wo;var v=Vo;var _t=vo,Kn=Eo;var Ie=class extends dt{constructor(n,i,a){super(n,a);this.blob=v(n),this.signed=i}decode(n,i=0){let a=new Cn(this.blob.decode(n,i),10,"le");return this.signed?a.fromTwos(this.span*8).clone():a}encode(n,i,a=0){return typeof n=="number"&&(n=new Cn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,a)}},ft=class extends dt{constructor(n){super(8,n);this._lower=_t(pt(),!1),this._upper=_t(pt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let a=this._lower.decode(n,i),c=this._upper.decode(n,i+this._lower.span);return M(M({},a),c)}encode(n,i,a=0){return this._lower.encode(n,i,a)+this._upper.encode(n,i,a+this._lower.span)}};function f(o){return new Vt(1,o)}function z(o){return new Vt(4,o)}function t(o){return new Ie(8,!1,o)}function F(o){return new Ie(16,!1,o)}function Ln(o){return new Ie(1,!0,o)}function Le(o){return new Ie(8,!0,o)}function On(o){return new Ie(16,!0,o)}var Xe=class extends dt{constructor(n,i,a,c){super(n.span,c);this.layout=n,this.decoder=i,this.encoder=a}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,a){return this.layout.encode(this.encoder(n),i,a)}getSpan(n,i){return this.layout.getSpan(n,i)}};function r(o){return new Xe(v(32),e=>new Yo(e),e=>e.toBuffer(),o)}function ue(o){return new Xe(Sn(),Qo,Zo,o)}function Qo(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Zo(o){return o?1:0}function Nn(o,e){let n=pt("length"),i=m([n,A(o,Kn(n,-n.span),"values")]);return new Xe(i,({values:a})=>a,a=>({values:a}),e)}var Et=class extends Bn{decode(e,n){return super.decode(e,n)}};function m(o,e,n){return new Et(o,e,n)}function A(o,e,n){let i,a=typeof e=="number"?e:Rn(e)?e.toNumber():new Proxy(e,{get(c,l){if(!i){let d=Reflect.get(c,"count");i=Rn(d)?d.toNumber():d,Reflect.set(c,"count",i)}return Reflect.get(c,l)},set(c,l,d){return l==="count"&&(i=d),Reflect.set(c,l,d)}});return xn(o,a,n)}var Ho=m([v(8),f("bump"),ue("disableCreatePool"),H("index"),t("tradeFeeRate"),t("protocolFeeRate"),t("fundFeeRate"),t("createPoolFee"),r("protocolOwner"),r("fundOwner"),t("creatorFeeRate"),A(t(),15)]),Mn=m([v(8),r("configId"),r("poolCreator"),r("vaultA"),r("vaultB"),r("mintLp"),r("mintA"),r("mintB"),r("mintProgramA"),r("mintProgramB"),r("observationId"),f("bump"),f("status"),f("lpDecimals"),f("mintDecimalA"),f("mintDecimalB"),t("lpAmount"),t("protocolFeesMintA"),t("protocolFeesMintB"),t("fundFeesMintA"),t("fundFeesMintB"),t("openTime"),t("epoch"),f("feeOn"),ue("enableCreatorFee"),A(f(),6),t("creatorFeesMintA"),t("creatorFeesMintB"),A(t(),28)]),Js=m([v(8),r("configId"),A(t(),30)]);var Fn=(i=>(i[i.BothToken=0]="BothToken",i[i.OnlyTokenA=1]="OnlyTokenA",i[i.OnlyTokenB=2]="OnlyTokenB",i))(Fn||{});import{PublicKey as ct,TransactionInstruction as Ae,Keypair as os,SystemProgram as An}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as vt,TOKEN_2022_PROGRAM_ID as wn,TOKEN_PROGRAM_ID as Pe}from"@solana/spl-token";import{PublicKey as Jo}from"@solana/web3.js";import{get as vn,set as jo}from"lodash";var Dt=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let n=e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},Vn={},$o={};function _(o){let e=vn(Vn,o);if(!e){let n=vn($o,o);e=new Dt({name:o,logLevel:n}),jo(Vn,o,e)}return e}import{MINT_SIZE as mu,TOKEN_PROGRAM_ID as du,getTransferFeeConfig as pu,unpackMint as fu}from"@solana/spl-token";var Wt=_("Raydium_accountInfo_util");async function be(o,e,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:c=100}=M({batchRequest:!1},n),l=qt(e,c),d=new Array(l.length).fill([]);if(i){let b=l.map(k=>{let T=o._buildArgs([k.map(w=>w.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:T}}),y=qt(b,10);d=(await(await Promise.all(y.map(async k=>await o._rpcBatchRequest(k)))).flat()).map(k=>(k.error&&Wt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${k.error.message}`),k.result.value.map(T=>{if(T){let{data:w,executable:S,lamports:P,owner:g,rentEpoch:h}=T;return w.length!==2&&w[1]!=="base64"&&Wt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:S,lamports:P,owner:new Jo(g),rentEpoch:h}}return null})))}else try{d=await Promise.all(l.map(b=>o.getMultipleAccountsInfo(b,a)))}catch(b){b instanceof Error&&Wt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.message}`)}return d.flat()}import Te from"bn.js";import gC from"decimal.js";import si from"big.js";import Lu from"bn.js";import ei from"toformat";var ti=ei,Qe=ti;import bt from"big.js";import oi from"bn.js";import ii from"decimal.js-light";import Ze from"bn.js";var _n=9007199254740991;function ie(o){let e=_("Raydium_parseBigNumberish");if(o instanceof Ze)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ze(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=_n||o<=-_n)&&e.logWithError(`BigNumberish number overflow: ${o}`),new Ze(String(o))):typeof o=="bigint"?new Ze(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new Ze(0))}var yt=_("module/fraction"),Ut=Qe(bt),He=Qe(ii),ri={[0]:He.ROUND_DOWN,[1]:He.ROUND_HALF_UP,[2]:He.ROUND_UP},ai={[0]:bt.roundDown,[1]:bt.roundHalfUp,[2]:bt.roundUp},U=class{constructor(e,n=new oi(1)){this.numerator=ie(e),this.denominator=ie(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(e){let n=e instanceof U?e:new U(ie(e));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof U?e:new U(ie(e));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof U?e:new U(ie(e));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof U?e:new U(ie(e));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},i=1){Number.isInteger(e)||yt.logWithError(`${e} is not an integer.`),e<=0&&yt.logWithError(`${e} is not positive.`),He.set({precision:e+1,rounding:ri[i]});let a=new He(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return a.toFormat(a.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},i=1){return Number.isInteger(e)||yt.logWithError(`${e} is not an integer.`),e<0&&yt.logWithError(`${e} is negative.`),Ut.DP=e,Ut.RM=ai[i]||1,new Ut(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Du=_("Raydium_amount"),Wu=Qe(si);import{PublicKey as ci}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as En}from"@solana/spl-token";var gt={chainId:101,address:ci.default.toBase58(),programId:En.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},de={chainId:101,address:"So11111111111111111111111111111111111111112",programId:En.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 Gt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as Dn,SYSVAR_RENT_PUBKEY as li}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as mi}from"@solana/spl-token";function Oe({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var di=[Oe({pubkey:mi,isWritable:!1}),Oe({pubkey:Dn.programId,isWritable:!1}),Oe({pubkey:li,isWritable:!1})];function Wn({publicKey:o,transformSol:e}){let n=qn(o.toString());if(n instanceof X)return e&&n.equals(Be)?ge:n;if(e&&n.toString()===Be.toBase58())return ge;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function qn(o){try{return new X(o)}catch{return o}}var je=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Se=new X("SysvarRent111111111111111111111111111111111"),Zu=new X("SysvarC1ock11111111111111111111111111111111"),xe=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),pi=new X("Sysvar1nstructions1111111111111111111111111"),Un=Dn.programId,Hu=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ju=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),$u=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ju=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ec=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),tc=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),nc=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),oc=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ic=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),rc=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ac=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new X("So11111111111111111111111111111111111111112"),Be=X.default;var zt=class{constructor({mint:e,decimals:n,symbol:i,name:a,skipMint:c=!1,isToken2022:l=!1}){if(e===Be.toBase58()||e instanceof Gt&&Be.equals(e)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new Gt(de.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||e.toString().substring(0,6),this.name=a||e.toString().substring(0,6),this.mint=c?Gt.default:Wn({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ee=zt;ee.WSOL=new zt(D(M({},de),{mint:de.address}));var Xt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=i}equals(e){return this===e}},Pt=Xt;Pt.SOL=new Xt(gt);import fi from"bn.js";var Pc=new U(new fi(100));var Ic=_("Raydium_price");import{merge as AK}from"lodash";import Nc from"axios";var Gn={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"},yi=D(M({},Gn),{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 nl=_("Raydium_Api");import{PublicKey as Rm,SystemProgram as Lm}from"@solana/web3.js";import{AccountLayout as vm,createAssociatedTokenAccountIdempotentInstruction as Vm,TOKEN_PROGRAM_ID as _m,TOKEN_2022_PROGRAM_ID as Em}from"@solana/spl-token";import{PublicKey as Ve,sendAndConfirmTransaction as $t,SystemProgram as ki,Transaction as et,TransactionMessage as tt,VersionedTransaction as nt}from"@solana/web3.js";import Ti from"axios";import{PublicKey as Yt,AddressLookupTableAccount as Fe}from"@solana/web3.js";async function Qt({connection:o,address:e,cluster:n="mainnet"}){let i=await be(o,[...new Set(e.map(c=>c.toString()))].map(c=>new Yt(c))),a={};for(let c=0;c<e.length;c++){let l=i[c],d=e[c];if(!l)continue;let b=new Fe({key:d,state:Fe.deserialize(l.data)});a[d.toString()]=b,n==="devnet"?Me[d.toString()]=b:Ne[d.toString()]=b}return a}var Ne={},Zt=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ne[e])return Ne;let n=new Yt(e),i=await o.getAccountInfo(n);return i&&(Ne[e]=new Fe({key:n,state:Fe.deserialize(i.data)})),Ne},Me={},Ht=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Me[e])return Me;let n=new Yt(e),i=await o.getAccountInfo(n);return i&&(Me[e]=new Fe({key:n,state:Fe.deserialize(i.data)})),Me};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 zn,Keypair as Yn,PublicKey as bi,Transaction as Qn,TransactionMessage as gi,VersionedTransaction as Zn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Pi}from"@solana/spl-token";var Xn=_("Raydium_txUtil"),Hn=1644;function At(o){let e=[],n=[];return o.microLamports&&(e.push(zn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Q.SetComputeUnitPrice)),o.units&&(e.push(zn.setComputeUnitLimit({units:o.units})),n.push(Q.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function ve(o,e){var i,a;let n=e!=null?e:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:a.blockhash}async function wt(o,e){return o.getSignatureStatuses([e]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(e,c=>{if(clearTimeout(a),!c.err){n("");return}i(Object.assign(c.err,{txId:e}))},"confirmed")})}function jt(o,e){o.length<1&&Xn.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&Xn.logWithError(`no signers provided:, ${e.toString()}`);let n=new Qn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Hn}catch{return!1}}function Y(o,e){let[n,i]=bi.findProgramAddressSync(o,e);return{publicKey:n,nonce:i}}function $e({instructions:o,payer:e,signers:n}){return jt(o,[e,...n])}function Je({instructions:o,payer:e,lookupTableAddressAccount:n,recentBlockhash:i=Yn.generate().publicKey.toString()}){let c=new gi({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Zn(c).serialize()).toString("base64").length<Hn}catch{return!1}}var Ai=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),wi=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Zn&&(e=Ai(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ke(o){let e=[];return o.forEach(n=>{n instanceof Qn&&(n.recentBlockhash||(n.recentBlockhash=Pi.toBase58()),n.feePayer||(n.feePayer=Yn.generate().publicKey)),e.push(wi(n))}),console.log("simulate tx string:",e),e}var kt=2e3,Tt=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var i;let e=(await Ti.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=e==null?void 0:e[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:n,instructionTypes:i}=At(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push(ki.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new Ve(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(Q.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:n}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:e=[],endInstructions:n=[],signers:i=[],instructionTypes:a=[],endInstructionTypes:c=[],lookupTableAddress:l=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...l.filter(d=>d!==Ve.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:i}){return e===0?await this.buildV0(D(M({},n||{}),{lookupTableAddress:i})):this.build(n)}build(e){var i;let n=new et;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async a=>{var p;let{recentBlockHash:c,skipPreflight:l=!0,sendAndConfirm:d,notSendToRpc:b}=a||{},y=c!=null?c:await ve(this.connection,this.blockhashCommitment);if(n.recentBlockhash=y,this.signers.length&&n.sign(...this.signers),Ke([n]),(p=this.owner)!=null&&p.isKeyPair)return{txId:d?await $t(this.connection,n,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:l}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:l}),signedTx:n};if(this.signAllTransactions){let k=await this.signAllTransactions([n]);if(this.signers.length)for(let T of k)try{T.sign(...this.signers)}catch{}return{txId:b?"":await this.connection.sendRawTransaction(k[0].serialize(),{skipPreflight:l}),signedTx:k[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var y;let{extraPreBuildData:n=[],extInfo:i}=e,{transaction:a}=this.build(i),c=n.filter(p=>p.transaction.instructions.length>0),l=[a,...c.map(p=>p.transaction)],d=[this.signers,...c.map(p=>p.signers)],b=[...this.instructionTypes,...c.map(p=>p.instructionTypes).flat()];return(y=this.owner)!=null&&y.signer&&d.forEach(p=>{p.some(k=>k.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:l,signers:d,instructionTypes:b,execute:async p=>{var h;let{sequentially:k,onTxUpdate:T,skipTxCount:w=0,recentBlockHash:S,skipPreflight:P=!0}=p||{},g=S!=null?S:await ve(this.connection,this.blockhashCommitment);if((h=this.owner)!=null&&h.isKeyPair){if(k){let B=[],O=0;for(let N of l){if(++O,O<=w)continue;let I=await $t(this.connection,N,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});B.push(I)}return{txIds:B,signedTxs:l}}return{txIds:await await Promise.all(l.map(async B=>(B.recentBlockhash=g,await this.connection.sendRawTransaction(B.serialize(),{skipPreflight:P})))),signedTxs:l}}if(this.signAllTransactions){let B=l.map((N,I)=>(N.recentBlockhash=g,d[I].length&&N.sign(...d[I]),N));Ke(B);let O=await this.signAllTransactions(B);if(k){let N=0,I=[],K=async()=>{if(!O[N])return;let x=await this.connection.sendRawTransaction(O[N].serialize(),{skipPreflight:P});I.push({txId:x,status:"sent",signedTx:O[N]}),T==null||T([...I]),N++;let C=!1,L=null,V=null,ne=q=>{L!==null&&clearInterval(L),V!==null&&this.connection.removeSignatureListener(V);let W=I.findIndex($=>$.txId===x);if(W>-1){if(I[W].status==="error"||I[W].status==="success")return;I[W].status=q.err?"error":"success"}T==null||T([...I]),q.err||K()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(C){clearInterval(L);return}try{let W=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(C=!0,clearInterval(L),ne({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",x))}catch(W){C=!0,clearInterval(L),console.error("getTransaction timeout:",W,x)}},kt)),V=this.connection.onSignature(x,q=>{if(C){this.connection.removeSignatureListener(V);return}C=!0,ne(q)},"confirmed"),this.connection.getSignatureStatus(x)};return await K(),{txIds:I.map(x=>x.txId),signedTxs:O}}else{let N=[];for(let I=0;I<O.length;I+=1){let K=await this.connection.sendRawTransaction(O[I].serialize(),{skipPreflight:P});N.push(K)}return{txIds:N,signedTxs:O}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var P;let S=e||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:c}=S,l=me(S,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),d=M(M({},this.cluster==="devnet"?await Ht(this.connection):await Zt(this.connection)),n),b=Array.from(new Set([...i,...this.lookupTableAddress])),y=[];for(let g of b)d[g]===void 0&&y.push(new Ve(g));let p=await Qt({connection:this.connection,address:y});for(let[g,h]of Object.entries(p))d[g]=h;let k=a?Ve.default.toBase58():c!=null?c:await ve(this.connection,this.blockhashCommitment),T=new tt({payerKey:this.feePayer,recentBlockhash:k,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(d));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(g=>g.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let w=new nt(T);return w.sign(this.signers),{builder:this,transaction:w,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async g=>{var N;let{skipPreflight:h=!0,sendAndConfirm:B,notSendToRpc:O}=g||{};if(Ke([w]),(N=this.owner)!=null&&N.isKeyPair){let I=await this.connection.sendTransaction(w,{skipPreflight:h});return B&&await wt(this.connection,I),{txId:I,signedTx:w}}if(this.signAllTransactions){let I=await this.signAllTransactions([w]);if(this.signers.length)for(let K of I)try{K.sign(this.signers)}catch{}return{txId:O?"":await this.connection.sendTransaction(I[0],{skipPreflight:h}),signedTx:I[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:l||{}}}async buildV0MultiTx(e){var y;let{extraPreBuildData:n=[],buildProps:i}=e,{transaction:a}=await this.buildV0(i),c=n.filter(p=>p.builder.instructions.length>0),l=[a,...c.map(p=>p.transaction)],d=[this.signers,...c.map(p=>p.signers)],b=[...this.instructionTypes,...c.map(p=>p.instructionTypes).flat()];return(y=this.owner)!=null&&y.signer&&d.forEach(p=>{p.some(k=>k.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),l.forEach(async(p,k)=>{p.sign(d[k])}),{builder:this,transactions:l,signers:d,instructionTypes:b,buildProps:i,execute:async p=>{var P;let{sequentially:k,onTxUpdate:T,recentBlockHash:w,skipPreflight:S=!0}=p||{};if(w&&l.forEach(g=>g.message.recentBlockhash=w),Ke(l),(P=this.owner)!=null&&P.isKeyPair){if(k){let g=[];for(let h of l){let B=await this.connection.sendTransaction(h,{skipPreflight:S});await wt(this.connection,B),g.push(B)}return{txIds:g,signedTxs:l}}return{txIds:await Promise.all(l.map(async g=>await this.connection.sendTransaction(g,{skipPreflight:S}))),signedTxs:l}}if(this.signAllTransactions){let g=await this.signAllTransactions(l);if(k){let h=0,B=[],O=async()=>{if(!g[h])return;let N=await this.connection.sendTransaction(g[h],{skipPreflight:S});B.push({txId:N,status:"sent",signedTx:g[h]}),T==null||T([...B]),h++;let I=!1,K=null,x=null,C=L=>{K!==null&&clearInterval(K),x!==null&&this.connection.removeSignatureListener(x);let V=B.findIndex(ne=>ne.txId===N);if(V>-1){if(B[V].status==="error"||B[V].status==="success")return;B[V].status=L.err?"error":"success"}T==null||T([...B]),L.err||O()};this.loopMultiTxStatus&&(K=setInterval(async()=>{var L;if(I){clearInterval(K);return}try{let V=await this.connection.getTransaction(N,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(I=!0,clearInterval(K),C({err:((L=V.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",N))}catch(V){I=!0,clearInterval(K),console.error("getTransaction timeout:",V,N)}},kt)),x=this.connection.onSignature(N,L=>{if(I){this.connection.removeSignatureListener(x);return}I=!0,C(L)},"confirmed"),this.connection.getSignatureStatus(N)};return O(),{txIds:[],signedTxs:g}}else{let h=[];for(let B=0;B<g.length;B+=1){let O=await this.connection.sendTransaction(g[B],{skipPreflight:S});h.push(O)}return{txIds:h,signedTxs:g}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var T;let k=e||{},{splitIns:n=[],computeBudgetConfig:i}=k,a=me(k,["splitIns","computeBudgetConfig"]),c=i?At(i):{instructions:[],instructionTypes:[]},l=this.signers.reduce((w,S)=>D(M({},w),{[S.publicKey.toBase58()]:S}),{}),d=[],b=[],y=[],p=0;if(this.allInstructions.forEach(w=>{let S=[...y,w],P=i?[...c.instructions,...S]:S,h=[...new Set(S.map(B=>B.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(B=>new Ve(B));if(w!==n[p]&&y.length<12&&($e({instructions:P,payer:this.feePayer,signers:h})||$e({instructions:S,payer:this.feePayer,signers:h})))y.push(w);else{if(y.length===0)throw Error("item ins too big");p+=w===n[p]?1:0,$e({instructions:i?[...c.instructions,...y]:[...y],payer:this.feePayer,signers:h})?d.push(new et().add(...c.instructions,...y)):d.push(new et().add(...y)),b.push(Array.from(new Set(y.map(B=>B.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat())).map(B=>l[B]).filter(B=>B!==void 0)),y=[w]}}),y.length>0){let S=[...new Set(y.map(P=>P.keys.filter(g=>g.isSigner).map(g=>g.pubkey.toString())).flat()).values()].map(P=>l[P]).filter(P=>P!==void 0);$e({instructions:i?[...c.instructions,...y]:[...y],payer:this.feePayer,signers:S.map(P=>P.publicKey)})?d.push(new et().add(...c.instructions,...y)):d.push(new et().add(...y)),b.push(S)}return d.forEach(w=>w.feePayer=this.feePayer),(T=this.owner)!=null&&T.signer&&b.forEach(w=>{w.some(S=>S.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:d,signers:b,instructionTypes:this.instructionTypes,execute:async w=>{var N;let{sequentially:S,onTxUpdate:P,skipTxCount:g=0,recentBlockHash:h,skipPreflight:B=!0}=w||{},O=h!=null?h:await ve(this.connection,this.blockhashCommitment);if(d.forEach(async(I,K)=>{I.recentBlockhash=O,b[K].length&&I.sign(...b[K])}),Ke(d),(N=this.owner)!=null&&N.isKeyPair){if(S){let I=0,K=[];for(let x of d){if(++I,I<=g){K.push("tx skipped");continue}let C=await $t(this.connection,x,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:B});K.push(C)}return{txIds:K,signedTxs:d}}return{txIds:await Promise.all(d.map(async I=>await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:B}))),signedTxs:d}}if(this.signAllTransactions){let I=await this.signAllTransactions(d.slice(g,d.length)),K=[...d.slice(0,g),...I];if(S){let x=0,C=[],L=async()=>{if(!K[x])return;x<g&&(C.push({txId:"",status:"success",signedTx:K[x]}),P==null||P([...C]),x++,L());let V=await this.connection.sendRawTransaction(K[x].serialize(),{skipPreflight:B});C.push({txId:V,status:"sent",signedTx:K[x]}),P==null||P([...C]),x++;let ne=!1,q=null,W=null,$=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let oe=C.findIndex(fe=>fe.txId===V);if(oe>-1){if(C[oe].status==="error"||C[oe].status==="success")return;C[oe].status=G.err?"error":"success"}P==null||P([...C]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ne){clearInterval(q);return}try{let oe=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});oe&&(ne=!0,clearInterval(q),$({err:((G=oe.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(oe){ne=!0,clearInterval(q),console.error("getTransaction timeout:",oe,V)}},kt)),W=this.connection.onSignature(V,G=>{if(ne){this.connection.removeSignatureListener(W);return}ne=!0,$(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await L(),{txIds:C.map(V=>V.txId),signedTxs:K}}else{let x=[];for(let C=0;C<K.length;C+=1){let L=await this.connection.sendRawTransaction(K[C].serialize(),{skipPreflight:B});x.push(L)}return{txIds:x,signedTxs:K}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(e){var N;let O=e||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:c=[],insCountLimit:l=12}=O,d=me(O,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=M(M({},this.cluster==="devnet"?await Ht(this.connection):await Zt(this.connection)),a),y=Array.from(new Set([...this.lookupTableAddress,...c])),p=[];for(let I of y)b[I]===void 0&&p.push(new Ve(I));let k=await Qt({connection:this.connection,address:p});for(let[I,K]of Object.entries(k))b[I]=K;let T=n?At(n):{instructions:[],instructionTypes:[]},w=await ve(this.connection,this.blockhashCommitment),S=this.signers.reduce((I,K)=>D(M({},I),{[K.publicKey.toBase58()]:K}),{}),P=[],g=[],h=[],B=0;if(this.allInstructions.forEach(I=>{let K=[...h,I],x=n?[...T.instructions,...K]:K;if(I!==i[B]&&h.length<l&&(Je({instructions:x,payer:this.feePayer,lookupTableAddressAccount:b})||Je({instructions:K,payer:this.feePayer,lookupTableAddressAccount:b})))h.push(I);else{if(h.length===0)throw Error("item ins too big");B+=I===i[B]?1:0;let C={};for(let L of[...new Set(y)])b[L]!==void 0&&(C[L]=b[L]);if(n&&Je({instructions:[...T.instructions,...h],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:w})){let L=new tt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...T.instructions,...h]}).compileToV0Message(Object.values(b));P.push(new nt(L))}else{let L=new tt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...h]}).compileToV0Message(Object.values(b));P.push(new nt(L))}g.push(Array.from(new Set(h.map(L=>L.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(L=>S[L]).filter(L=>L!==void 0)),h=[I]}}),h.length>0){let K=[...new Set(h.map(x=>x.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(x=>S[x]).filter(x=>x!==void 0);if(n&&Je({instructions:[...T.instructions,...h],payer:this.feePayer,lookupTableAddressAccount:b,recentBlockhash:w})){let x=new tt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...T.instructions,...h]}).compileToV0Message(Object.values(b));P.push(new nt(x))}else{let x=new tt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...h]}).compileToV0Message(Object.values(b));P.push(new nt(x))}g.push(K)}return(N=this.owner)!=null&&N.signer&&g.forEach(I=>{I.some(K=>K.publicKey.equals(this.owner.publicKey))||I.push(this.owner.signer)}),P.forEach((I,K)=>{I.sign(g[K])}),{builder:this,transactions:P,buildProps:e,signers:g,instructionTypes:this.instructionTypes,execute:async I=>{var ne;let{sequentially:K,onTxUpdate:x,skipTxCount:C=0,recentBlockHash:L,skipPreflight:V=!0}=I||{};if(P.map(async(q,W)=>{g[W].length&&q.sign(g[W]),L&&(q.message.recentBlockhash=L)}),Ke(P),(ne=this.owner)!=null&&ne.isKeyPair){if(K){let q=0,W=[];for(let $ of P){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:V});await wt(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:V}))),signedTxs:P}}if(this.signAllTransactions){let q=await this.signAllTransactions(P.slice(C,P.length)),W=[...P.slice(0,C),...q];if(K){let $=0,G=[],oe=async()=>{if(!W[$])return;if($<C){G.push({txId:"",status:"success",signedTx:W[$]}),x==null||x([...G]),$++,oe();return}let fe=await this.connection.sendTransaction(W[$],{skipPreflight:V});G.push({txId:fe,status:"sent",signedTx:W[$]}),x==null||x([...G]),$++;let ze=!1,Re=null,lt=null,kn=he=>{Re!==null&&clearInterval(Re),lt!==null&&this.connection.removeSignatureListener(lt);let ye=G.findIndex(Oo=>Oo.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=he.err?"error":"success"}x==null||x([...G]),he.err||oe()};this.loopMultiTxStatus&&(Re=setInterval(async()=>{var he;if(ze){clearInterval(Re);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(ze=!0,clearInterval(Re),kn({err:((he=ye.meta)==null?void 0:he.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){ze=!0,clearInterval(Re),console.error("getTransaction timeout:",ye,fe)}},kt)),lt=this.connection.onSignature(fe,he=>{if(ze){this.connection.removeSignatureListener(lt);return}ze=!0,kn(he)},"confirmed"),this.connection.getSignatureStatus(fe)};return oe(),{txIds:[],signedTxs:W}}else{let $=[];for(let G=0;G<W.length;G+=1){let oe=await this.connection.sendTransaction(W[G],{skipPreflight:V});$.push(oe)}return{txIds:$,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}};var Jt=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),re=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=_(n)}createTxBuilder(e){return this.scope.checkOwner(),new Tt({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(Jt(e))}logInfo(...e){this.logger.info(Jt(e))}logAndCreateError(...e){let n=Jt(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as sm,SystemProgram as cm}from"@solana/web3.js";import dm from"bn.js";import{createCloseAccountInstruction as bm,createInitializeAccountInstruction as gm,createTransferInstruction as Pm,TOKEN_PROGRAM_ID as Am}from"@solana/spl-token";import{Keypair as Ql,PublicKey as Zl}from"@solana/web3.js";import $l from"bn.js";import{TOKEN_PROGRAM_ID as tm}from"@solana/spl-token";var ht=m([r("mint"),r("owner"),t("amount"),z("delegateOption"),r("delegate"),f("state"),z("isNativeOption"),t("isNative"),t("delegatedAmount"),z("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as KP,SystemProgram as CP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as LP}from"@solana/spl-token";import{PublicKey as Ii}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Bi}from"@solana/spl-token";function ae(o,e,n){return Y([o.toBuffer(),(n!=null?n:Bi).toBuffer(),e.toBuffer()],new Ii("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as R}from"@solana/web3.js";var $n=new R("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Jn=new R("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),eo=new R("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),en=new R("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Hm=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Si=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),to=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),no=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),jm=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),xi=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),oo=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ki=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ci=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),io=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),$m=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ri=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Bt=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ro=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Jm=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Li=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Oi=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ni=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),ed=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),td=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),nd=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),od=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),id=new R("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ke={OPEN_BOOK_PROGRAM:new R("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new R("Ray1111111111111111111111111111111111111111"),AMM_V4:new R("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new R("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new R("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new R("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new R("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new R("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new R("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new R("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:R.default,Router:new R("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new R("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new R("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new R("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new R("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new R("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new R("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new R("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new R("Ray1111111111111111111111111111111111111111")};import WP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as rb,TOKEN_2022_PROGRAM_ID as ab,TOKEN_PROGRAM_ID as sb}from"@solana/spl-token";import{PublicKey as cb}from"@solana/web3.js";import mb from"bn.js";import pb from"decimal.js";import{TOKEN_PROGRAM_ID as Pd}from"@solana/spl-token";import{PublicKey as Td}from"@solana/web3.js";var Mi=m([z("mintAuthorityOption"),r("mintAuthority"),t("supply"),f("decimals"),f("isInitialized"),z("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as xy,TOKEN_2022_PROGRAM_ID as Ky,TOKEN_PROGRAM_ID as Cy}from"@solana/spl-token";import{Keypair as Oy,PublicKey as Ny,SystemProgram as Fy,TransactionInstruction as vy}from"@solana/web3.js";import _y from"bn.js";import E from"bn.js";var Ee=new E(1).shln(64);var Fi=new E(1).shln(128),tn=new E(1).shln(64).subn(1),vi=new E(1).shln(128).subn(1);var De=new E("4295048016"),We=new E("79226673521066979257578248091"),Vi=new E("59543866431248"),_i=new E("184467440737095516"),Ei=new E("15793534762490258745");var nn=60,Md=new E("18446743708227953217"),Di=[{bit:0,factor:new E("fffcb933bd6fb800",16)},{bit:1,factor:new E("fff97272373d4000",16)},{bit:2,factor:new E("fff2e50f5f657000",16)},{bit:3,factor:new E("ffe5caca7e10f000",16)},{bit:4,factor:new E("ffcb9843d60f7000",16)},{bit:5,factor:new E("ff973b41fa98e800",16)},{bit:6,factor:new E("ff2ea16466c9b000",16)},{bit:7,factor:new E("fe5dee046a9a3800",16)},{bit:8,factor:new E("fcbe86c7900bb000",16)},{bit:9,factor:new E("f987a7253ac65800",16)},{bit:10,factor:new E("f3392b0822bb6000",16)},{bit:11,factor:new E("e7159475a2caf000",16)},{bit:12,factor:new E("d097f3bdfd2f2000",16)},{bit:13,factor:new E("a9f746462d9f8000",16)},{bit:14,factor:new E("70d869a156f31c00",16)},{bit:15,factor:new E("31be135f97ed3200",16)},{bit:16,factor:new E("9aa508b5b85a500",16)},{bit:17,factor:new E("5d6af8dedc582c",16)},{bit:18,factor:new E("2216e584f5fa",16)}];var ot=3,ao=100;var so=10,uo=100,St=14;var j=new E(0),qe=new E(1),Fd=new E(-1);var vd=new E("18446744073700000000");var Wi=m([v(8),f("bump"),H("index"),r("owner"),z("protocolFeeRate"),z("tradeFeeRate"),H("tickSpacing"),z("fundFeeRate"),A(z(),1),r("fundOwner"),A(t(),3)]),qi=m([z("blockTimestamp"),Le("tickCumulative"),A(t(),4)]),co=m([v(8),ue("initialized"),t("recentEpoch"),H("observationIndex"),r("poolId"),A(qi,ao,"observations"),A(t(),4)]),Ui=m([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),t("lastUpdateTimestamp"),A(f(),46)]),Gi=m([f("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),F("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),r("mint"),r("vault"),r("creator"),F("growthGlobalX64")]),on=m([v(8),f("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),f("mintDecimalsA"),f("mintDecimalsB"),H("tickSpacing"),F("liquidity"),F("sqrtPriceX64"),ce("tickCurrent"),z(),F("feeGrowthGlobalX64A"),F("feeGrowthGlobalX64B"),t("protocolFeesTokenA"),t("protocolFeesTokenB"),A(F(),4),f("status"),f("feeOn"),v(6),A(Gi,ot,"rewardInfos"),v(8*16,"tickArrayBitmap"),A(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),Ui.replicate("dynamicFeeInfo"),A(t(),46)]),zi=m([F("growthInsideLastX64"),t("rewardAmountOwed")]),Xi=m([v(8),f("bump"),r("nftMint"),r("poolId"),ce("tickLower"),ce("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),A(zi,ot,"rewardInfos"),t("recentEpoch"),A(t(),7)]),Dd=m([v(8),f("bump"),r("poolId"),ce("tickLower"),ce("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),A(F(),ot,"rewardGrowthInside"),t("recentEpoch"),A(t(),7)]),Yi=m([ce("tick"),On("liquidityNet"),F("liquidityGross"),F("feeGrowthOutsideX64A"),F("feeGrowthOutsideX64B"),A(F(),ot,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),F("unfilledRatioX64"),A(z(),3)]),lo=m([v(8),r("poolId"),ce("startTickIndex"),A(Yi,nn,"ticks"),f("initializedTickCount"),t("recentEpoch"),A(f(),107)]),Qi=m([v(8),f("bump"),A(r(),so,"operationOwners"),A(r(),uo,"whitelistMints")]),Zi=m([v(8),r("poolId"),r("owner"),ce("tick"),ue("zeroForOne"),t("orderPhase"),t("totalAmount"),t("filledAmount"),t("settleBase"),t("settleOutput"),t("openTime"),F("unfilledRatioX64"),A(t(),4)]),mo=m([v(8),r("poolId"),v(8*8*St,"positiveTickArrayBitmap"),v(8*8*St,"negativeTickArrayBitmap")]),Wd=m([v(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),A(t(),8)]),Hi=m([v(8),r("wallet"),f("nonceIndex"),t("orderNonce"),A(t(),4)]),qd=m([t(),f("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),A(t(),8)]),ji=m([v(8),f("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),t("recentEpoch"),A(t(),8)]);import zd from"bn.js";var np=Buffer.from("amm_config","utf8"),$i=Buffer.from("pool","utf8"),Ji=Buffer.from("pool_vault","utf8"),op=Buffer.from("pool_reward_vault","utf8"),ip=Buffer.from("position","utf8"),rp=Buffer.from("tick_array","utf8"),ap=Buffer.from("operation","utf8"),sp=Buffer.from("pool_tick_array_bitmap_extension","utf8"),up=Buffer.from("observation","utf8"),cp=Buffer.from("support_mint","utf8"),lp=Buffer.from("dynamic_fee_config","utf8");function xt(o){return Y([Buffer.from("metadata","utf8"),xe.toBuffer(),o.toBuffer()],xe)}var mp=Buffer.from("locked_position","utf8");import{sha256 as fr}from"js-sha256";import er from"bn.js";import yp from"decimal.js";var gp=new er(1).shln(256).subn(1);import Fp from"bn.js";import Ip from"bn.js";import Sp from"decimal.js";import Dp from"bn.js";import qp from"decimal.js";import{PublicKey as Cf}from"@solana/web3.js";import Lf from"bn.js";import{TOKEN_2022_PROGRAM_ID as Ef,TOKEN_PROGRAM_ID as Df}from"@solana/spl-token";import Gf from"decimal.js";import Pf from"bn.js";import rf from"bn.js";import ty from"bn.js";function J(o){let e=`global:${o}`;return Buffer.from(fr.digest(e)).slice(0,8)}co.span;var Xy=_("Raydium_Clmm"),Yy