UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 453 kB
var Wl=Object.defineProperty,ql=Object.defineProperties;var Ul=Object.getOwnPropertyDescriptors;var Hi=Object.getOwnPropertySymbols;var iu=Object.prototype.hasOwnProperty,ru=Object.prototype.propertyIsEnumerable;var ou=(p,e,t)=>e in p?Wl(p,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):p[e]=t,M=(p,e)=>{for(var t in e||(e={}))iu.call(e,t)&&ou(p,t,e[t]);if(Hi)for(var t of Hi(e))ru.call(e,t)&&ou(p,t,e[t]);return p},V=(p,e)=>ql(p,Ul(e));var De=(p,e)=>{var t={};for(var n in p)iu.call(p,n)&&e.indexOf(n)<0&&(t[n]=p[n]);if(p!=null&&Hi)for(var n of Hi(p))e.indexOf(n)<0&&ru.call(p,n)&&(t[n]=p[n]);return t};import{merge as of}from"lodash";import vl from"axios";import{PublicKey as uu}from"@solana/web3.js";import{get as au,set as Gl}from"lodash";var ra=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 t=e.map(n=>typeof n=="object"?JSON.stringify(n):n).join(", ");throw new Error(t)}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}},su={},zl={};function we(p){let e=au(su,p);if(!e){let t=au(zl,p);e=new ra({name:p,logLevel:t}),Gl(su,p,e)}return e}import{MINT_SIZE as Yl,TOKEN_PROGRAM_ID as Xl,getTransferFeeConfig as Ql,unpackMint as Hl}from"@solana/spl-token";var aa=we("Raydium_accountInfo_util");async function pt(p,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:i=100}=M({batchRequest:!1},t),r=sa(e,i),a=new Array(r.length).fill([]);if(n){let u=r.map(l=>{let m=p._buildArgs([l.map(d=>d.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:m}}),s=sa(u,10);a=(await(await Promise.all(s.map(async l=>await p._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&aa.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.error.message}`),l.result.value.map(m=>{if(m){let{data:d,executable:f,lamports:y,owner:b,rentEpoch:g}=m;return d.length!==2&&d[1]!=="base64"&&aa.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(d[0],"base64"),executable:f,lamports:y,owner:new uu(b),rentEpoch:g}}return null})))}else try{a=await Promise.all(r.map(u=>p.getMultipleAccountsInfo(u,o)))}catch(u){u instanceof Error&&aa.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${u.message}`)}return a.flat()}async function Oe(p,e,t){let n=await pt(p,e.map(o=>o.pubkey),t);return e.map((o,i)=>V(M({},o),{accountInfo:n[i]}))}async function eo({connection:p,mints:e,config:t}){var i,r,a;if(e.length===0)return{};let n=await Oe(p,e.map(u=>({pubkey:wt(u)})),t),o={};for(let u of n){if(!u.accountInfo||u.accountInfo.data.length<Yl){console.log("invalid mint account",u.pubkey.toBase58());continue}let s=Hl(u.pubkey,u.accountInfo,(i=u.accountInfo)==null?void 0:i.owner);o[u.pubkey.toString()]=V(M({},s),{programId:((r=u.accountInfo)==null?void 0:r.owner)||Xl,feeConfig:(a=Ql(s))!=null?a:void 0})}return o[uu.default.toBase58()]=o[Q.toBase58()],o}import Qn from"bn.js";import jK from"decimal.js";import om from"big.js";import $i from"bn.js";import Zl from"toformat";var jl=Zl,jo=jl;import ji from"big.js";import Jl from"bn.js";import em from"decimal.js-light";import $o from"bn.js";var cu=9007199254740991;function ce(p){let e=we("Raydium_parseBigNumberish");if(p instanceof $o)return p;if(typeof p=="string"){if(p.match(/^-?[0-9]+$/))return new $o(p);e.logWithError(`invalid BigNumberish string: ${p}`)}return typeof p=="number"?(p%1&&e.logWithError(`BigNumberish number underflow: ${p}`),(p>=cu||p<=-cu)&&e.logWithError(`BigNumberish number overflow: ${p}`),new $o(String(p))):typeof p=="bigint"?new $o(p.toString()):(e.error(`invalid BigNumberish value: ${p}`),new $o(0))}var Zi=we("module/fraction"),ua=jo(ji),Jo=jo(em),tm={[0]:Jo.ROUND_DOWN,[1]:Jo.ROUND_HALF_UP,[2]:Jo.ROUND_UP},nm={[0]:ji.roundDown,[1]:ji.roundHalfUp,[2]:ji.roundUp},Ke=class{constructor(e,t=new Jl(1)){this.numerator=ce(e),this.denominator=ce(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new Ke(this.denominator,this.numerator)}add(e){let t=e instanceof Ke?e:new Ke(ce(e));return this.denominator.eq(t.denominator)?new Ke(this.numerator.add(t.numerator),this.denominator):new Ke(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof Ke?e:new Ke(ce(e));return this.denominator.eq(t.denominator)?new Ke(this.numerator.sub(t.numerator),this.denominator):new Ke(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof Ke?e:new Ke(ce(e));return new Ke(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof Ke?e:new Ke(ce(e));return new Ke(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||Zi.logWithError(`${e} is not an integer.`),e<=0&&Zi.logWithError(`${e} is not positive.`),Jo.set({precision:e+1,rounding:tm[n]});let o=new Jo(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return o.toFormat(o.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},n=1){return Number.isInteger(e)||Zi.logWithError(`${e} is not an integer.`),e<0&&Zi.logWithError(`${e} is negative.`),ua.DP=e,ua.RM=nm[n]||1,new ua(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var im=we("Raydium_amount"),lu=jo(om);function rm(p,e){let t="0",n="0";if(p.includes(".")){let o=p.split(".");o.length===2?([t,n]=o,n=n.padEnd(e,"0")):im.logWithError(`invalid number string, num: ${p}`)}else t=p;return[t,n.slice(0,e)||n]}var Ce=class extends Ke{constructor(t,n,o=!0,i){let r=new $i(0),a=ca.pow(new $i(t.decimals));if(o)r=ce(n);else{let u=new $i(0),s=new $i(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[c,l]=rm(n.toString(),t.decimals);u=ce(c),s=ce(l)}u=u.mul(a),r=u.add(s)}super(r,a);this.logger=we(i||"TokenAmount"),this.token=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.token.equals(t.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(t.raw)}lt(t){return this.token.equals(t.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(t.raw)}add(t){return this.token.equals(t.token)||this.logger.logWithError("add token not equals"),new Ce(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new Ce(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,n,o=0){return super.toSignificant(t,n,o)}toFixed(t=this.token.decimals,n,o=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,n,o)}toExact(t={groupSeparator:""}){return lu.DP=this.token.decimals,new lu(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as am}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as mu}from"@solana/spl-token";var On={chainId:101,address:am.default.toBase58(),programId:mu.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},xt={chainId:101,address:"So11111111111111111111111111111111111111112",programId:mu.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 fa}from"@solana/web3.js";import{PublicKey as Ye,SystemProgram as du,SYSVAR_RENT_PUBKEY as sm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as um}from"@solana/spl-token";function K({pubkey:p,isSigner:e=!1,isWritable:t=!0}){return{pubkey:p,isWritable:t,isSigner:e}}var la=[K({pubkey:um,isWritable:!1}),K({pubkey:du.programId,isWritable:!1}),K({pubkey:sm,isWritable:!1})];function ma({publicKey:p,transformSol:e}){let t=da(p.toString());if(t instanceof Ye)return e&&t.equals(ft)?Q:t;if(e&&t.toString()===ft.toBase58())return Q;if(typeof t=="string"){if(t===Ye.default.toBase58())return Ye.default;try{return new Ye(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function da(p){try{return new Ye(p)}catch{return p}}var on=new Ye("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),St=new Ye("SysvarRent111111111111111111111111111111111"),pu=new Ye("SysvarC1ock11111111111111111111111111111111"),pn=new Ye("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),cm=new Ye("Sysvar1nstructions1111111111111111111111111"),pa=du.programId,Yf=new Ye("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Xf=new Ye("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Qf=new Ye("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Hf=new Ye("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Zf=new Ye("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),jf=new Ye("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),$f=new Ye("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Jf=new Ye("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ey=new Ye("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ty=new Ye("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ny=new Ye("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Q=new Ye("So11111111111111111111111111111111111111112"),ft=Ye.default;function wt(p){return ma({publicKey:p,transformSol:!0})}var ya=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:i=!1,isToken2022:r=!1}){if(e===ft.toBase58()||e instanceof fa&&ft.equals(e)){this.decimals=xt.decimals,this.symbol=xt.symbol,this.name=xt.name,this.mint=new fa(xt.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=n||e.toString().substring(0,6),this.name=o||e.toString().substring(0,6),this.mint=i?fa.default:ma({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},We=ya;We.WSOL=new ya(V(M({},xt),{mint:xt.address}));var ba=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},Ji=ba;Ji.SOL=new ba(On);import lm from"bn.js";var fu=new Ke(new lm(100)),yt=class extends Ke{toSignificant(e=5,t,n){return this.mul(fu).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(fu).toFixed(e,t,n)}};var mm=we("Raydium_price"),Rt=class extends Ke{constructor(t){let{baseToken:n,quoteToken:o,numerator:i,denominator:r}=t;super(i,r);this.baseToken=n,this.quoteToken=o,this.scalar=new Ke(ga(n.decimals),ga(o.decimals))}get raw(){return new Ke(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Rt({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&mm.logWithError("mul token not equals");let n=super.mul(t);return new Rt({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:n.denominator,numerator:n.numerator})}toSignificant(t=this.quoteToken.decimals,n,o){return this.adjusted.toSignificant(t,n,o)}toFixed(t=this.quoteToken.decimals,n,o){return this.adjusted.toFixed(t,n,o)}};import{PublicKey as Im}from"@solana/web3.js";import Au,{isBN as wu}from"bn.js";import{bits as dm,BitStructure as ky,blob as pm,Blob as Ty,cstr as hy,f32 as Iy,f32be as By,f64 as xy,f64be as Sy,greedy as Ky,Layout as fm,ns64 as Cy,ns64be as Ry,nu64 as ym,nu64be as Ly,offset as bm,s16 as Oy,s16be as Ny,s24 as My,s24be as Fy,s32 as gm,s32be as vy,s40 as _y,s40be as Vy,s48 as Ey,s48be as Dy,s8 as Wy,seq as Pm,struct as qy,Structure as Am,u16 as wm,u16be as Uy,u24 as Gy,u24be as zy,u32 as km,u32be as Yy,u40 as Xy,u40be as Qy,u48 as Hy,u48be as Zy,u8 as Tm,UInt as hm,union as jy,Union as $y,unionLayoutDiscriminator as Jy,utf8 as eb}from"@solana/buffer-layout";var er=fm,yu=Am;var Pa=hm;var bu=Tm,ot=wm;var ei=km;var gu=ym;var it=gm;var Pu=Pm;var ge=pm;var Aa=dm,wa=bm;var to=class extends er{constructor(t,n,o){super(t,o);this.blob=ge(t),this.signed=n}decode(t,n=0){let o=new Au(this.blob.decode(t,n),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(t,n,o=0){return typeof t=="number"&&(t=new Au(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},tr=class extends er{constructor(t){super(8,t);this._lower=Aa(ei(),!1),this._upper=Aa(ei(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,n=0){let o=this._lower.decode(t,n),i=this._upper.decode(t,n+this._lower.span);return M(M({},o),i)}encode(t,n,o=0){return this._lower.encode(t,n,o)+this._upper.encode(t,n,o+this._lower.span)}};function q(p){return new Pa(1,p)}function qe(p){return new Pa(4,p)}function k(p){return new to(8,!1,p)}function le(p){return new to(16,!1,p)}function ku(p){return new to(1,!0,p)}function Io(p){return new to(8,!0,p)}function Tu(p){return new to(16,!0,p)}var no=class extends er{constructor(t,n,o,i){super(t.span,i);this.layout=t,this.decoder=n,this.encoder=o}decode(t,n){return this.decoder(this.layout.decode(t,n))}encode(t,n,o){return this.layout.encode(this.encoder(t),n,o)}getSpan(t,n){return this.layout.getSpan(t,n)}};function F(p){return new no(ge(32),e=>new Im(e),e=>e.toBuffer(),p)}function Ze(p){return new no(bu(),Bm,xm,p)}function Bm(p){if(p===0)return!1;if(p===1)return!0;throw new Error("Invalid bool: "+p)}function xm(p){return p?1:0}function hu(p,e){let t=ei("length"),n=_([t,Z(p,wa(t,-t.span),"values")]);return new no(n,({values:o})=>o,o=>({values:o}),e)}function Sm(p){let e=ei("length"),t=_([e,ge(wa(e,-e.span),"data")]);return new no(t,({data:n})=>n,n=>({data:n}),p)}function Nt(p){return new no(Sm(),e=>e.toString("utf-8"),e=>Buffer.from(e,"utf-8"),p)}var ka=class extends yu{decode(e,t){return super.decode(e,t)}};function _(p,e,t){return new ka(p,e,t)}function Z(p,e,t){let n,o=typeof e=="number"?e:wu(e)?e.toNumber():new Proxy(e,{get(i,r){if(!n){let a=Reflect.get(i,"count");n=wu(a)?a.toNumber():a,Reflect.set(i,"count",n)}return Reflect.get(i,r)},set(i,r,a){return r==="count"&&(n=a),Reflect.set(i,r,a)}});return Pu(p,o,t)}var Pn=_([F("mint"),F("owner"),k("amount"),qe("delegateOption"),F("delegate"),q("state"),qe("isNativeOption"),k("isNative"),k("delegatedAmount"),qe("closeAuthorityOption"),F("closeAuthority")]);import{Keypair as Om,PublicKey as Cu}from"@solana/web3.js";import Nm from"bn.js";import{TOKEN_PROGRAM_ID as Mm}from"@solana/spl-token";function Km(p){return p instanceof Uint8Array||p!=null&&typeof p=="object"&&p.constructor.name==="Uint8Array"}function Ta(p,...e){if(!Km(p))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(p.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${p.length}`)}function ha(p,e=!0){if(p.destroyed)throw new Error("Hash instance has been destroyed");if(e&&p.finished)throw new Error("Hash#digest() has already been called")}function Iu(p,e){Ta(p);let t=e.outputLen;if(p.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var or=p=>new DataView(p.buffer,p.byteOffset,p.byteLength),rn=(p,e)=>p<<32-e|p>>>e;var fb=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Cm(p){if(typeof p!="string")throw new Error(`utf8ToBytes expected string, got ${typeof p}`);return new Uint8Array(new TextEncoder().encode(p))}function Ia(p){return typeof p=="string"&&(p=Cm(p)),Ta(p),p}var nr=class{clone(){return this._cloneInto()}},yb={}.toString;function Bu(p){let e=n=>p().update(Ia(n)).digest(),t=p();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>p(),e}function Rm(p,e,t,n){if(typeof p.setBigUint64=="function")return p.setBigUint64(e,t,n);let o=BigInt(32),i=BigInt(4294967295),r=Number(t>>o&i),a=Number(t&i),u=n?4:0,s=n?0:4;p.setUint32(e+u,r,n),p.setUint32(e+s,a,n)}var xu=(p,e,t)=>p&e^~p&t,Su=(p,e,t)=>p&e^p&t^e&t,ir=class extends nr{constructor(e,t,n,o){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=or(this.buffer)}update(e){ha(this);let{view:t,buffer:n,blockLen:o}=this;e=Ia(e);let i=e.length;for(let r=0;r<i;){let a=Math.min(o-this.pos,i-r);if(a===o){let u=or(e);for(;o<=i-r;r+=o)this.process(u,r);continue}n.set(e.subarray(r,r+a),this.pos),this.pos+=a,r+=a,this.pos===o&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){ha(this),Iu(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:o,isLE:i}=this,{pos:r}=this;t[r++]=128,this.buffer.subarray(r).fill(0),this.padOffset>o-r&&(this.process(n,0),r=0);for(let l=r;l<o;l++)t[l]=0;Rm(n,o-8,BigInt(this.length*8),i),this.process(n,0);let a=or(e),u=this.outputLen;if(u%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let s=u/4,c=this.get();if(s>c.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<s;l++)a.setUint32(4*l,c[l],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:n,length:o,finished:i,destroyed:r,pos:a}=this;return e.length=o,e.pos=a,e.finished=i,e.destroyed=r,o%t&&e.buffer.set(n),e}};var Lm=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Nn=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Mn=new Uint32Array(64),Ba=class extends ir{constructor(){super(64,32,8,!1),this.A=Nn[0]|0,this.B=Nn[1]|0,this.C=Nn[2]|0,this.D=Nn[3]|0,this.E=Nn[4]|0,this.F=Nn[5]|0,this.G=Nn[6]|0,this.H=Nn[7]|0}get(){let{A:e,B:t,C:n,D:o,E:i,F:r,G:a,H:u}=this;return[e,t,n,o,i,r,a,u]}set(e,t,n,o,i,r,a,u){this.A=e|0,this.B=t|0,this.C=n|0,this.D=o|0,this.E=i|0,this.F=r|0,this.G=a|0,this.H=u|0}process(e,t){for(let l=0;l<16;l++,t+=4)Mn[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){let m=Mn[l-15],d=Mn[l-2],f=rn(m,7)^rn(m,18)^m>>>3,y=rn(d,17)^rn(d,19)^d>>>10;Mn[l]=y+Mn[l-7]+f+Mn[l-16]|0}let{A:n,B:o,C:i,D:r,E:a,F:u,G:s,H:c}=this;for(let l=0;l<64;l++){let m=rn(a,6)^rn(a,11)^rn(a,25),d=c+m+xu(a,u,s)+Lm[l]+Mn[l]|0,y=(rn(n,2)^rn(n,13)^rn(n,22))+Su(n,o,i)|0;c=s,s=u,u=a,a=r+d|0,r=i,i=o,o=n,n=d+y|0}n=n+this.A|0,o=o+this.B|0,i=i+this.C|0,r=r+this.D|0,a=a+this.E|0,u=u+this.F|0,s=s+this.G|0,c=c+this.H|0,this.set(n,o,i,r,a,u,s,c)}roundClean(){Mn.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Ku=Bu(()=>new Ba);function Ru({owner:p,solAccountResp:e,tokenAccountResp:t}){let n=[],o=[];for(let{pubkey:i,account:r}of t.value){let a=Pn.decode(r.data),{mint:u,amount:s}=a;n.push({publicKey:i,mint:u,amount:s,isAssociated:ne(p,u,r.owner).publicKey.equals(i),isNative:!1,programId:r.owner}),o.push({pubkey:i,accountInfo:a,programId:r.owner})}return e&&n.push({mint:Cu.default,amount:new Nm(String(e.lamports)),isNative:!0,programId:e.owner}),{tokenAccounts:n,tokenAccountRawInfos:o}}function je({fromPublicKey:p,programId:e=Mm,assignSeed:t}){let n=t?btoa(t).slice(0,32):Om.generate().publicKey.toBase58().slice(0,32);return{publicKey:Fm(p,n,e),seed:n}}function Fm(p,e,t){let n=Buffer.concat([p.toBuffer(),Buffer.from(e),t.toBuffer()]),o=Ku(n);return new Cu(o)}import{PublicKey as vm,SystemProgram as _m}from"@solana/web3.js";import Vm from"bn.js";import{createCloseAccountInstruction as Em,createInitializeAccountInstruction as Dm,createTransferInstruction as Wm,TOKEN_PROGRAM_ID as Bo}from"@solana/spl-token";var z={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};function xa(p){let{mint:e,tokenAccount:t,owner:n,programId:o=Bo}=p;return Dm(t,e,n,o)}function An(p){let{tokenAccount:e,payer:t,multiSigners:n=[],owner:o,programId:i=Bo}=p;return Em(e,t,o,n,i)}async function Fn(p){let{connection:e,amount:t,commitment:n,payer:o,owner:i,skipCloseAccount:r}=p,a=await e.getMinimumBalanceForRentExemption(Pn.span,n),u=ce(t).add(new Vm(a)),s=je({fromPublicKey:o,programId:Bo});return{addresses:{newAccount:s.publicKey},signers:[],instructions:[_m.createAccountWithSeed({fromPubkey:o,basePubkey:o,seed:s.seed,newAccountPubkey:s.publicKey,lamports:u.toNumber(),space:Pn.span,programId:Bo}),xa({mint:new vm(xt.address),tokenAccount:s.publicKey,owner:i,programId:Bo})],instructionTypes:[z.CreateAccount,z.InitAccount],endInstructionTypes:r?[]:[z.CloseAccount],endInstructions:r?[]:[An({tokenAccount:s.publicKey,payer:o,owner:i})]}}function Lu({source:p,destination:e,owner:t,amount:n,multiSigners:o=[],tokenProgram:i=Bo}){return Wm(p,e,t,BigInt(String(n)),o,i)}import{PublicKey as Ka}from"@solana/web3.js";import{PublicKey as se}from"@solana/web3.js";var Ou=new se("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Nu=new se("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Mu=new se("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),ti=new se("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),eg=new se("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Fu=new se("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Sa=new se("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),rr=new se("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),tg=new se("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),vu=new se("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),wn=new se("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ni=new se("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ar=new se("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),oo=new se("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ng=new se("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),_u=new se("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),qm=new se("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Um=new se("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Gm=new se("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),zm=new se("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),io=new se("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Vu=new se("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),og=new se("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),oi=new se("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),sr=new se("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ct=new se("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),ig=new se("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),rg=new se("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),ag=new se("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),sg=new se("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ug=new se("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),ii={IDO_PROGRAM_ID_V1:qm,IDO_PROGRAM_ID_V2:Um,IDO_PROGRAM_ID_V3:Gm,IDO_PROGRAM_ID_V4:zm};var an={OPEN_BOOK_PROGRAM:new se("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new se("Ray1111111111111111111111111111111111111111"),AMM_V4:new se("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new se("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new se("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new se("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new se("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new se("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new se("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new se("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new se("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new se("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:se.default,Router:new se("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new se("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new se("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new se("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new se("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new se("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new se("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new se("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new se("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new se("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new se("Ray1111111111111111111111111111111111111111")};import{NATIVE_MINT as gg}from"@solana/spl-token";var Pg=we("Raydium_farm_config"),Eu=new Ka("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Du=new Ka("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Ag=new Ka("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX"),ur={3:Wu,5:qu,6:ai},ri={3:La,5:Uu,6:Gu},Ca=p=>[3,4,5,6].indexOf(p)!==-1,Ra=p=>{var r;let{version:e,rewardInfos:t,rewardTokenAccountsPublicKeys:n}=p,o=`rewardInfo:${JSON.stringify(t)}, rewardAccount:${JSON.stringify(n)}`,i={3:()=>{if(t.length!==1||n.length!==1)return`rewardInfos or rewardTokenAccounts lengths not equal 1: ${o}`},5:()=>{if(t.length!==n.length)return`rewardInfos and rewardTokenAccounts lengths not equal: ${o}`},6:()=>{if(!n.length||t.length!==n.length)return`no rewardTokenAccounts or rewardInfos and rewardTokenAccounts lengths not equal: ${o}`}};return(r=i[e])==null?void 0:r.call(i)},vn={"Standard SPL":0,"Option tokens":1},Ut={[Ou.toString()]:3,[Nu.toString()]:4,[Mu.toString()]:5,[ti.toString()]:6,[an.FARM_PROGRAM_ID_V3.toString()]:3,[an.FARM_PROGRAM_ID_V4.toString()]:4,[an.FARM_PROGRAM_ID_V5.toString()]:5,[an.FARM_PROGRAM_ID_V6.toString()]:6};var Oa=_([q("instruction")]),Na=_([q("instruction")]),Ym=_([k("rewardState"),k("rewardOpenTime"),k("rewardEndTime"),k("rewardLastUpdateTime"),k("totalReward"),k("totalRewardEmissioned"),k("rewardClaimed"),k("rewardPerSecond"),le("accRewardPerShare"),F("rewardVault"),F("rewardMint"),F("rewardSender"),k("rewardType"),Z(k(),15,"padding")]),Xm=_([k("state"),k("nonce"),F("lpVault"),F("rewardVault"),F(),F(),k(),k(),k("totalReward"),le("perShareReward"),k("lastSlot"),k("perSlotReward")]),Qm=_([k("state"),k("nonce"),F("lpVault"),F("rewardVaultA"),k("totalRewardA"),le("perShareRewardA"),k("perSlotRewardA"),q("option"),F("rewardVaultB"),ge(7),k("totalRewardB"),le("perShareRewardB"),k("perSlotRewardB"),k("lastSlot"),F()]),Hm=_([k(),k("state"),k("nonce"),k("validRewardTokenNum"),le("rewardMultiplier"),k("rewardPeriodMax"),k("rewardPeriodMin"),k("rewardPeriodExtend"),F("lpMint"),F("lpVault"),Z(Ym,5,"rewardInfos"),F("creator"),F(),Z(k(),32,"padding")]),Wu=new Proxy(Xm,{get(p,e,t){return e==="decode"?(...n)=>{let o=p.decode(...n);return V(M({},o),{version:3,rewardInfos:[{rewardVault:o.rewardVault,totalReward:o.totalReward,perSlotReward:o.perSlotReward,perShareReward:o.perShareReward}]})}:Reflect.get(p,e,t)}}),qu=new Proxy(Qm,{get(p,e,t){return e==="decode"?(...n)=>{let o=p.decode(...n);return V(M({},o),{version:5,rewardInfos:[{rewardVault:o.rewardVaultA,totalReward:o.totalRewardA,perSlotReward:o.perSlotRewardA,perShareReward:o.perShareRewardA},{rewardVault:o.rewardVaultB,totalReward:o.totalRewardB,perSlotReward:o.perSlotRewardB,perShareReward:o.perShareRewardB}]})}:Reflect.get(p,e,t)}}),ai=new Proxy(Hm,{get(p,e,t){return e==="decode"?(...n)=>{let o=p.decode(...n);return V(M({},o),{version:6,rewardInfos:o.rewardInfos.map(i=>{var r;return V(M({},i),{rewardType:((r=Object.entries(vn).find(a=>String(a[1])===i.rewardType.toString()))!=null?r:["Standard SPL"])[0]})})})}:Reflect.get(p,e,t)}}),Zm=_([k("isSet"),k("rewardPerSecond"),k("rewardOpenTime"),k("rewardEndTime"),k("rewardType")]),Ma=_([q("instruction"),k("nonce"),Z(Zm,5,"rewardTimeInfo")]),Fa=_([q("instruction"),k("rewardReopenTime"),k("rewardEndTime"),k("rewardPerSecond")]),va=_([q("instruction"),k("isSet"),k("rewardPerSecond"),k("rewardOpenTime"),k("rewardEndTime"),k("rewardType")]),xg=_([k("state"),F("id"),F("owner"),k("deposited"),Z(k(),1,"rewardDebts")]),La=_([k("state"),F("id"),F("owner"),k("deposited"),Z(le(),1,"rewardDebts"),k(""),k("voteLockedBalance"),Z(k(),15)]),Sg=_([k("state"),F("id"),F("owner"),k("deposited"),Z(k(),2,"rewardDebts")]),Uu=_([k("state"),F("id"),F("owner"),k("deposited"),Z(le(),2,"rewardDebts"),Z(k(),17)]),Gu=_([k(),k("state"),F("id"),F("owner"),k("deposited"),Z(le(),5,"rewardDebts"),Z(k(),16)]),Gt=_([q("instruction"),k("amount")]),jm=_([F("mint"),F("grantAuthority"),k("baselineVoteWeightScaledFactor"),k("maxExtraLockupVoteWeightScaledFactor"),k("lockupSaturationSecs"),ku("digitShift"),Z(q(),7,"reserved1"),Z(k(),7,"reserved2")]),$m=_([ge(8),F("governanceProgramId"),F("realm"),F("realmGoverningTokenMint"),F("realmAuthority"),Z(q(),32,"reserved1"),Z(jm,4,"votingMints"),Io("timeOffset"),q("bump"),Z(q(),7,"reserved2"),Z(k(),11,"reserved3")]),Jm=_([Io("startTime"),Io("endTime"),q("kind"),Z(q(),15,"reserved")]),ed=_([Z(Jm,1,"lockup"),k("amountDeposited_native"),k("amountInitiallyLockedNative"),Ze("isUsed"),Ze("allowClawback"),q("votingMintConfigIdx"),Z(q(),29,"reserved")]),td=_([ge(8),F("voterAuthority"),F("registrar"),Z(ed,32,"deposits"),q("voterBump"),q("voterWweightRecordBump"),Z(q(),94,"reserved")]);import ld from"bn.js";import{ComputeBudgetProgram as zu,Keypair as Xu,PublicKey as nd,Transaction as Qu,TransactionMessage as od,VersionedTransaction as Hu}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as id}from"@solana/spl-token";var Yu=we("Raydium_txUtil"),Zu=1644;function cr(p){let e=[],t=[];return p.microLamports&&(e.push(zu.setComputeUnitPrice({microLamports:p.microLamports})),t.push(z.SetComputeUnitPrice)),p.units&&(e.push(zu.setComputeUnitLimit({units:p.units})),t.push(z.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function xo(p,e){var n,o;let t=e!=null?e:"confirmed";return(o=await((n=p.getLatestBlockhash)==null?void 0:n.call(p,{commitment:t})))==null?void 0:o.blockhash}async function lr(p,e){return p.getSignatureStatuses([e]),new Promise((t,n)=>{let o=setTimeout(n,6e4);p.onSignature(e,i=>{if(clearTimeout(o),!i.err){t("");return}n(Object.assign(i.err,{txId:e}))},"confirmed")})}function _a(p,e){p.length<1&&Yu.logWithError(`no instructions provided: ${p.toString()}`),e.length<1&&Yu.logWithError(`no signers provided:, ${e.toString()}`);let t=new Qu;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...p);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Zu}catch{return!1}}function me(p,e){let[t,n]=nd.findProgramAddressSync(p,e);return{publicKey:t,nonce:n}}function si({instructions:p,payer:e,signers:t}){return _a(p,[e,...t])}function ui({instructions:p,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=Xu.generate().publicKey.toString()}){let i=new od({payerKey:e,recentBlockhash:n,instructions:p}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Hu(i).serialize()).toString("base64").length<Zu}catch{return!1}}var rd=p=>Buffer.isBuffer(p)?p:p instanceof Uint8Array?Buffer.from(p.buffer,p.byteOffset,p.byteLength):Buffer.from(p),ad=p=>{let e=p.serialize({requireAllSignatures:!1,verifySignatures:!1});p instanceof Hu&&(e=rd(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function ro(p){let e=[];return p.forEach(t=>{t instanceof Qu&&(t.recentBlockhash||(t.recentBlockhash=id.toBase58()),t.feePayer||(t.feePayer=Xu.generate().publicKey)),e.push(ad(t))}),console.log("simulate tx string:",e),e}import{PublicKey as sd}from"@solana/web3.js";import ud from"bn.js";function cd(p){return typeof p=="object"&&p!==null&&![We,Ce,sd,Ke,ud,Rt,yt].some(e=>typeof e=="object"&&p instanceof e)}function kt(p){return typeof p=="string"?da(p):Array.isArray(p)?p.map(e=>kt(e)):cd(p)?Object.fromEntries(Object.entries(p).map(([e,t])=>[e,kt(t)])):p}var md=we("Raydium.farm.util");function ci({programId:p,poolId:e,mint:t,type:n}){let{publicKey:o}=me([e.toBuffer(),t.toBuffer(),Buffer.from(n==="lpVault"?"lp_vault_associated_seed":n==="rewardVault"?"reward_vault_associated_seed":"","utf-8")],p);return o}function Ht({programId:p,poolId:e,owner:t,version:n}){let{publicKey:o}=me([e.toBuffer(),t.toBuffer(),Buffer.from(n===6?"farmer_info_associated_seed":"staker_info_v2_associated_seed","utf-8")],p);return o}var ju=({programId:p,poolId:e})=>me([e.toBuffer()],p);function $u(p){return{isSet:new ld(1),rewardPerSecond:ce(p.perSecond),rewardOpenTime:ce(p.openTime),rewardEndTime:ce(p.endTime),rewardType:ce(vn[p.rewardType])}}function Va(p){return ce(p.endTime).sub(ce(p.openTime)).mul(ce(p.perSecond))}function li(p){let e=ri[p];return e||md.logWithError("invalid version",p),e}import{PublicKey as Pe,SystemProgram as Ju,SYSVAR_CLOCK_PUBKEY as mi,SYSVAR_RENT_PUBKEY as fd,TransactionInstruction as Zt}from"@solana/web3.js";import ec from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as OP,createAssociatedTokenAccountIdempotentInstruction as NP,TOKEN_PROGRAM_ID as kn}from"@solana/spl-token";import{PublicKey as dd}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pd}from"@solana/spl-token";function ne(p,e,t){return me([p.toBuffer(),(t!=null?t:pd).toBuffer(),e.toBuffer()],new dd("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}var yd=we("Raydium_farm_instruction"),GP={voterStakeRegistryCreateVoter:Buffer.from([6,24,245,52,243,255,148,25]),voterStakeRegistryCreateDepositEntry:Buffer.from([185,131,167,186,159,125,19,67]),voterStakeRegistryDeposit:Buffer.from([242,35,198,137,82,225,242,182]),voterStakeRegistryWithdraw:Buffer.from([183,18,70,156,148,109,161,34]),voterStakeRegistryUpdateVoterWeightRecord:Buffer.from([45,185,3,36,109,190,115,169])};function di(p){let{version:e,id:t,ledger:n,programId:o,owner:i}=p,r={3:9,5:10}[e];r||yd.logWithError(`invalid farm pool version: ${e}`);let a=Buffer.alloc(Oa.span);Oa.encode({instruction:r},a);let u=[K({pubkey:t}),K({pubkey:n}),K({pubkey:i,isWritable:!1}),K({pubkey:Ju.programId,isWritable:!1}),K({pubkey:fd,isWritable:!1})];return{instruction:new Zt({programId:o,keys:u,data:a}),instructionType:z.FarmV3CreateLedger}}function tc(p){var n;let e=Buffer.alloc(Ma.span);Ma.encode({instruction:0,nonce:new ec(p.nonce),rewardTimeInfo:p.rewardInfoConfig},e);let t=[...la,K({pubkey:p.farmId}),K({pubkey:p.farmAuthority,isWritable:!1}),K({pubkey:p.lpVault}),K({pubkey:p.lpMint,isWritable:!1}),K({pubkey:p.lockVault}),K({pubkey:p.lockMint,isWritable:!1}),K({pubkey:(n=p.lockUserAccount)!=null?n:ft}),K({pubkey:p.owner,isWritable:!1,isSigner:!0})];for(let o of p.rewardInfo)t.push(K({pubkey:o.rewardMint,isWritable:!1}),K({pubkey:o.rewardVault}),K({pubkey:o.userRewardToken}));return{instruction:new Zt({programId:p.programId,keys:t,data:e}),instructionType:z.FarmV6Create}}function nc(p){let e=Buffer.alloc(Na.span);Na.encode({instruction:5},e);let t=[K({pubkey:kn,isWritable:!1}),K({pubkey:p.id}),K({pubkey:p.authority,isWritable:!1}),K({pubkey:p.lpVault,isWritable:!1}),K({pubkey:p.rewardVault}),K({pubkey:p.userRewardToken}),K({pubkey:p.owner,isWritable:!1,isSigner:!0})];return{instruction:new Zt({programId:p.programId,keys:t,data:e}),instructionType:z.FarmV6CreatorWithdraw}}function Ea({payer:p,rewardVault:e,userRewardTokenPub:t,farmKeys:n,rewardInfo:o}){let i=Buffer.alloc(Fa.span);Fa.encode({instruction:3,rewardReopenTime:ce(o.openTime),rewardEndTime:ce(o.endTime),rewardPerSecond:ce(o.perSecond)},i);let r=[K({pubkey:kn,isWritable:!1}),K({pubkey:n.id}),K({pubkey:n.lpVault,isWritable:!1}),K({pubkey:e}),K({pubkey:t}),K({pubkey:p,isWritable:!1,isSigner:!0})];return new Zt({programId:n.programId,keys:r,data:i})}function Da({payer:p,userRewardTokenPub:e,farmKeys:t,rewardVault:n,rewardInfo:o}){let i=Buffer.alloc(va.span);va.encode({instruction:4,isSet:new ec(1),rewardPerSecond:ce(o.perSecond),rewardOpenTime:ce(o.openTime),rewardEndTime:ce(o.endTime),rewardType:ce(vn[o.rewardType])},i);let r=[...la,K({pubkey:t.id}),K({pubkey:t.authority,isWritable:!1}),K({pubkey:o.mint,isWritable:!1}),K({pubkey:n}),K({pubkey:e}),K({pubkey:p,isWritable:!1,isSigner:!0})];return new Zt({programId:t.programId,keys:r,data:i})}function pi(p){let{farmInfo:e,farmKeys:t,lpAccount:n,rewardAccounts:o,owner:i,amount:r}=p,[a,u]=[new Pe(e.programId),new Pe(e.id)],s=Ht({programId:a,poolId:u,owner:i,version:6}),c=Buffer.alloc(Gt.span);Gt.encode({instruction:2,amount:ce(r)},c);let l=[K({pubkey:kn,isWritable:!1}),K({pubkey:u}),K({pubkey:new Pe(t.authority),isWritable:!1}),K({pubkey:new Pe(t.lpVault)}),K({pubkey:s}),K({pubkey:i,isWritable:!1,isSigner:!0}),K({pubkey:n})];for(let m=0;m<t.rewardInfos.length;m++)l.push(K({pubkey:new Pe(t.rewardInfos[m].vault)})),l.push(K({pubkey:o[m]}));return new Zt({programId:a,keys:l,data:c})}function fi(p){let{farmInfo:e,farmKeys:t,lpAccount:n,rewardAccounts:o,owner:i,amount:r,userAuxiliaryLedgers:a}=p,[u,s]=[new Pe(e.programId),new Pe(e.id)],c=Ht({programId:u,poolId:s,owner:i,version:5}),l=Buffer.alloc(Gt.span);Gt.encode({instruction:12,amount:ce(r)},l);let m=[K({pubkey:s}),K({pubkey:new Pe(t.authority),isWritable:!1}),K({pubkey:c}),K({pubkey:i,isWritable:!1,isSigner:!0}),K({pubkey:n}),K({pubkey:new Pe(t.lpVault)}),K({pubkey:o[0]}),K({pubkey:new Pe(t.rewardInfos[0].vault)}),K({pubkey:mi,isWritable:!1}),K({pubkey:kn,isWritable:!1})];for(let d=1;d<t.rewardInfos.length;d++)m.push(K({pubkey:o[d]})),m.push(K({pubkey:new Pe(t.rewardInfos[d].vault)}));if(a)for(let d of a)m.push(K({pubkey:d}));return new Zt({programId:u,keys:m,data:l})}function oc(p){let{farmInfo:e,farmKeys:t,lpAccount:n,rewardAccounts:o,owner:i,amount:r,userAuxiliaryLedgers:a}=p,[u,s]=[new Pe(e.programId),new Pe(e.id)],c=_([q("instruction"),k("amount")]),l=[K({pubkey:s}),K({pubkey:new Pe(t.authority),isWritable:!1}),K({pubkey:a[0]}),K({pubkey:i,isSigner:!0,isWritable:!1}),K({pubkey:n}),K({pubkey:new Pe(t.lpVault)}),K({pubkey:o[0]}),K({pubkey:new Pe(t.rewardInfos[0].vault)}),K({pubkey:mi,isWritable:!1}),K({pubkey:kn,isWritable:!1}),K({pubkey:o[1]}),K({pubkey:new Pe(t.rewardInfos[1].vault)})],m=Buffer.alloc(c.span);return c.encode({instruction:2,amount:r},m),new Zt({keys:l,programId:u,data:m})}function yi(p){let{farmInfo:e,farmKeys:t,lpAccount:n,rewardAccounts:o,owner:i,amount:r,userAuxiliaryLedgers:a}=p,[u,s]=[new Pe(e.programId),new Pe(e.id)],c=Ht({programId:u,poolId:s,owner:i,version:3}),l=Buffer.alloc(Gt.span);Gt.encode({instruction:11,amount:ce(r)},l);let m=[K({pubkey:s}),K({pubkey:new Pe(t.authority),isWritable:!1}),K({pubkey:c}),K({pubkey:i,isWritable:!1,isSigner:!0}),K({pubkey:n}),K({pubkey:new Pe(t.lpVault)}),K({pubkey:o[0]}),K({pubkey:new Pe(t.rewardInfos[0].vault)}),K({pubkey:mi,isWritable:!1}),K({pubkey:kn,isWritable:!1})];if(a)for(let d of a)m.push(K({pubkey:d}));return new Zt({programId:u,keys:m,data:l})}function ic(p){let{farmInfo:e,farmKeys:t,lpAccount:n,rewardAccounts:o,owner:i,amount:r,userAuxiliaryLedgers:a}=p,[u,s]=[new Pe(e.programId),new Pe(e.id)],c=Ht({programId:u,poolId:s,owner:i,version:3}),l=Buffer.alloc(Gt.span);Gt.encode({instruction:10,amount:ce(r)},l);let m=[K({pubkey:s}),K({pubkey:new Pe(t.authority),isWritable:!1}),K({pubkey:c}),K({pubkey:i,isWritable:!1,isSigner:!0}),K({pubkey:n}),K({pubkey:new Pe(t.lpVault)}),K({pubkey:o[0]}),K({pubkey:new Pe(t.rewardInfos[0].vault)}),K({pubkey:mi,isWritable:!1}),K({pubkey:kn,isWritable:!1})];if(a)for(let d of a)m.push(K({pubkey:d}));return new Zt({programId:u,keys:m,data:l})}function rc(p){let{farmInfo:e,farmKeys:t,lpAccount:n,rewardAccounts:o,owner:i,amount:r,userAuxiliaryLedgers:a}=p,[u,s]=[new Pe(e.programId),new Pe(e.id)],c=Ht({programId:u,poolId:s,owner:i,version:5}),l=Buffer.alloc(Gt.span);Gt.encode({instruction:11,amount:ce(r)},l);let m=[K({pubkey:s}),K({pubkey:new Pe(t.authority),isWritable:!1}),K({pubkey:c}),K({pubkey:i,isWritable:!1,isSigner:!0}),K({pubkey:n}),K({pubkey:new Pe(t.lpVault)}),K({pubkey:o[0]}),K({pubkey:new Pe(t.rewardInfos[0].vault)}),K({pubkey:mi,isWritable:!1}),K({pubkey:kn,isWritable:!1})];for(let d=1;d<t.rewardInfos.length;d++)m.push(K({pubkey:o[d]})),m.push(K({pubkey:new Pe(t.rewardInfos[d].vault)}));if(a)for(let d of a)m.push(K({pubkey:d}));return new Zt({programId:u,keys:m,data:l})}function ac(p){let{farmInfo:e,farmKeys:t,lpAccount:n,rewardAccounts:o,owner:i,amount:r}=p,[a,u]=[new Pe(e.programId),new Pe(e.id)],s=Ht({programId:a,poolId:u,owner:i,version:6}),c=Buffer.alloc(Gt.span);Gt.encode({instruction:1,amount:ce(r)},c);let l=[K({pubkey:kn,isWritable:!1}),K({pubkey:Ju.programId,isWritable:!1}),K({pubkey:u}),K({pubkey:new Pe(t.authority),isWritable:!1}),K({pubkey:new Pe(t.lpVault)}),K({pubkey:s}),K({pubkey:i,isWritable:!1,isSigner:!0}),K({pubkey:n})];for(let m=0;m<t.rewardInfos.length;m++)l.push(K({pubkey:new Pe(t.rewardInfos[m].vault)})),l.push(K({pubkey:o[m]}));return new Zt({programId:a,keys:l,data:c})}var bd=_([qe("mintAuthorityOption"),F("mintAuthority"),k("supply"),q("decimals"),q("isInitialized"),qe("freezeAuthorityOption"),F("freezeAuthority")]);import{TOKEN_PROGRAM_ID as oA}from"@solana/spl-token";import{PublicKey as sA}from"@solana/web3.js";var bi=p=>new We({mint:p.address,decimals:p.decimals,symbol:p.symbol,name:p.name}),rt=o=>{var i=o,{amount:p,isRaw:e,name:t}=i,n=De(i,["amount","isRaw","name"]);return new Ce(new We({mint:wt(n.address).toBase58(),decimals:n.decimals,symbol:n.symbol,name:t}),p,e,t)};var Tt=o=>{var i=o,{address:p,programId:e,decimals:t}=i,n=De(i,["address","programId","decimals"]);return M({chainId:101,address:wt(p).toBase58(),programId:e,logoURI:"",symbol:"",name:"",decimals:t,tags:[],extensions:n.extensions||{}},n)},_n=p=>p?V(M({},p),{transferFeeConfigAuthority:p.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:p.withdrawWithheldAuthority.toBase58(),withheldAmount:p.withheldAmount.toString(),olderTransferFee:V(M({},p.olderTransferFee),{epoch:p.olderTransferFee.epoch.toString(),maximumFee:p.olderTransferFee.maximumFee.toString()}),newerTransferFee:V(M({},p.newerTransferFee),{epoch:p.newerTransferFee.epoch.toString(),maximumFee:p.newerTransferFee.maximumFee.toString()})}):void 0;import{PublicKey as ue,SystemProgram as hl}from"@solana/web3.js";import{createTransferInstruction as Il,TOKEN_PROGRAM_ID as Te,TOKEN_2022_PROGRAM_ID as Ln,createAssociatedTokenAccountIdempotentInstruction as zo,createSyncNativeInstruction as Bl,createTransferCheckedInstruction as _p}from"@solana/spl-token";import ye from"bn.js";import xe from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Dn,TOKEN_2022_PROGRAM_ID as Wn,TOKEN_PROGRAM_ID as Eo}from"@solana/spl-token";import{PublicKey as G}from"@solana/web3.js";import dt from"bn.js";import qn from"decimal.js";import{PublicKey as Ro,sendAndConfirmTransaction as za,SystemProgram as gd,Transaction as gi,TransactionMessage as Pi,VersionedTransaction as Ai}from"@solana/web3.js";import Pd from"axios";import{PublicKey as Wa,AddressLookupTableAccount as Co}from"@solana/web3.js";async function qa({connection:p,address:e,cluster:t="mainnet"}){let n=await pt(p,[...new Set(e.map(i=>i.toString()))].map(i=>new Wa(i))),o={};for(let i=0;i<e.length;i++){let r=n[i],a=e[i];if(!r)continue;let u=new Co({key:a,state:Co.deserialize(r.data)});o[a.toString()]=u,t==="devnet"?Ko[a.toString()]=u:So[a.toString()]=u}return o}var So={},Ua=async p=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(So[e])return So;let t=new Wa(e),n=await p.getAccountInfo(t);return n&&(So[e]=new Co({key:t,state:Co.deserialize(n.data)})),So},Ko={},Ga=async p=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ko[e])return Ko;let t=new Wa(e),n=await p.getAccountInfo(t);return n&&(Ko[e]=new Co({key:t,state:Co.deserialize(n.data)})),Ko};var mr=2e3,dr=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 n;let e=(await Pd.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(n=e==null?void 0:e[15])!=null?n:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:n}=cr(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(gd.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Ro(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(z.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let n=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(n))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:n=[],instructionTypes:o=[],endInstructionTypes:i=[],lookupTableAddress:r=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...n),this.instructionTypes.push(...o),this.endInstructionTypes.push(...i),this.lookupTableAddress.push(...r.filter(a=>a!==Ro.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:n}){return e===0?await this.buildV0(V(M({},t||{}),{lookupTableAddress:n})):this.build(t)}build(e){var n;let t=new gi;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((n=this.owner)==null?void 0:n.signer)&&!this.signers.some(o=>o.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async o=>{var c;let{recentBlockHash:i,skipPreflight:r=!0,sendAndConfirm:a,notSendToRpc:u}=o||{},s=i!=null?i:await xo(this.connection,this.blockhashCommitment);if(t.recentBlockhash=s,this.signers.length&&t.sign(...this.signers),ro([t]),(c=this.owner)!=null&&c.isKeyPair)return{txId:a?await za(this.connection,t,this.signers.find(m=>m.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:r}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:r}),signedTx:t};if(this.signAllTransactions){let l=await this.signAllTransactions([t]);if(this.signers.length)for(let m of l)try{m.sign(...this.signers)}catch{}return{txId:u?"":await this.connection.sendRawTransaction(l[0].serialize(),{skipPreflight:r}),signedTx:l[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var s;let{extraPreBuildData:t=[],extInfo:n}=e,{transaction:o}=this.build(n),i=t.filter(c=>c.transaction.instructions.length>0),r=[o,...i.map(c=>c.transaction)],a=[this.signers,...i.map(c=>c.signers)],u=[...this.instructionTypes,...i.map(c=>c.instructionTypes).flat()];return(s=this.owner)!=null&&s.signer&&a.forEach(c=>{c.some(l=>l.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{