UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 449 kB
var Ol=Object.defineProperty,Nl=Object.defineProperties;var Ml=Object.getOwnPropertyDescriptors;var Xi=Object.getOwnPropertySymbols;var $s=Object.prototype.hasOwnProperty,Js=Object.prototype.propertyIsEnumerable;var js=(p,e,t)=>e in p?Ol(p,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):p[e]=t,M=(p,e)=>{for(var t in e||(e={}))$s.call(e,t)&&js(p,t,e[t]);if(Xi)for(var t of Xi(e))Js.call(e,t)&&js(p,t,e[t]);return p},V=(p,e)=>Nl(p,Ml(e));var Ve=(p,e)=>{var t={};for(var n in p)$s.call(p,n)&&e.indexOf(n)<0&&(t[n]=p[n]);if(p!=null&&Xi)for(var n of Xi(p))e.indexOf(n)<0&&Js.call(p,n)&&(t[n]=p[n]);return t};import{merge as qp}from"lodash";import xl from"axios";import{PublicKey as nu}from"@solana/web3.js";import{get as eu,set as Fl}from"lodash";var ta=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}},tu={},vl={};function we(p){let e=eu(tu,p);if(!e){let t=eu(vl,p);e=new ta({name:p,logLevel:t}),Fl(tu,p,e)}return e}import{MINT_SIZE as _l,TOKEN_PROGRAM_ID as Vl,getTransferFeeConfig as El,unpackMint as Dl}from"@solana/spl-token";var na=we("Raydium_accountInfo_util");async function ft(p,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:i=100}=M({batchRequest:!1},t),r=oa(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=oa(u,10);a=(await(await Promise.all(s.map(async l=>await p._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&na.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"&&na.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(d[0],"base64"),executable:f,lamports:y,owner:new nu(b),rentEpoch:g}}return null})))}else try{a=await Promise.all(r.map(u=>p.getMultipleAccountsInfo(u,o)))}catch(u){u instanceof Error&&na.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${u.message}`)}return a.flat()}async function Oe(p,e,t){let n=await ft(p,e.map(o=>o.pubkey),t);return e.map((o,i)=>V(M({},o),{accountInfo:n[i]}))}async function Jn({connection:p,mints:e,config:t}){var i,r,a;if(e.length===0)return{};let n=await Oe(p,e.map(u=>({pubkey:kt(u)})),t),o={};for(let u of n){if(!u.accountInfo||u.accountInfo.data.length<_l){console.log("invalid mint account",u.pubkey.toBase58());continue}let s=Dl(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)||Vl,feeConfig:(a=El(s))!=null?a:void 0})}return o[nu.default.toBase58()]=o[$.toBase58()],o}import Yn from"bn.js";import gK from"decimal.js";import Hl from"big.js";import Qi from"bn.js";import Wl from"toformat";var ql=Wl,Ho=ql;import Hi from"big.js";import Gl from"bn.js";import zl from"decimal.js-light";import Qo from"bn.js";var ou=9007199254740991;function ue(p){let e=we("Raydium_parseBigNumberish");if(p instanceof Qo)return p;if(typeof p=="string"){if(p.match(/^-?[0-9]+$/))return new Qo(p);e.logWithError(`invalid BigNumberish string: ${p}`)}return typeof p=="number"?(p%1&&e.logWithError(`BigNumberish number underflow: ${p}`),(p>=ou||p<=-ou)&&e.logWithError(`BigNumberish number overflow: ${p}`),new Qo(String(p))):typeof p=="bigint"?new Qo(p.toString()):(e.error(`invalid BigNumberish value: ${p}`),new Qo(0))}var Yi=we("module/fraction"),ia=Ho(Hi),Zo=Ho(zl),Xl={[0]:Zo.ROUND_DOWN,[1]:Zo.ROUND_HALF_UP,[2]:Zo.ROUND_UP},Yl={[0]:Hi.roundDown,[1]:Hi.roundHalfUp,[2]:Hi.roundUp},Se=class{constructor(e,t=new Gl(1)){this.numerator=ue(e),this.denominator=ue(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new Se(this.denominator,this.numerator)}add(e){let t=e instanceof Se?e:new Se(ue(e));return this.denominator.eq(t.denominator)?new Se(this.numerator.add(t.numerator),this.denominator):new Se(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof Se?e:new Se(ue(e));return this.denominator.eq(t.denominator)?new Se(this.numerator.sub(t.numerator),this.denominator):new Se(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof Se?e:new Se(ue(e));return new Se(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof Se?e:new Se(ue(e));return new Se(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||Yi.logWithError(`${e} is not an integer.`),e<=0&&Yi.logWithError(`${e} is not positive.`),Zo.set({precision:e+1,rounding:Xl[n]});let o=new Zo(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)||Yi.logWithError(`${e} is not an integer.`),e<0&&Yi.logWithError(`${e} is negative.`),ia.DP=e,ia.RM=Yl[n]||1,new ia(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Ql=we("Raydium_amount"),iu=Ho(Hl);function Zl(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")):Ql.logWithError(`invalid number string, num: ${p}`)}else t=p;return[t,n.slice(0,e)||n]}var Ke=class extends Se{constructor(t,n,o=!0,i){let r=new Qi(0),a=ra.pow(new Qi(t.decimals));if(o)r=ue(n);else{let u=new Qi(0),s=new Qi(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[c,l]=Zl(n.toString(),t.decimals);u=ue(c),s=ue(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 Ke(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new Ke(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 iu.DP=this.token.decimals,new iu(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as jl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ru}from"@solana/spl-token";var Nn={chainId:101,address:jl.default.toBase58(),programId:ru.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Bt={chainId:101,address:"So11111111111111111111111111111111111111112",programId:ru.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 ca}from"@solana/web3.js";import{PublicKey as Ge,SystemProgram as au,SYSVAR_RENT_PUBKEY as $l}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jl}from"@solana/spl-token";function K({pubkey:p,isSigner:e=!1,isWritable:t=!0}){return{pubkey:p,isWritable:t,isSigner:e}}var aa=[K({pubkey:Jl,isWritable:!1}),K({pubkey:au.programId,isWritable:!1}),K({pubkey:$l,isWritable:!1})];function sa({publicKey:p,transformSol:e}){let t=ua(p.toString());if(t instanceof Ge)return e&&t.equals(yt)?$:t;if(e&&t.toString()===yt.toBase58())return $;if(typeof t=="string"){if(t===Ge.default.toBase58())return Ge.default;try{return new Ge(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function ua(p){try{return new Ge(p)}catch{return p}}var nn=new Ge("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Kt=new Ge("SysvarRent111111111111111111111111111111111"),Lf=new Ge("SysvarC1ock11111111111111111111111111111111"),pn=new Ge("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),em=new Ge("Sysvar1nstructions1111111111111111111111111"),su=au.programId,Of=new Ge("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Nf=new Ge("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Mf=new Ge("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ff=new Ge("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),vf=new Ge("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),_f=new Ge("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Vf=new Ge("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ef=new Ge("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Df=new Ge("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Wf=new Ge("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),qf=new Ge("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),$=new Ge("So11111111111111111111111111111111111111112"),yt=Ge.default;function kt(p){return sa({publicKey:p,transformSol:!0})}var la=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:i=!1,isToken2022:r=!1}){if(e===yt.toBase58()||e instanceof ca&&yt.equals(e)){this.decimals=Bt.decimals,this.symbol=Bt.symbol,this.name=Bt.name,this.mint=new ca(Bt.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?ca.default:sa({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},Ee=la;Ee.WSOL=new la(V(M({},Bt),{mint:Bt.address}));var ma=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},Zi=ma;Zi.SOL=new ma(Nn);import tm from"bn.js";var uu=new Se(new tm(100)),bt=class extends Se{toSignificant(e=5,t,n){return this.mul(uu).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(uu).toFixed(e,t,n)}};var nm=we("Raydium_price"),Ct=class extends Se{constructor(t){let{baseToken:n,quoteToken:o,numerator:i,denominator:r}=t;super(i,r);this.baseToken=n,this.quoteToken=o,this.scalar=new Se(da(n.decimals),da(o.decimals))}get raw(){return new Se(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Ct({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&nm.logWithError("mul token not equals");let n=super.mul(t);return new Ct({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 fm}from"@solana/web3.js";import du,{isBN as pu}from"bn.js";import{bits as om,BitStructure as sy,blob as im,Blob as uy,cstr as cy,f32 as ly,f32be as my,f64 as dy,f64be as py,greedy as fy,Layout as rm,ns64 as yy,ns64be as by,nu64 as gy,nu64be as Py,offset as am,s16 as Ay,s16be as wy,s24 as ky,s24be as Ty,s32 as sm,s32be as hy,s40 as Iy,s40be as By,s48 as xy,s48be as Sy,s8 as Ky,seq as um,struct as Cy,Structure as cm,u16 as lm,u16be as Ry,u24 as Ly,u24be as Oy,u32 as mm,u32be as Ny,u40 as My,u40be as Fy,u48 as vy,u48be as _y,u8 as dm,UInt as pm,union as Vy,Union as Ey,unionLayoutDiscriminator as Dy,utf8 as Wy}from"@solana/buffer-layout";var ji=rm,cu=cm;var pa=pm;var lu=dm,ot=lm;var jo=mm;var it=sm;var mu=um;var ge=im;var fa=om,ya=am;var eo=class extends ji{constructor(t,n,o){super(t,o);this.blob=ge(t),this.signed=n}decode(t,n=0){let o=new du(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 du(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},$i=class extends ji{constructor(t){super(8,t);this._lower=fa(jo(),!1),this._upper=fa(jo(),!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 D(p){return new pa(1,p)}function De(p){return new pa(4,p)}function w(p){return new eo(8,!1,p)}function ce(p){return new eo(16,!1,p)}function fu(p){return new eo(1,!0,p)}function ho(p){return new eo(8,!0,p)}function yu(p){return new eo(16,!0,p)}var to=class extends ji{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 to(ge(32),e=>new fm(e),e=>e.toBuffer(),p)}function He(p){return new to(lu(),ym,bm,p)}function ym(p){if(p===0)return!1;if(p===1)return!0;throw new Error("Invalid bool: "+p)}function bm(p){return p?1:0}function bu(p,e){let t=jo("length"),n=_([t,Z(p,ya(t,-t.span),"values")]);return new to(n,({values:o})=>o,o=>({values:o}),e)}function gm(p){let e=jo("length"),t=_([e,ge(ya(e,-e.span),"data")]);return new to(t,({data:n})=>n,n=>({data:n}),p)}function Mt(p){return new to(gm(),e=>e.toString("utf-8"),e=>Buffer.from(e,"utf-8"),p)}var ba=class extends cu{decode(e,t){return super.decode(e,t)}};function _(p,e,t){return new ba(p,e,t)}function Z(p,e,t){let n,o=typeof e=="number"?e:pu(e)?e.toNumber():new Proxy(e,{get(i,r){if(!n){let a=Reflect.get(i,"count");n=pu(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 mu(p,o,t)}var An=_([F("mint"),F("owner"),w("amount"),De("delegateOption"),F("delegate"),D("state"),De("isNativeOption"),w("isNative"),w("delegatedAmount"),De("closeAuthorityOption"),F("closeAuthority")]);import{Keypair as Tm,PublicKey as Tu}from"@solana/web3.js";import hm from"bn.js";import{TOKEN_PROGRAM_ID as Im}from"@solana/spl-token";function Pm(p){return p instanceof Uint8Array||p!=null&&typeof p=="object"&&p.constructor.name==="Uint8Array"}function ga(p,...e){if(!Pm(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 Pa(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 gu(p,e){ga(p);let t=e.outputLen;if(p.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var er=p=>new DataView(p.buffer,p.byteOffset,p.byteLength),on=(p,e)=>p<<32-e|p>>>e;var tb=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Am(p){if(typeof p!="string")throw new Error(`utf8ToBytes expected string, got ${typeof p}`);return new Uint8Array(new TextEncoder().encode(p))}function Aa(p){return typeof p=="string"&&(p=Am(p)),ga(p),p}var Ji=class{clone(){return this._cloneInto()}},nb={}.toString;function Pu(p){let e=n=>p().update(Aa(n)).digest(),t=p();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>p(),e}function wm(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 Au=(p,e,t)=>p&e^~p&t,wu=(p,e,t)=>p&e^p&t^e&t,tr=class extends Ji{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=er(this.buffer)}update(e){Pa(this);let{view:t,buffer:n,blockLen:o}=this;e=Aa(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=er(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){Pa(this),gu(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;wm(n,o-8,BigInt(this.length*8),i),this.process(n,0);let a=er(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 km=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]),Mn=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Fn=new Uint32Array(64),wa=class extends tr{constructor(){super(64,32,8,!1),this.A=Mn[0]|0,this.B=Mn[1]|0,this.C=Mn[2]|0,this.D=Mn[3]|0,this.E=Mn[4]|0,this.F=Mn[5]|0,this.G=Mn[6]|0,this.H=Mn[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)Fn[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){let m=Fn[l-15],d=Fn[l-2],f=on(m,7)^on(m,18)^m>>>3,y=on(d,17)^on(d,19)^d>>>10;Fn[l]=y+Fn[l-7]+f+Fn[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=on(a,6)^on(a,11)^on(a,25),d=c+m+Au(a,u,s)+km[l]+Fn[l]|0,y=(on(n,2)^on(n,13)^on(n,22))+wu(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(){Fn.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var ku=Pu(()=>new wa);function hu({owner:p,solAccountResp:e,tokenAccountResp:t}){let n=[],o=[];for(let{pubkey:i,account:r}of t.value){let a=An.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:Tu.default,amount:new hm(String(e.lamports)),isNative:!0,programId:e.owner}),{tokenAccounts:n,tokenAccountRawInfos:o}}function Qe({fromPublicKey:p,programId:e=Im,assignSeed:t}){let n=t?btoa(t).slice(0,32):Tm.generate().publicKey.toBase58().slice(0,32);return{publicKey:Bm(p,n,e),seed:n}}function Bm(p,e,t){let n=Buffer.concat([p.toBuffer(),Buffer.from(e),t.toBuffer()]),o=ku(n);return new Tu(o)}import{PublicKey as xm,SystemProgram as Sm}from"@solana/web3.js";import Km from"bn.js";import{createCloseAccountInstruction as Cm,createInitializeAccountInstruction as Rm,createTransferInstruction as Lm,TOKEN_PROGRAM_ID as Io}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 ka(p){let{mint:e,tokenAccount:t,owner:n,programId:o=Io}=p;return Rm(t,e,n,o)}function wn(p){let{tokenAccount:e,payer:t,multiSigners:n=[],owner:o,programId:i=Io}=p;return Cm(e,t,o,n,i)}async function vn(p){let{connection:e,amount:t,commitment:n,payer:o,owner:i,skipCloseAccount:r}=p,a=await e.getMinimumBalanceForRentExemption(An.span,n),u=ue(t).add(new Km(a)),s=Qe({fromPublicKey:o,programId:Io});return{addresses:{newAccount:s.publicKey},signers:[],instructions:[Sm.createAccountWithSeed({fromPubkey:o,basePubkey:o,seed:s.seed,newAccountPubkey:s.publicKey,lamports:u.toNumber(),space:An.span,programId:Io}),ka({mint:new xm(Bt.address),tokenAccount:s.publicKey,owner:i,programId:Io})],instructionTypes:[z.CreateAccount,z.InitAccount],endInstructionTypes:r?[]:[z.CloseAccount],endInstructions:r?[]:[wn({tokenAccount:s.publicKey,payer:o,owner:i})]}}function Iu({source:p,destination:e,owner:t,amount:n,multiSigners:o=[],tokenProgram:i=Io}){return Lm(p,e,t,BigInt(String(n)),o,i)}import{PublicKey as ha}from"@solana/web3.js";import{PublicKey as me}from"@solana/web3.js";var Bu=new me("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),xu=new me("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Su=new me("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),$o=new me("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Wb=new me("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ku=new me("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Ta=new me("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),nr=new me("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),qb=new me("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Cu=new me("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),kn=new me("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Jo=new me("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),or=new me("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),no=new me("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ub=new me("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ru=new me("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),oo=new me("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Lu=new me("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Gb=new me("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ei=new me("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ir=new me("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ct=new me("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),zb=new me("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Xb=new me("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Yb=new me("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Hb=new me("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Qb=new me("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var rn={OPEN_BOOK_PROGRAM:new me("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new me("Ray1111111111111111111111111111111111111111"),AMM_V4:new me("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new me("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new me("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new me("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new me("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new me("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new me("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new me("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new me("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new me("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:me.default,Router:new me("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new me("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new me("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new me("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new me("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new me("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new me("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new me("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new me("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new me("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new me("Ray1111111111111111111111111111111111111111")};import{NATIVE_MINT as ig}from"@solana/spl-token";var rg=we("Raydium_farm_config"),Ou=new ha("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Nu=new ha("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var ag=new ha("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX"),rr={3:Mu,5:Fu,6:ni},ti={3:xa,5:vu,6:_u},Ia=p=>[3,4,5,6].indexOf(p)!==-1,Ba=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)},_n={"Standard SPL":0,"Option tokens":1},Ut={[Bu.toString()]:3,[xu.toString()]:4,[Su.toString()]:5,[$o.toString()]:6,[rn.FARM_PROGRAM_ID_V3.toString()]:3,[rn.FARM_PROGRAM_ID_V4.toString()]:4,[rn.FARM_PROGRAM_ID_V5.toString()]:5,[rn.FARM_PROGRAM_ID_V6.toString()]:6};var Sa=_([D("instruction")]),Ka=_([D("instruction")]),Om=_([w("rewardState"),w("rewardOpenTime"),w("rewardEndTime"),w("rewardLastUpdateTime"),w("totalReward"),w("totalRewardEmissioned"),w("rewardClaimed"),w("rewardPerSecond"),ce("accRewardPerShare"),F("rewardVault"),F("rewardMint"),F("rewardSender"),w("rewardType"),Z(w(),15,"padding")]),Nm=_([w("state"),w("nonce"),F("lpVault"),F("rewardVault"),F(),F(),w(),w(),w("totalReward"),ce("perShareReward"),w("lastSlot"),w("perSlotReward")]),Mm=_([w("state"),w("nonce"),F("lpVault"),F("rewardVaultA"),w("totalRewardA"),ce("perShareRewardA"),w("perSlotRewardA"),D("option"),F("rewardVaultB"),ge(7),w("totalRewardB"),ce("perShareRewardB"),w("perSlotRewardB"),w("lastSlot"),F()]),Fm=_([w(),w("state"),w("nonce"),w("validRewardTokenNum"),ce("rewardMultiplier"),w("rewardPeriodMax"),w("rewardPeriodMin"),w("rewardPeriodExtend"),F("lpMint"),F("lpVault"),Z(Om,5,"rewardInfos"),F("creator"),F(),Z(w(),32,"padding")]),Mu=new Proxy(Nm,{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)}}),Fu=new Proxy(Mm,{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)}}),ni=new Proxy(Fm,{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(_n).find(a=>String(a[1])===i.rewardType.toString()))!=null?r:["Standard SPL"])[0]})})})}:Reflect.get(p,e,t)}}),vm=_([w("isSet"),w("rewardPerSecond"),w("rewardOpenTime"),w("rewardEndTime"),w("rewardType")]),Ca=_([D("instruction"),w("nonce"),Z(vm,5,"rewardTimeInfo")]),Ra=_([D("instruction"),w("rewardReopenTime"),w("rewardEndTime"),w("rewardPerSecond")]),La=_([D("instruction"),w("isSet"),w("rewardPerSecond"),w("rewardOpenTime"),w("rewardEndTime"),w("rewardType")]),pg=_([w("state"),F("id"),F("owner"),w("deposited"),Z(w(),1,"rewardDebts")]),xa=_([w("state"),F("id"),F("owner"),w("deposited"),Z(ce(),1,"rewardDebts"),w(""),w("voteLockedBalance"),Z(w(),15)]),fg=_([w("state"),F("id"),F("owner"),w("deposited"),Z(w(),2,"rewardDebts")]),vu=_([w("state"),F("id"),F("owner"),w("deposited"),Z(ce(),2,"rewardDebts"),Z(w(),17)]),_u=_([w(),w("state"),F("id"),F("owner"),w("deposited"),Z(ce(),5,"rewardDebts"),Z(w(),16)]),Gt=_([D("instruction"),w("amount")]),_m=_([F("mint"),F("grantAuthority"),w("baselineVoteWeightScaledFactor"),w("maxExtraLockupVoteWeightScaledFactor"),w("lockupSaturationSecs"),fu("digitShift"),Z(D(),7,"reserved1"),Z(w(),7,"reserved2")]),Vm=_([ge(8),F("governanceProgramId"),F("realm"),F("realmGoverningTokenMint"),F("realmAuthority"),Z(D(),32,"reserved1"),Z(_m,4,"votingMints"),ho("timeOffset"),D("bump"),Z(D(),7,"reserved2"),Z(w(),11,"reserved3")]),Em=_([ho("startTime"),ho("endTime"),D("kind"),Z(D(),15,"reserved")]),Dm=_([Z(Em,1,"lockup"),w("amountDeposited_native"),w("amountInitiallyLockedNative"),He("isUsed"),He("allowClawback"),D("votingMintConfigIdx"),Z(D(),29,"reserved")]),Wm=_([ge(8),F("voterAuthority"),F("registrar"),Z(Dm,32,"deposits"),D("voterBump"),D("voterWweightRecordBump"),Z(D(),94,"reserved")]);import Zm from"bn.js";import{ComputeBudgetProgram as Vu,Keypair as Du,PublicKey as qm,Transaction as Wu,TransactionMessage as Um,VersionedTransaction as qu}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Gm}from"@solana/spl-token";var Eu=we("Raydium_txUtil"),Uu=1644;function ar(p){let e=[],t=[];return p.microLamports&&(e.push(Vu.setComputeUnitPrice({microLamports:p.microLamports})),t.push(z.SetComputeUnitPrice)),p.units&&(e.push(Vu.setComputeUnitLimit({units:p.units})),t.push(z.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Bo(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 sr(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 Oa(p,e){p.length<1&&Eu.logWithError(`no instructions provided: ${p.toString()}`),e.length<1&&Eu.logWithError(`no signers provided:, ${e.toString()}`);let t=new Wu;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...p);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Uu}catch{return!1}}function le(p,e){let[t,n]=qm.findProgramAddressSync(p,e);return{publicKey:t,nonce:n}}function oi({instructions:p,payer:e,signers:t}){return Oa(p,[e,...t])}function ii({instructions:p,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=Du.generate().publicKey.toString()}){let i=new Um({payerKey:e,recentBlockhash:n,instructions:p}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new qu(i).serialize()).toString("base64").length<Uu}catch{return!1}}var zm=p=>Buffer.isBuffer(p)?p:p instanceof Uint8Array?Buffer.from(p.buffer,p.byteOffset,p.byteLength):Buffer.from(p),Xm=p=>{let e=p.serialize({requireAllSignatures:!1,verifySignatures:!1});p instanceof qu&&(e=zm(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function io(p){let e=[];return p.forEach(t=>{t instanceof Wu&&(t.recentBlockhash||(t.recentBlockhash=Gm.toBase58()),t.feePayer||(t.feePayer=Du.generate().publicKey)),e.push(Xm(t))}),console.log("simulate tx string:",e),e}import{PublicKey as Ym}from"@solana/web3.js";import Hm from"bn.js";function Qm(p){return typeof p=="object"&&p!==null&&![Ee,Ke,Ym,Se,Hm,Ct,bt].some(e=>typeof e=="object"&&p instanceof e)}function Rt(p){return typeof p=="string"?ua(p):Array.isArray(p)?p.map(e=>Rt(e)):Qm(p)?Object.fromEntries(Object.entries(p).map(([e,t])=>[e,Rt(t)])):p}var jm=we("Raydium.farm.util");function ri({programId:p,poolId:e,mint:t,type:n}){let{publicKey:o}=le([e.toBuffer(),t.toBuffer(),Buffer.from(n==="lpVault"?"lp_vault_associated_seed":n==="rewardVault"?"reward_vault_associated_seed":"","utf-8")],p);return o}function Qt({programId:p,poolId:e,owner:t,version:n}){let{publicKey:o}=le([e.toBuffer(),t.toBuffer(),Buffer.from(n===6?"farmer_info_associated_seed":"staker_info_v2_associated_seed","utf-8")],p);return o}var Gu=({programId:p,poolId:e})=>le([e.toBuffer()],p);function zu(p){return{isSet:new Zm(1),rewardPerSecond:ue(p.perSecond),rewardOpenTime:ue(p.openTime),rewardEndTime:ue(p.endTime),rewardType:ue(_n[p.rewardType])}}function Na(p){return ue(p.endTime).sub(ue(p.openTime)).mul(ue(p.perSecond))}function ai(p){let e=ti[p];return e||jm.logWithError("invalid version",p),e}import{PublicKey as Pe,SystemProgram as Xu,SYSVAR_CLOCK_PUBKEY as si,SYSVAR_RENT_PUBKEY as ed,TransactionInstruction as Zt}from"@solana/web3.js";import Yu from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as AP,createAssociatedTokenAccountIdempotentInstruction as wP,TOKEN_PROGRAM_ID as Tn}from"@solana/spl-token";import{PublicKey as $m}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jm}from"@solana/spl-token";function ne(p,e,t){return le([p.toBuffer(),(t!=null?t:Jm).toBuffer(),e.toBuffer()],new $m("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}var td=we("Raydium_farm_instruction"),LP={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 ui(p){let{version:e,id:t,ledger:n,programId:o,owner:i}=p,r={3:9,5:10}[e];r||td.logWithError(`invalid farm pool version: ${e}`);let a=Buffer.alloc(Sa.span);Sa.encode({instruction:r},a);let u=[K({pubkey:t}),K({pubkey:n}),K({pubkey:i,isWritable:!1}),K({pubkey:Xu.programId,isWritable:!1}),K({pubkey:ed,isWritable:!1})];return{instruction:new Zt({programId:o,keys:u,data:a}),instructionType:z.FarmV3CreateLedger}}function Hu(p){var n;let e=Buffer.alloc(Ca.span);Ca.encode({instruction:0,nonce:new Yu(p.nonce),rewardTimeInfo:p.rewardInfoConfig},e);let t=[...aa,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:yt}),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 Qu(p){let e=Buffer.alloc(Ka.span);Ka.encode({instruction:5},e);let t=[K({pubkey:Tn,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 Ma({payer:p,rewardVault:e,userRewardTokenPub:t,farmKeys:n,rewardInfo:o}){let i=Buffer.alloc(Ra.span);Ra.encode({instruction:3,rewardReopenTime:ue(o.openTime),rewardEndTime:ue(o.endTime),rewardPerSecond:ue(o.perSecond)},i);let r=[K({pubkey:Tn,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 Fa({payer:p,userRewardTokenPub:e,farmKeys:t,rewardVault:n,rewardInfo:o}){let i=Buffer.alloc(La.span);La.encode({instruction:4,isSet:new Yu(1),rewardPerSecond:ue(o.perSecond),rewardOpenTime:ue(o.openTime),rewardEndTime:ue(o.endTime),rewardType:ue(_n[o.rewardType])},i);let r=[...aa,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 ci(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=Qt({programId:a,poolId:u,owner:i,version:6}),c=Buffer.alloc(Gt.span);Gt.encode({instruction:2,amount:ue(r)},c);let l=[K({pubkey:Tn,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 li(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=Qt({programId:u,poolId:s,owner:i,version:5}),l=Buffer.alloc(Gt.span);Gt.encode({instruction:12,amount:ue(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:si,isWritable:!1}),K({pubkey:Tn,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 Zu(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=_([D("instruction"),w("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:si,isWritable:!1}),K({pubkey:Tn,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 mi(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=Qt({programId:u,poolId:s,owner:i,version:3}),l=Buffer.alloc(Gt.span);Gt.encode({instruction:11,amount:ue(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:si,isWritable:!1}),K({pubkey:Tn,isWritable:!1})];if(a)for(let d of a)m.push(K({pubkey:d}));return new Zt({programId:u,keys:m,data:l})}function ju(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=Qt({programId:u,poolId:s,owner:i,version:3}),l=Buffer.alloc(Gt.span);Gt.encode({instruction:10,amount:ue(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:si,isWritable:!1}),K({pubkey:Tn,isWritable:!1})];if(a)for(let d of a)m.push(K({pubkey:d}));return new Zt({programId:u,keys:m,data:l})}function $u(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=Qt({programId:u,poolId:s,owner:i,version:5}),l=Buffer.alloc(Gt.span);Gt.encode({instruction:11,amount:ue(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:si,isWritable:!1}),K({pubkey:Tn,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 Ju(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=Qt({programId:a,poolId:u,owner:i,version:6}),c=Buffer.alloc(Gt.span);Gt.encode({instruction:1,amount:ue(r)},c);let l=[K({pubkey:Tn,isWritable:!1}),K({pubkey:Xu.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 nd=_([De("mintAuthorityOption"),F("mintAuthority"),w("supply"),D("decimals"),D("isInitialized"),De("freezeAuthorityOption"),F("freezeAuthority")]);import{TOKEN_PROGRAM_ID as GP}from"@solana/spl-token";import{PublicKey as HP}from"@solana/web3.js";var di=p=>new Ee({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=Ve(i,["amount","isRaw","name"]);return new Ke(new Ee({mint:kt(n.address).toBase58(),decimals:n.decimals,symbol:n.symbol,name:t}),p,e,t)};var lt=o=>{var i=o,{address:p,programId:e,decimals:t}=i,n=Ve(i,["address","programId","decimals"]);return M({chainId:101,address:kt(p).toBase58(),programId:e,logoURI:"",symbol:"",name:"",decimals:t,tags:[],extensions:n.extensions||{}},n)},Vn=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 se,SystemProgram as bl}from"@solana/web3.js";import{createTransferInstruction as gl,TOKEN_PROGRAM_ID as Te,TOKEN_2022_PROGRAM_ID as On,createAssociatedTokenAccountIdempotentInstruction as Uo,createSyncNativeInstruction as Pl,createTransferCheckedInstruction as Bp}from"@solana/spl-token";import ye from"bn.js";import Be from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Dn,TOKEN_2022_PROGRAM_ID as bn,TOKEN_PROGRAM_ID as _o}from"@solana/spl-token";import{PublicKey as G}from"@solana/web3.js";import pt from"bn.js";import Wn from"decimal.js";import{PublicKey as Co,sendAndConfirmTransaction as Da,SystemProgram as od,Transaction as pi,TransactionMessage as fi,VersionedTransaction as yi}from"@solana/web3.js";import id from"axios";import{PublicKey as va,AddressLookupTableAccount as Ko}from"@solana/web3.js";async function _a({connection:p,address:e,cluster:t="mainnet"}){let n=await ft(p,[...new Set(e.map(i=>i.toString()))].map(i=>new va(i))),o={};for(let i=0;i<e.length;i++){let r=n[i],a=e[i];if(!r)continue;let u=new Ko({key:a,state:Ko.deserialize(r.data)});o[a.toString()]=u,t==="devnet"?So[a.toString()]=u:xo[a.toString()]=u}return o}var xo={},Va=async p=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(xo[e])return xo;let t=new va(e),n=await p.getAccountInfo(t);return n&&(xo[e]=new Ko({key:t,state:Ko.deserialize(n.data)})),xo},So={},Ea=async p=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(So[e])return So;let t=new va(e),n=await p.getAccountInfo(t);return n&&(So[e]=new Ko({key:t,state:Ko.deserialize(n.data)})),So};var ur=2e3,cr=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 id.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}=ar(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(od.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Co(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!==Co.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 pi;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 Bo(this.connection,this.blockhashCommitment);if(t.recentBlockhash=s,this.signers.length&&t.sign(...this.signers),io([t]),(c=this.owner)!=null&&c.isKeyPair)return{txId:a?await Da(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)}),{builder:this,transactions:r,signers:a,instructionTypes:u,execute:async c=>{var g;let{sequentially:l,onTxUpdate:m,skipTxCount:d=0,recentBlockHash:f,skipPreflight:y=!0}=c||{},b=f!=null?f:await Bo(this.connection,this.blockhashCommitment);if((g=this.owner)!=null&&g.isKeyPair){if(l){let A=[],k=0;for(let h of r){if(++k,k<=d)continue;l