@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 85.9 kB
JavaScript
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 cs,blob as Vo,Blob as ls,cstr as ms,f32 as ds,f32be as ps,f64 as fs,f64be as ys,greedy as bs,Layout as _o,ns64 as gs,ns64be as Ps,nu64 as As,nu64be as ws,offset as Eo,s16 as ks,s16be as Ts,s24 as hs,s24be as Is,s32 as Do,s32be as Bs,s40 as Ss,s40be as xs,s48 as Ks,s48be as Cs,s8 as Rs,seq as Wo,struct as Ls,Structure as qo,u16 as Uo,u16be as Os,u24 as Ns,u24be as Ms,u32 as Go,u32be as Fs,u40 as vs,u40be as Vs,u48 as _s,u48be as Es,u8 as zo,UInt as Xo,union as Ds,Union as Ws,unionLayoutDiscriminator as qs,utf8 as Us}from"@solana/buffer-layout";var dt=_o,Bn=qo;var Vt=Xo;var Sn=zo,Q=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"),Q("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)]),eu=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 is,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 du,TOKEN_PROGRAM_ID as pu,getTransferFeeConfig as fu,unpackMint as yu}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 wC from"decimal.js";import si from"big.js";import Ou 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 Wu=_("Raydium_amount"),qu=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"),Hu=new X("SysvarC1ock11111111111111111111111111111111"),xe=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),pi=new X("Sysvar1nstructions1111111111111111111111111"),Un=Dn.programId,ju=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),$u=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ju=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ec=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),tc=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),nc=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),oc=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ic=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),rc=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ac=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),sc=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 Ac=new U(new fi(100));var Bc=_("Raydium_price");import{merge as TK}from"lodash";import Mc 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 ol=_("Raydium_Api");import{PublicKey as Lm,SystemProgram as Om}from"@solana/web3.js";import{AccountLayout as Vm,createAssociatedTokenAccountIdempotentInstruction as _m,TOKEN_PROGRAM_ID as Em,TOKEN_2022_PROGRAM_ID as Dm}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 Z={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(Z.SetComputeUnitPrice)),o.units&&(e.push(zn.setComputeUnitLimit({units:o.units})),n.push(Z.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(Z.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(J=>J.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,J=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),J({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,J(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 J of P){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(J,{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 J=0,G=[],oe=async()=>{if(!W[J])return;if(J<C){G.push({txId:"",status:"success",signedTx:W[J]}),x==null||x([...G]),J++,oe();return}let fe=await this.connection.sendTransaction(W[J],{skipPreflight:V});G.push({txId:fe,status:"sent",signedTx:W[J]}),x==null||x([...G]),J++;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 J=[];for(let G=0;G<W.length;G+=1){let oe=await this.connection.sendTransaction(W[G],{skipPreflight:V});J.push(oe)}return{txIds:J,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 um,SystemProgram as lm}from"@solana/web3.js";import pm from"bn.js";import{createCloseAccountInstruction as gm,createInitializeAccountInstruction as Pm,createTransferInstruction as Am,TOKEN_PROGRAM_ID as wm}from"@solana/spl-token";import{Keypair as Zl,PublicKey as Hl}from"@solana/web3.js";import Jl from"bn.js";import{TOKEN_PROGRAM_ID as nm}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 OP,SystemProgram as NP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as FP}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"),jm=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Si=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),to=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),no=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),$m=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),xi=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),oo=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ki=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ci=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),io=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Jm=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ri=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Bt=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ro=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ed=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Li=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Oi=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ni=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),td=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),nd=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),od=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),id=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),rd=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 zP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as cb,TOKEN_2022_PROGRAM_ID as lb,TOKEN_PROGRAM_ID as mb}from"@solana/spl-token";import{PublicKey as pb}from"@solana/web3.js";import yb from"bn.js";import gb from"decimal.js";import{TOKEN_PROGRAM_ID as Ad}from"@solana/spl-token";import{PublicKey as hd}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 Ly,TOKEN_2022_PROGRAM_ID as Oy,TOKEN_PROGRAM_ID as Ny}from"@solana/spl-token";import{Keypair as vy,PublicKey as Vy,SystemProgram as Ey,TransactionInstruction as Dy}from"@solana/web3.js";import qy 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,Fd=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),vd=new E(-1);var Vd=new E("18446744073700000000");var Wi=m([v(8),f("bump"),Q("index"),r("owner"),z("protocolFeeRate"),z("tradeFeeRate"),Q("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"),Q("observationIndex"),r("poolId"),A(qi,ao,"observations"),A(t(),4)]),Ui=m([Q("filterPeriod"),Q("decayPeriod"),Q("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"),Q("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)]),Wd=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")]),qd=m([v(8),Q("index"),Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),A(t(),8)]),Hi=m([v(8),r("wallet"),f("nonceIndex"),t("orderNonce"),A(t(),4)]),Ud=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 Xd from"bn.js";var op=Buffer.from("amm_config","utf8"),Ji=Buffer.from("pool","utf8"),er=Buffer.from("pool_vault","utf8"),ip=Buffer.from("pool_reward_vault","utf8"),rp=Buffer.from("position","utf8"),ap=Buffer.from("tick_array","utf8"),sp=Buffer.from("operation","utf8"),up=Buffer.from("pool_tick_array_bitmap_extension","utf8"),cp=Buffer.from("observation","utf8"),lp=Buffer.from("support_mint","utf8"),mp=Buffer.from("dynamic_fee_config","utf8"),dp=Buffer.from("permission","utf8");function xt(o){return Y([Buffer.from("metadata","utf8"),xe.toBuffer(),o.toBuffer()],xe)}var pp=Buffer.from("locked_position","utf8");import{sha256 as yr}from"js-sha256";import tr from"bn.js";import gp from"decimal.js";var Ap=new tr(1).shln(256).subn(1);import Vp from"bn.js";import Sp from"bn.js";import Kp from"decimal.js";import qp from"bn.js";import Gp from"decimal.js";import{PublicKey as Lf}from"@solana/web3.js";import Nf from"bn.js";import{TOKEN_2022_PROGRAM_ID as Wf,TOKEN_PROGRAM_ID as qf}from"@solana/spl-token";import Xf from"decimal.js";import wf from"bn.js";import sf from"bn.js";import oy from"bn.js";function $(o){let e=`global:${o}`;return Buffer.from(yr.digest(e)).slice(0,8)