@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 86.3 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,N=(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 Ps,blob as Eo,Blob as As,cstr as ws,f32 as ks,f32be as Ts,f64 as hs,f64be as Is,greedy as Bs,Layout as Do,ns64 as Ss,ns64be as xs,nu64 as Wo,nu64be as Ks,offset as qo,s16 as Cs,s16be as Rs,s24 as Ls,s24be as Os,s32 as Uo,s32be as Ns,s40 as Ms,s40be as Fs,s48 as vs,s48be as Vs,s8 as _s,seq as Go,struct as Es,Structure as zo,u16 as Yo,u16be as Ds,u24 as Ws,u24be as qs,u32 as Xo,u32be as Us,u40 as Gs,u40be as zs,u48 as Ys,u48be as Xs,u8 as Qo,UInt as Zo,union as Qs,Union as Zs,unionLayoutDiscriminator as Hs,utf8 as js}from"@solana/buffer-layout";var pt=Do,xn=zo;var _t=Zo;var Kn=Qo,H=Yo;var ft=Xo;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 N(N({},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 Oe(o){return new Be(8,!0,o)}function Fn(o){return new Be(16,!0,o)}var Ye=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 Ye(v(32),e=>new Ho(e),e=>e.toBuffer(),o)}function ue(o){return new Ye(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 Ye(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)]),uu=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 ps,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 wu,TOKEN_PROGRAM_ID as ku,getTransferFeeConfig as Tu,unpackMint as hu}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}=N({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 $C from"decimal.js";import li from"big.js";import Du 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 oe(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=oe(e),this.denominator=oe(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(oe(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(oe(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(oe(e));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof U?e:new U(oe(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 Zu=E("Raydium_amount"),Hu=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 Yt}from"@solana/web3.js";import{PublicKey as Y,SystemProgram as Un,SYSVAR_RENT_PUBKEY as pi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fi}from"@solana/spl-token";function Ne({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var yi=[Ne({pubkey:fi,isWritable:!1}),Ne({pubkey:Un.programId,isWritable:!1}),Ne({pubkey:pi,isWritable:!1})];function Gn({publicKey:o,transformSol:e}){let n=zn(o.toString());if(n instanceof Y)return e&&n.equals(Se)?de:n;if(e&&n.toString()===Se.toBase58())return de;if(typeof n=="string"){if(n===Y.default.toBase58())return Y.default;try{return new Y(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function zn(o){try{return new Y(o)}catch{return o}}var je=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ke=new Y("SysvarRent111111111111111111111111111111111"),bi=new Y("SysvarC1ock11111111111111111111111111111111"),xe=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),gi=new Y("Sysvar1nstructions1111111111111111111111111"),zt=Un.programId,ic=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),rc=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ac=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),sc=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),uc=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),cc=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),lc=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),mc=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),dc=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),pc=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),fc=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),de=new Y("So11111111111111111111111111111111111111112"),Se=Y.default;var Xt=class{constructor({mint:e,decimals:n,symbol:i,name:a,skipMint:c=!1,isToken2022:l=!1}){if(e===Se.toBase58()||e instanceof Yt&&Se.equals(e)){this.decimals=pe.decimals,this.symbol=pe.symbol,this.name=pe.name,this.mint=new Yt(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?Yt.default:Gn({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ee=Xt;ee.WSOL=new Xt(_(N({},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 Sc=new U(new Pi(100));var Oc=E("Raydium_price");import{merge as $K}from"lodash";import Wc from"axios";var Yn={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=_(N({},Yn),{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 ll=E("Raydium_Api");import{PublicKey as _m,SystemProgram as Em}from"@solana/web3.js";import{AccountLayout as Gm,createAssociatedTokenAccountIdempotentInstruction as zm,TOKEN_PROGRAM_ID as Ym,TOKEN_2022_PROGRAM_ID as Xm}from"@solana/spl-token";import{PublicKey as _e,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 ve}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 ve({key:d,state:ve.deserialize(l.data)});a[d.toString()]=b,n==="devnet"?Fe[d.toString()]=b:Me[d.toString()]=b}return a}var Me={},jt=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Me[e])return Me;let n=new Zt(e),i=await o.getAccountInfo(n);return i&&(Me[e]=new ve({key:n,state:ve.deserialize(i.data)})),Me},Fe={},$t=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Fe[e])return Fe;let n=new Zt(e),i=await o.getAccountInfo(n);return i&&(Fe[e]=new ve({key:n,state:ve.deserialize(i.data)})),Fe};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 Xn,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(Xn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Q.SetComputeUnitPrice)),o.units&&(e.push(Xn.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 X(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 _e(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!==_e.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:i}){return e===0?await this.buildV0(_(N({},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 M of l){if(++O,O<=w)continue;let I=await en(this.connection,M,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((M,I)=>(M.recentBlockhash=g,d[I].length&&M.sign(...d[I]),M));Ke(B);let O=await this.signAllTransactions(B);if(k){let M=0,I=[],K=async()=>{if(!O[M])return;let x=await this.connection.sendRawTransaction(O[M].serialize(),{skipPreflight:P});I.push({txId:x,status:"sent",signedTx:O[M]}),T==null||T([...I]),M++;let R=!1,L=null,V=null,se=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),se({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,se(q)},"confirmed"),this.connection.getSignatureStatus(x)};return await K(),{txIds:I.map(x=>x.txId),signedTxs:O}}else{let M=[];for(let I=0;I<O.length;I+=1){let K=await this.connection.sendRawTransaction(O[I].serialize(),{skipPreflight:P});M.push(K)}return{txIds:M,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=N(N({},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 _e(g));let p=await Ht({connection:this.connection,address:y});for(let[g,h]of Object.entries(p))d[g]=h;let k=a?_e.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 M;let{skipPreflight:h=!0,sendAndConfirm:B,notSendToRpc:O}=g||{};if(Ke([w]),(M=this.owner)!=null&&M.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 M=await this.connection.sendTransaction(g[h],{skipPreflight:S});B.push({txId:M,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(se=>se.txId===M);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(M,{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:",M))}catch(V){I=!0,clearInterval(K),console.error("getTransaction timeout:",V,M)}},Tt)),x=this.connection.onSignature(M,L=>{if(I){this.connection.removeSignatureListener(x);return}I=!0,R(L)},"confirmed"),this.connection.getSignatureStatus(M)};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)=>_(N({},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 _e(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 M;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),(M=this.owner)!=null&&M.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 se=!1,q=null,W=null,$=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let ne=R.findIndex(ye=>ye.txId===V);if(ne>-1){if(R[ne].status==="error"||R[ne].status==="success")return;R[ne].status=G.err?"error":"success"}P==null||P([...R]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(se){clearInterval(q);return}try{let ne=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(se=!0,clearInterval(q),$({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(ne){se=!0,clearInterval(q),console.error("getTransaction timeout:",ne,V)}},Tt)),W=this.connection.onSignature(V,G=>{if(se){this.connection.removeSignatureListener(W);return}se=!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 M;let O=e||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:c=[],insCountLimit:l=12}=O,d=me(O,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),b=N(N({},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 _e(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)=>_(N({},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(M=this.owner)!=null&&M.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 se;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),(se=this.owner)!=null&&se.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=[],ne=async()=>{if(!W[$])return;if($<R){G.push({txId:"",status:"success",signedTx:W[$]}),x==null||x([...G]),$++,ne();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,Le=null,mt=null,hn=Ie=>{Le!==null&&clearInterval(Le),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||ne()};this.loopMultiTxStatus&&(Le=setInterval(async()=>{var Ie;if(ze){clearInterval(Le);return}try{let be=await this.connection.getTransaction(ye,{commitment:"confirmed",maxSupportedTransactionVersion:0});be&&(ze=!0,clearInterval(Le),hn({err:((Ie=be.meta)==null?void 0:Ie.err)||null}),console.log("tx status from getTransaction:",ye))}catch(be){ze=!0,clearInterval(Le),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 ne(),{txIds:[],signedTxs:W}}else{let $=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:V});$.push(ne)}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(", "),ie=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 ym,SystemProgram as gm}from"@solana/web3.js";import wm from"bn.js";import{createCloseAccountInstruction as Im,createInitializeAccountInstruction as Bm,createTransferInstruction as Sm,TOKEN_PROGRAM_ID as xm}from"@solana/spl-token";import{Keypair as nm,PublicKey as om}from"@solana/web3.js";import am from"bn.js";import{TOKEN_PROGRAM_ID as cm}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 OP,SystemProgram as NP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as FP}from"@solana/spl-token";import{PublicKey as Ki}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ci}from"@solana/spl-token";function re(o,e,n){return X([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"),id=new C("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ri=new C("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),oo=new C("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),io=new C("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),rd=new C("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Li=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ro=new C("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Oi=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ni=new C("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),ao=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ad=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"),sd=new C("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ei=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Di=new C("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Wi=new C("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),ud=new C("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),cd=new C("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),ld=new C("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),md=new C("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),dd=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 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 Sd}from"@solana/spl-token";import{PublicKey as Rd}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 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 D from"bn.js";var Re=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"),Yi=new D("184467440737095516"),Xi=new D("15793534762490258745");var rn=60,qd=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),Ud=new D(-1);var Gd=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"),Oe("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)]),Qd=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")]),Zd=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)]),Hd=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 Jd from"bn.js";var lp=Buffer.from("amm_config","utf8"),ar=Buffer.from("pool","utf8"),sr=Buffer.from("pool_vault","utf8"),mp=Buffer.from("pool_reward_vault","utf8"),dp=Buffer.from("position","utf8"),pp=Buffer.from("tick_array","utf8"),fp=Buffer.from("operation","utf8"),yp=Buffer.from("pool_tick_array_bitmap_extension","utf8"),bp=Buffer.from("observation","utf8"),gp=Buffer.from("support_mint","utf8"),Pp=Buffer.from("dynamic_fee_config","utf8");function Kt(o){return X([Buffer.from("metadata","utf8"),xe.toBuffer(),o.toBuffer()],xe)}var Ap=Buffer.from("locked_position","utf8");import{sha256 as hr}from"js-sha256";import ur from"bn.js";import hp from"decimal.js";var Bp=new ur(1).shln(256).subn(1);import Up from"bn.js";import Op from"bn.js";import Mp from"decimal.js";import jp from"bn.js";i