@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 86.6 kB
JavaScript
var Fo=Object.defineProperty,vo=Object.defineProperties;var Vo=Object.getOwnPropertyDescriptors;var dt=Object.getOwnPropertySymbols;var Bn=Object.prototype.hasOwnProperty,Sn=Object.prototype.propertyIsEnumerable;var In=(o,e,n)=>e in o?Fo(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,M=(o,e)=>{for(var n in e||(e={}))Bn.call(e,n)&&In(o,n,e[n]);if(dt)for(var n of dt(e))Sn.call(e,n)&&In(o,n,e[n]);return o},_=(o,e)=>vo(o,Vo(e));var me=(o,e)=>{var n={};for(var i in o)Bn.call(o,i)&&e.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&dt)for(var i of dt(o))e.indexOf(i)<0&&Sn.call(o,i)&&(n[i]=o[i]);return n};import{PublicKey as Ho}from"@solana/web3.js";import On,{isBN as Nn}from"bn.js";import{bits as _o,BitStructure as As,blob as Eo,Blob as ws,cstr as ks,f32 as Ts,f32be as hs,f64 as Is,f64be as Bs,greedy as Ss,Layout as Do,ns64 as xs,ns64be as Ks,nu64 as Wo,nu64be as Cs,offset as qo,s16 as Rs,s16be as Ls,s24 as Os,s24be as Ns,s32 as Uo,s32be as Ms,s40 as Fs,s40be as vs,s48 as Vs,s48be as _s,s8 as Es,seq as Go,struct as Ds,Structure as zo,u16 as Xo,u16be as Ws,u24 as qs,u24be as Us,u32 as Yo,u32be as Gs,u40 as zs,u40be as Xs,u48 as Ys,u48be as Qs,u8 as Qo,UInt as Zo,union as Zs,Union as Hs,unionLayoutDiscriminator as js,utf8 as $s}from"@solana/buffer-layout";var pt=Do,xn=zo;var _t=Zo;var Kn=Qo,H=Xo;var ft=Yo;var Cn=Wo;var ce=Uo;var Rn=Go;var v=Eo;var Et=_o,Ln=qo;var Be=class extends pt{constructor(n,i,a){super(n,a);this.blob=v(n),this.signed=i}decode(n,i=0){let a=new On(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 On(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,a)}},yt=class extends pt{constructor(n){super(8,n);this._lower=Et(ft(),!1),this._upper=Et(ft(),!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 _t(1,o)}function z(o){return new _t(4,o)}function t(o){return new Be(8,!1,o)}function F(o){return new Be(16,!1,o)}function Mn(o){return new Be(1,!0,o)}function Le(o){return new Be(8,!0,o)}function Fn(o){return new Be(16,!0,o)}var Xe=class extends pt{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 Ho(e),e=>e.toBuffer(),o)}function ue(o){return new Xe(Kn(),jo,$o,o)}function jo(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function $o(o){return o?1:0}function vn(o,e){let n=ft("length"),i=m([n,A(o,Ln(n,-n.span),"values")]);return new Xe(i,({values:a})=>a,a=>({values:a}),e)}var Dt=class extends xn{decode(e,n){return super.decode(e,n)}};function m(o,e,n){return new Dt(o,e,n)}function A(o,e,n){let i,a=typeof e=="number"?e:Nn(e)?e.toNumber():new Proxy(e,{get(c,l){if(!i){let d=Reflect.get(c,"count");i=Nn(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 Rn(o,a,n)}var Jo=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)]),Vn=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)]),cu=m([v(8),r("configId"),A(t(),30)]);var _n=(i=>(i[i.BothToken=0]="BothToken",i[i.OnlyTokenA=1]="OnlyTokenA",i[i.OnlyTokenB=2]="OnlyTokenB",i))(_n||{});import{PublicKey as lt,TransactionInstruction as Ae,Keypair as fs,SystemProgram as kn}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Vt,TOKEN_2022_PROGRAM_ID as Tn,TOKEN_PROGRAM_ID as Pe}from"@solana/spl-token";import{PublicKey as ni}from"@solana/web3.js";import{get as En,set as ei}from"lodash";var Wt=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}},Dn={},ti={};function E(o){let e=En(Dn,o);if(!e){let n=En(ti,o);e=new Wt({name:o,logLevel:n}),ei(Dn,o,e)}return e}import{MINT_SIZE as ku,TOKEN_PROGRAM_ID as Tu,getTransferFeeConfig as hu,unpackMint as Iu}from"@solana/spl-token";var qt=E("Raydium_accountInfo_util");async function ge(o,e,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:c=100}=M({batchRequest:!1},n),l=Ut(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=Ut(b,10);d=(await(await Promise.all(y.map(async k=>await o._rpcBatchRequest(k)))).flat()).map(k=>(k.error&&qt.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"&&qt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:S,lamports:P,owner:new ni(g),rentEpoch:h}}return null})))}else try{d=await Promise.all(l.map(b=>o.getMultipleAccountsInfo(b,a)))}catch(b){b instanceof Error&&qt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.message}`)}return d.flat()}import he from"bn.js";import tR from"decimal.js";import li from"big.js";import Wu from"bn.js";import oi from"toformat";var ii=oi,Qe=ii;import gt from"big.js";import ai from"bn.js";import si from"decimal.js-light";import Ze from"bn.js";var Wn=9007199254740991;function ie(o){let e=E("Raydium_parseBigNumberish");if(o instanceof Ze)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ze(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=Wn||o<=-Wn)&&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 bt=E("module/fraction"),Gt=Qe(gt),He=Qe(si),ui={[0]:He.ROUND_DOWN,[1]:He.ROUND_HALF_UP,[2]:He.ROUND_UP},ci={[0]:gt.roundDown,[1]:gt.roundHalfUp,[2]:gt.roundUp},U=class{constructor(e,n=new ai(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)||bt.logWithError(`${e} is not an integer.`),e<=0&&bt.logWithError(`${e} is not positive.`),He.set({precision:e+1,rounding:ui[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)||bt.logWithError(`${e} is not an integer.`),e<0&&bt.logWithError(`${e} is negative.`),Gt.DP=e,Gt.RM=ci[i]||1,new Gt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Hu=E("Raydium_amount"),ju=Qe(li);import{PublicKey as di}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as qn}from"@solana/spl-token";var Pt={chainId:101,address:di.default.toBase58(),programId:qn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},pe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:qn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as Xt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as Un,SYSVAR_RENT_PUBKEY as pi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fi}from"@solana/spl-token";function Oe({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var yi=[Oe({pubkey:fi,isWritable:!1}),Oe({pubkey:Un.programId,isWritable:!1}),Oe({pubkey:pi,isWritable:!1})];function Gn({publicKey:o,transformSol:e}){let n=zn(o.toString());if(n instanceof X)return e&&n.equals(Se)?de:n;if(e&&n.toString()===Se.toBase58())return de;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 zn(o){try{return new X(o)}catch{return o}}var je=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ke=new X("SysvarRent111111111111111111111111111111111"),bi=new X("SysvarC1ock11111111111111111111111111111111"),xe=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),gi=new X("Sysvar1nstructions1111111111111111111111111"),zt=Un.programId,rc=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ac=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),sc=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),uc=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),cc=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),lc=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),mc=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),dc=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),pc=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),fc=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),yc=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),de=new X("So11111111111111111111111111111111111111112"),Se=X.default;var Yt=class{constructor({mint:e,decimals:n,symbol:i,name:a,skipMint:c=!1,isToken2022:l=!1}){if(e===Se.toBase58()||e instanceof Xt&&Se.equals(e)){this.decimals=pe.decimals,this.symbol=pe.symbol,this.name=pe.name,this.mint=new Xt(pe.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?Xt.default:Gn({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ee=Yt;ee.WSOL=new Yt(_(M({},pe),{mint:pe.address}));var Qt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=i}equals(e){return this===e}},At=Qt;At.SOL=new Qt(Pt);import Pi from"bn.js";var xc=new U(new Pi(100));var Nc=E("Raydium_price");import{merge as tC}from"lodash";import qc from"axios";var Xn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Ai=_(M({},Xn),{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 ml=E("Raydium_Api");import{PublicKey as Em,SystemProgram as Dm}from"@solana/web3.js";import{AccountLayout as zm,createAssociatedTokenAccountIdempotentInstruction as Xm,TOKEN_PROGRAM_ID as Ym,TOKEN_2022_PROGRAM_ID as Qm}from"@solana/spl-token";import{PublicKey as Ve,sendAndConfirmTransaction as en,SystemProgram as Bi,Transaction as et,TransactionMessage as tt,VersionedTransaction as nt}from"@solana/web3.js";import Si from"axios";import{PublicKey as Zt,AddressLookupTableAccount as Fe}from"@solana/web3.js";async function Ht({connection:o,address:e,cluster:n="mainnet"}){let i=await ge(o,[...new Set(e.map(c=>c.toString()))].map(c=>new Zt(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={},jt=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ne[e])return Ne;let n=new Zt(e),i=await o.getAccountInfo(n);return i&&(Ne[e]=new Fe({key:n,state:Fe.deserialize(i.data)})),Ne},Me={},$t=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Me[e])return Me;let n=new Zt(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 Yn,Keypair as Zn,PublicKey as wi,Transaction as Hn,TransactionMessage as ki,VersionedTransaction as jn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ti}from"@solana/spl-token";var Qn=E("Raydium_txUtil"),$n=1644;function wt(o){let e=[],n=[];return o.microLamports&&(e.push(Yn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Q.SetComputeUnitPrice)),o.units&&(e.push(Yn.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 kt(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&&Qn.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&Qn.logWithError(`no signers provided:, ${e.toString()}`);let n=new Hn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<$n}catch{return!1}}function Y(o,e){let[n,i]=wi.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=Zn.generate().publicKey.toString()}){let c=new ki({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new jn(c).serialize()).toString("base64").length<$n}catch{return!1}}var hi=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),Ii=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof jn&&(e=hi(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 Hn&&(n.recentBlockhash||(n.recentBlockhash=Ti.toBase58()),n.feePayer||(n.feePayer=Zn.generate().publicKey)),e.push(Ii(n))}),console.log("simulate tx string:",e),e}var Tt=2e3,ht=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 Si.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}=wt(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push(Bi.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(_(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 en(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 en(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 R=!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(R){clearInterval(L);return}try{let W=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(R=!0,clearInterval(L),ne({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",x))}catch(W){R=!0,clearInterval(L),console.error("getTransaction timeout:",W,x)}},Tt)),V=this.connection.onSignature(x,q=>{if(R){this.connection.removeSignatureListener(V);return}R=!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 $t(this.connection):await jt(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 Ht({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 kt(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 kt(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,R=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),R({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)}},Tt)),x=this.connection.onSignature(N,L=>{if(I){this.connection.removeSignatureListener(x);return}I=!0,R(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?wt(i):{instructions:[],instructionTypes:[]},l=this.signers.reduce((w,S)=>_(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 R=await en(this.connection,x,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:B});K.push(R)}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,R=[],L=async()=>{if(!K[x])return;x<g&&(R.push({txId:"",status:"success",signedTx:K[x]}),P==null||P([...R]),x++,L());let V=await this.connection.sendRawTransaction(K[x].serialize(),{skipPreflight:B});R.push({txId:V,status:"sent",signedTx:K[x]}),P==null||P([...R]),x++;let ne=!1,q=null,W=null,$=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let oe=R.findIndex(ye=>ye.txId===V);if(oe>-1){if(R[oe].status==="error"||R[oe].status==="success")return;R[oe].status=G.err?"error":"success"}P==null||P([...R]),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)}},Tt)),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:R.map(V=>V.txId),signedTxs:K}}else{let x=[];for(let R=0;R<K.length;R+=1){let L=await this.connection.sendRawTransaction(K[R].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 $t(this.connection):await jt(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 Ht({connection:this.connection,address:p});for(let[I,K]of Object.entries(k))b[I]=K;let T=n?wt(n):{instructions:[],instructionTypes:[]},w=await ve(this.connection,this.blockhashCommitment),S=this.signers.reduce((I,K)=>_(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 R={};for(let L of[...new Set(y)])b[L]!==void 0&&(R[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(R=>R.isSigner).map(R=>R.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:R=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<=R){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:V});await kt(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(R,P.length)),W=[...P.slice(0,R),...q];if(K){let $=0,G=[],oe=async()=>{if(!W[$])return;if($<R){G.push({txId:"",status:"success",signedTx:W[$]}),x==null||x([...G]),$++,oe();return}let ye=await this.connection.sendTransaction(W[$],{skipPreflight:V});G.push({txId:ye,status:"sent",signedTx:W[$]}),x==null||x([...G]),$++;let ze=!1,Re=null,mt=null,hn=Ie=>{Re!==null&&clearInterval(Re),mt!==null&&this.connection.removeSignatureListener(mt);let be=G.findIndex(Mo=>Mo.txId===ye);if(be>-1){if(G[be].status==="error"||G[be].status==="success")return;G[be].status=Ie.err?"error":"success"}x==null||x([...G]),Ie.err||oe()};this.loopMultiTxStatus&&(Re=setInterval(async()=>{var Ie;if(ze){clearInterval(Re);return}try{let be=await this.connection.getTransaction(ye,{commitment:"confirmed",maxSupportedTransactionVersion:0});be&&(ze=!0,clearInterval(Re),hn({err:((Ie=be.meta)==null?void 0:Ie.err)||null}),console.log("tx status from getTransaction:",ye))}catch(be){ze=!0,clearInterval(Re),console.error("getTransaction timeout:",be,ye)}},Tt)),mt=this.connection.onSignature(ye,Ie=>{if(ze){this.connection.removeSignatureListener(mt);return}ze=!0,hn(Ie)},"confirmed"),this.connection.getSignatureStatus(ye)};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 tn=(...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=E(n)}createTxBuilder(e){return this.scope.checkOwner(),new ht({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(tn(e))}logInfo(...e){this.logger.info(tn(e))}logAndCreateError(...e){let n=tn(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as bm,SystemProgram as Pm}from"@solana/web3.js";import km from"bn.js";import{createCloseAccountInstruction as Bm,createInitializeAccountInstruction as Sm,createTransferInstruction as xm,TOKEN_PROGRAM_ID as Km}from"@solana/spl-token";import{Keypair as om,PublicKey as im}from"@solana/web3.js";import sm from"bn.js";import{TOKEN_PROGRAM_ID as lm}from"@solana/spl-token";var It=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 MP,SystemProgram as FP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as VP}from"@solana/spl-token";import{PublicKey as Ki}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ci}from"@solana/spl-token";function ae(o,e,n){return Y([o.toBuffer(),(n!=null?n:Ci).toBuffer(),e.toBuffer()],new Ki("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as C}from"@solana/web3.js";var eo=new C("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),to=new C("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),no=new C("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),nn=new C("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),rd=new C("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ri=new C("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),oo=new C("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),io=new C("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),ad=new C("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Li=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ro=new C("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Oi=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ni=new C("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),ao=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),sd=new C("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Mi=new C("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Fi=new C("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),vi=new C("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Vi=new C("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),_i=new C("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),St=new C("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),so=new C("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ud=new C("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ei=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Di=new C("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Wi=new C("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),cd=new C("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),ld=new C("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),md=new C("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),dd=new C("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),pd=new C("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),ot={IDO_PROGRAM_ID_V1:Fi,IDO_PROGRAM_ID_V2:vi,IDO_PROGRAM_ID_V3:Vi,IDO_PROGRAM_ID_V4:_i};var Te={OPEN_BOOK_PROGRAM:new C("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new C("Ray1111111111111111111111111111111111111111"),AMM_V4:new C("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new C("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new C("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new C("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new C("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new C("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new C("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new C("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new C("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new C("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:C.default,Router:new C("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new C("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new C("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new C("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new C("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new C("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new C("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new C("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new C("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new C("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new C("Ray1111111111111111111111111111111111111111")};import YP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as mb,TOKEN_2022_PROGRAM_ID as db,TOKEN_PROGRAM_ID as pb}from"@solana/spl-token";import{PublicKey as yb}from"@solana/web3.js";import gb from"bn.js";import Ab from"decimal.js";import{TOKEN_PROGRAM_ID as xd}from"@solana/spl-token";import{PublicKey as Ld}from"@solana/web3.js";var qi=m([z("mintAuthorityOption"),r("mintAuthority"),t("supply"),f("decimals"),f("isInitialized"),z("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Ny,TOKEN_2022_PROGRAM_ID as My,TOKEN_PROGRAM_ID as Fy}from"@solana/spl-token";import{Keypair as _y,PublicKey as Ey,SystemProgram as Wy,TransactionInstruction as qy}from"@solana/web3.js";import Gy from"bn.js";import D from"bn.js";var Ee=new D(1).shln(64);var Ui=new D(1).shln(128),on=new D(1).shln(64).subn(1),Gi=new D(1).shln(128).subn(1);var De=new D("4295048016"),We=new D("79226673521066979257578248091"),zi=new D("59543866431248"),Xi=new D("184467440737095516"),Yi=new D("15793534762490258745");var rn=60,Ud=new D("18446743708227953217"),Qi=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var it=3,uo=100;var co=10,lo=100,xt=14;var j=new D(0),qe=new D(1),Gd=new D(-1);var zd=new D("18446744073700000000");var Zi=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)]),Hi=m([z("blockTimestamp"),Le("tickCumulative"),A(t(),4)]),mo=m([v(8),ue("initialized"),t("recentEpoch"),H("observationIndex"),r("poolId"),A(Hi,uo,"observations"),A(t(),4)]),ji=m([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),t("lastUpdateTimestamp"),A(f(),46)]),$i=m([f("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),F("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),r("mint"),r("vault"),r("creator"),F("growthGlobalX64")]),an=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($i,it,"rewardInfos"),v(8*16,"tickArrayBitmap"),A(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),ji.replicate("dynamicFeeInfo"),A(t(),46)]),Ji=m([F("growthInsideLastX64"),t("rewardAmountOwed")]),er=m([v(8),f("bump"),r("nftMint"),r("poolId"),ce("tickLower"),ce("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),A(Ji,it,"rewardInfos"),t("recentEpoch"),A(t(),7)]),Zd=m([v(8),f("bump"),r("poolId"),ce("tickLower"),ce("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),A(F(),it,"rewardGrowthInside"),t("recentEpoch"),A(t(),7)]),tr=m([ce("tick"),Fn("liquidityNet"),F("liquidityGross"),F("feeGrowthOutsideX64A"),F("feeGrowthOutsideX64B"),A(F(),it,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),F("unfilledRatioX64"),A(z(),3)]),po=m([v(8),r("poolId"),ce("startTickIndex"),A(tr,rn,"ticks"),f("initializedTickCount"),t("recentEpoch"),A(f(),107)]),nr=m([v(8),f("bump"),A(r(),co,"operationOwners"),A(r(),lo,"whitelistMints")]),or=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)]),fo=m([v(8),r("poolId"),v(8*8*xt,"positiveTickArrayBitmap"),v(8*8*xt,"negativeTickArrayBitmap")]),Hd=m([v(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),A(t(),8)]),ir=m([v(8),r("wallet"),f("nonceIndex"),t("orderNonce"),A(t(),4)]),jd=m([t(),f("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),A(t(),8)]),rr=m([v(8),f("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),t("recentEpoch"),A(t(),8)]);import ep from"bn.js";var mp=Buffer.from("amm_config","utf8"),ar=Buffer.from("pool","utf8"),sr=Buffer.from("pool_vault","utf8"),dp=Buffer.from("pool_reward_vault","utf8"),pp=Buffer.from("position","utf8"),fp=Buffer.from("tick_array","utf8"),yp=Buffer.from("operation","utf8"),bp=Buffer.from("pool_tick_array_bitmap_extension","utf8"),gp=Buffer.from("observation","utf8"),Pp=Buffer.from("support_mint","utf8"),Ap=Buffer.from("dynamic_fee_config","utf8");function Kt(o){return Y([Buffer.from("metadata","utf8"),xe.toBuffer(),o.toBuffer()],xe)}var wp=Buffer.from("locked_position","utf8");import{sha256 as Tr}from"js-sha256";import ur from"bn.js";import Ip from"decimal.js";var Sp=new ur(1).shln(256).subn(1);import Gp from"bn.js";import Np from"bn.js";import Fp from"decimal.js";import Zp from"bn.js";i