UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 453 kB
var Ul=Object.defineProperty,Gl=Object.defineProperties;var zl=Object.getOwnPropertyDescriptors;var Zi=Object.getOwnPropertySymbols;var ru=Object.prototype.hasOwnProperty,au=Object.prototype.propertyIsEnumerable;var iu=(p,e,t)=>e in p?Ul(p,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):p[e]=t,M=(p,e)=>{for(var t in e||(e={}))ru.call(e,t)&&iu(p,t,e[t]);if(Zi)for(var t of Zi(e))au.call(e,t)&&iu(p,t,e[t]);return p},V=(p,e)=>Gl(p,zl(e));var Ee=(p,e)=>{var t={};for(var n in p)ru.call(p,n)&&e.indexOf(n)<0&&(t[n]=p[n]);if(p!=null&&Zi)for(var n of Zi(p))e.indexOf(n)<0&&au.call(p,n)&&(t[n]=p[n]);return t};import{merge as sf}from"lodash";import _l from"axios";import{PublicKey as cu}from"@solana/web3.js";import{get as su,set as Xl}from"lodash";var aa=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}},uu={},Yl={};function we(p){let e=su(uu,p);if(!e){let t=su(Yl,p);e=new aa({name:p,logLevel:t}),Xl(uu,p,e)}return e}import{MINT_SIZE as Ql,TOKEN_PROGRAM_ID as Hl,getTransferFeeConfig as Zl,unpackMint as jl}from"@solana/spl-token";var sa=we("Raydium_accountInfo_util");async function pt(p,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:i=100}=M({batchRequest:!1},t),r=ua(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=ua(u,10);a=(await(await Promise.all(s.map(async l=>await p._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&sa.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"&&sa.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(d[0],"base64"),executable:f,lamports:y,owner:new cu(b),rentEpoch:g}}return null})))}else try{a=await Promise.all(r.map(u=>p.getMultipleAccountsInfo(u,o)))}catch(u){u instanceof Error&&sa.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 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:wt(u)})),t),o={};for(let u of n){if(!u.accountInfo||u.accountInfo.data.length<Ql){console.log("invalid mint account",u.pubkey.toBase58());continue}let s=jl(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)||Hl,feeConfig:(a=Zl(s))!=null?a:void 0})}return o[cu.default.toBase58()]=o[H.toBase58()],o}import Yn from"bn.js";import eC from"decimal.js";import rm from"big.js";import Ji from"bn.js";import $l from"toformat";var Jl=$l,Ho=Jl;import $i from"big.js";import tm from"bn.js";import nm from"decimal.js-light";import Zo from"bn.js";var lu=9007199254740991;function ce(p){let e=we("Raydium_parseBigNumberish");if(p instanceof Zo)return p;if(typeof p=="string"){if(p.match(/^-?[0-9]+$/))return new Zo(p);e.logWithError(`invalid BigNumberish string: ${p}`)}return typeof p=="number"?(p%1&&e.logWithError(`BigNumberish number underflow: ${p}`),(p>=lu||p<=-lu)&&e.logWithError(`BigNumberish number overflow: ${p}`),new Zo(String(p))):typeof p=="bigint"?new Zo(p.toString()):(e.error(`invalid BigNumberish value: ${p}`),new Zo(0))}var ji=we("module/fraction"),ca=Ho($i),jo=Ho(nm),om={[0]:jo.ROUND_DOWN,[1]:jo.ROUND_HALF_UP,[2]:jo.ROUND_UP},im={[0]:$i.roundDown,[1]:$i.roundHalfUp,[2]:$i.roundUp},Se=class{constructor(e,t=new tm(1)){this.numerator=ce(e),this.denominator=ce(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(ce(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(ce(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(ce(e));return new Se(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof Se?e:new Se(ce(e));return new Se(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||ji.logWithError(`${e} is not an integer.`),e<=0&&ji.logWithError(`${e} is not positive.`),jo.set({precision:e+1,rounding:om[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)||ji.logWithError(`${e} is not an integer.`),e<0&&ji.logWithError(`${e} is negative.`),ca.DP=e,ca.RM=im[n]||1,new ca(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var am=we("Raydium_amount"),mu=Ho(rm);function sm(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")):am.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 Ji(0),a=la.pow(new Ji(t.decimals));if(o)r=ce(n);else{let u=new Ji(0),s=new Ji(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[c,l]=sm(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 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 mu.DP=this.token.decimals,new mu(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as um}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as du}from"@solana/spl-token";var Nn={chainId:101,address:um.default.toBase58(),programId:du.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:du.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 ya}from"@solana/web3.js";import{PublicKey as ze,SystemProgram as pu,SYSVAR_RENT_PUBKEY as cm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as lm}from"@solana/spl-token";function K({pubkey:p,isSigner:e=!1,isWritable:t=!0}){return{pubkey:p,isWritable:t,isSigner:e}}var ma=[K({pubkey:lm,isWritable:!1}),K({pubkey:pu.programId,isWritable:!1}),K({pubkey:cm,isWritable:!1})];function da({publicKey:p,transformSol:e}){let t=pa(p.toString());if(t instanceof ze)return e&&t.equals(ft)?H:t;if(e&&t.toString()===ft.toBase58())return H;if(typeof t=="string"){if(t===ze.default.toBase58())return ze.default;try{return new ze(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function pa(p){try{return new ze(p)}catch{return p}}var nn=new ze("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),St=new ze("SysvarRent111111111111111111111111111111111"),fu=new ze("SysvarC1ock11111111111111111111111111111111"),pn=new ze("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),mm=new ze("Sysvar1nstructions1111111111111111111111111"),fa=pu.programId,Hf=new ze("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Zf=new ze("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),jf=new ze("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),$f=new ze("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Jf=new ze("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ey=new ze("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ty=new ze("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ny=new ze("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),oy=new ze("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),iy=new ze("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ry=new ze("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),H=new ze("So11111111111111111111111111111111111111112"),ft=ze.default;function wt(p){return da({publicKey:p,transformSol:!0})}var ba=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:i=!1,isToken2022:r=!1}){if(e===ft.toBase58()||e instanceof ya&&ft.equals(e)){this.decimals=xt.decimals,this.symbol=xt.symbol,this.name=xt.name,this.mint=new ya(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?ya.default:da({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},De=ba;De.WSOL=new ba(V(M({},xt),{mint:xt.address}));var ga=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},er=ga;er.SOL=new ga(Nn);import dm from"bn.js";var yu=new Se(new dm(100)),yt=class extends Se{toSignificant(e=5,t,n){return this.mul(yu).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(yu).toFixed(e,t,n)}};var pm=we("Raydium_price"),Rt=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(Pa(n.decimals),Pa(o.decimals))}get raw(){return new Se(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&&pm.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 xm}from"@solana/web3.js";import wu,{isBN as ku}from"bn.js";import{bits as fm,BitStructure as Iy,blob as ym,Blob as By,cstr as xy,f32 as Sy,f32be as Ky,f64 as Cy,f64be as Ry,greedy as Ly,Layout as bm,ns64 as Oy,ns64be as Ny,nu64 as gm,nu64be as My,offset as Pm,s16 as Fy,s16be as vy,s24 as _y,s24be as Vy,s32 as Am,s32be as Ey,s40 as Dy,s40be as Wy,s48 as qy,s48be as Uy,s8 as Gy,seq as wm,struct as zy,Structure as km,u16 as Tm,u16be as Xy,u24 as Yy,u24be as Qy,u32 as hm,u32be as Hy,u40 as Zy,u40be as jy,u48 as $y,u48be as Jy,u8 as Im,UInt as Bm,union as eb,Union as tb,unionLayoutDiscriminator as nb,utf8 as ob}from"@solana/buffer-layout";var tr=bm,bu=km;var Aa=Bm;var gu=Im,ot=Tm;var $o=hm;var Pu=gm;var it=Am;var Au=wm;var ge=ym;var wa=fm,ka=Pm;var eo=class extends tr{constructor(t,n,o){super(t,o);this.blob=ge(t),this.signed=n}decode(t,n=0){let o=new wu(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 wu(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},nr=class extends tr{constructor(t){super(8,t);this._lower=wa($o(),!1),this._upper=wa($o(),!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 Aa(1,p)}function We(p){return new Aa(4,p)}function w(p){return new eo(8,!1,p)}function le(p){return new eo(16,!1,p)}function Tu(p){return new eo(1,!0,p)}function ho(p){return new eo(8,!0,p)}function hu(p){return new eo(16,!0,p)}var to=class extends tr{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 xm(e),e=>e.toBuffer(),p)}function Qe(p){return new to(gu(),Sm,Km,p)}function Sm(p){if(p===0)return!1;if(p===1)return!0;throw new Error("Invalid bool: "+p)}function Km(p){return p?1:0}function Iu(p,e){let t=$o("length"),n=_([t,j(p,ka(t,-t.span),"values")]);return new to(n,({values:o})=>o,o=>({values:o}),e)}function Cm(p){let e=$o("length"),t=_([e,ge(ka(e,-e.span),"data")]);return new to(t,({data:n})=>n,n=>({data:n}),p)}function Nt(p){return new to(Cm(),e=>e.toString("utf-8"),e=>Buffer.from(e,"utf-8"),p)}var Ta=class extends bu{decode(e,t){return super.decode(e,t)}};function _(p,e,t){return new Ta(p,e,t)}function j(p,e,t){let n,o=typeof e=="number"?e:ku(e)?e.toNumber():new Proxy(e,{get(i,r){if(!n){let a=Reflect.get(i,"count");n=ku(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 Au(p,o,t)}var An=_([F("mint"),F("owner"),w("amount"),We("delegateOption"),F("delegate"),q("state"),We("isNativeOption"),w("isNative"),w("delegatedAmount"),We("closeAuthorityOption"),F("closeAuthority")]);import{Keypair as Mm,PublicKey as Ru}from"@solana/web3.js";import Fm from"bn.js";import{TOKEN_PROGRAM_ID as vm}from"@solana/spl-token";function Rm(p){return p instanceof Uint8Array||p!=null&&typeof p=="object"&&p.constructor.name==="Uint8Array"}function ha(p,...e){if(!Rm(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 Ia(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 Bu(p,e){ha(p);let t=e.outputLen;if(p.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var ir=p=>new DataView(p.buffer,p.byteOffset,p.byteLength),on=(p,e)=>p<<32-e|p>>>e;var gb=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Lm(p){if(typeof p!="string")throw new Error(`utf8ToBytes expected string, got ${typeof p}`);return new Uint8Array(new TextEncoder().encode(p))}function Ba(p){return typeof p=="string"&&(p=Lm(p)),ha(p),p}var or=class{clone(){return this._cloneInto()}},Pb={}.toString;function xu(p){let e=n=>p().update(Ba(n)).digest(),t=p();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>p(),e}function Om(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 Su=(p,e,t)=>p&e^~p&t,Ku=(p,e,t)=>p&e^p&t^e&t,rr=class extends or{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=ir(this.buffer)}update(e){Ia(this);let{view:t,buffer:n,blockLen:o}=this;e=Ba(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=ir(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){Ia(this),Bu(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;Om(n,o-8,BigInt(this.length*8),i),this.process(n,0);let a=ir(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 Nm=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),xa=class extends rr{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+Su(a,u,s)+Nm[l]+Fn[l]|0,y=(on(n,2)^on(n,13)^on(n,22))+Ku(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 Cu=xu(()=>new xa);function Lu({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:Ru.default,amount:new Fm(String(e.lamports)),isNative:!0,programId:e.owner}),{tokenAccounts:n,tokenAccountRawInfos:o}}function He({fromPublicKey:p,programId:e=vm,assignSeed:t}){let n=t?btoa(t).slice(0,32):Mm.generate().publicKey.toBase58().slice(0,32);return{publicKey:_m(p,n,e),seed:n}}function _m(p,e,t){let n=Buffer.concat([p.toBuffer(),Buffer.from(e),t.toBuffer()]),o=Cu(n);return new Ru(o)}import{PublicKey as Vm,SystemProgram as Em}from"@solana/web3.js";import Dm from"bn.js";import{createCloseAccountInstruction as Wm,createInitializeAccountInstruction as qm,createTransferInstruction as Um,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 Sa(p){let{mint:e,tokenAccount:t,owner:n,programId:o=Io}=p;return qm(t,e,n,o)}function wn(p){let{tokenAccount:e,payer:t,multiSigners:n=[],owner:o,programId:i=Io}=p;return Wm(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=ce(t).add(new Dm(a)),s=He({fromPublicKey:o,programId:Io});return{addresses:{newAccount:s.publicKey},signers:[],instructions:[Em.createAccountWithSeed({fromPubkey:o,basePubkey:o,seed:s.seed,newAccountPubkey:s.publicKey,lamports:u.toNumber(),space:An.span,programId:Io}),Sa({mint:new Vm(xt.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 Ou({source:p,destination:e,owner:t,amount:n,multiSigners:o=[],tokenProgram:i=Io}){return Um(p,e,t,BigInt(String(n)),o,i)}import{PublicKey as Ca}from"@solana/web3.js";import{PublicKey as se}from"@solana/web3.js";var Nu=new se("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Mu=new se("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Fu=new se("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Jo=new se("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),og=new se("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),vu=new se("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Ka=new se("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ar=new se("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),ig=new se("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),_u=new se("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),kn=new se("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ei=new se("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),sr=new se("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),no=new se("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),rg=new se("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Vu=new se("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Gm=new se("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),zm=new se("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Xm=new se("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ym=new se("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),oo=new se("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Eu=new se("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ag=new se("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ti=new se("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ur=new se("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ct=new se("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),sg=new se("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),ug=new se("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),cg=new se("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),lg=new se("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),mg=new se("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),ni={IDO_PROGRAM_ID_V1:Gm,IDO_PROGRAM_ID_V2:zm,IDO_PROGRAM_ID_V3:Xm,IDO_PROGRAM_ID_V4:Ym};var rn={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 wg}from"@solana/spl-token";var kg=we("Raydium_farm_config"),Du=new Ca("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Wu=new Ca("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Tg=new Ca("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX"),cr={3:qu,5:Uu,6:ii},oi={3:Oa,5:Gu,6:zu},Ra=p=>[3,4,5,6].indexOf(p)!==-1,La=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={[Nu.toString()]:3,[Mu.toString()]:4,[Fu.toString()]:5,[Jo.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 Na=_([q("instruction")]),Ma=_([q("instruction")]),Qm=_([w("rewardState"),w("rewardOpenTime"),w("rewardEndTime"),w("rewardLastUpdateTime"),w("totalReward"),w("totalRewardEmissioned"),w("rewardClaimed"),w("rewardPerSecond"),le("accRewardPerShare"),F("rewardVault"),F("rewardMint"),F("rewardSender"),w("rewardType"),j(w(),15,"padding")]),Hm=_([w("state"),w("nonce"),F("lpVault"),F("rewardVault"),F(),F(),w(),w(),w("totalReward"),le("perShareReward"),w("lastSlot"),w("perSlotReward")]),Zm=_([w("state"),w("nonce"),F("lpVault"),F("rewardVaultA"),w("totalRewardA"),le("perShareRewardA"),w("perSlotRewardA"),q("option"),F("rewardVaultB"),ge(7),w("totalRewardB"),le("perShareRewardB"),w("perSlotRewardB"),w("lastSlot"),F()]),jm=_([w(),w("state"),w("nonce"),w("validRewardTokenNum"),le("rewardMultiplier"),w("rewardPeriodMax"),w("rewardPeriodMin"),w("rewardPeriodExtend"),F("lpMint"),F("lpVault"),j(Qm,5,"rewardInfos"),F("creator"),F(),j(w(),32,"padding")]),qu=new Proxy(Hm,{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)}}),Uu=new Proxy(Zm,{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)}}),ii=new Proxy(jm,{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)}}),$m=_([w("isSet"),w("rewardPerSecond"),w("rewardOpenTime"),w("rewardEndTime"),w("rewardType")]),Fa=_([q("instruction"),w("nonce"),j($m,5,"rewardTimeInfo")]),va=_([q("instruction"),w("rewardReopenTime"),w("rewardEndTime"),w("rewardPerSecond")]),_a=_([q("instruction"),w("isSet"),w("rewardPerSecond"),w("rewardOpenTime"),w("rewardEndTime"),w("rewardType")]),Cg=_([w("state"),F("id"),F("owner"),w("deposited"),j(w(),1,"rewardDebts")]),Oa=_([w("state"),F("id"),F("owner"),w("deposited"),j(le(),1,"rewardDebts"),w(""),w("voteLockedBalance"),j(w(),15)]),Rg=_([w("state"),F("id"),F("owner"),w("deposited"),j(w(),2,"rewardDebts")]),Gu=_([w("state"),F("id"),F("owner"),w("deposited"),j(le(),2,"rewardDebts"),j(w(),17)]),zu=_([w(),w("state"),F("id"),F("owner"),w("deposited"),j(le(),5,"rewardDebts"),j(w(),16)]),Gt=_([q("instruction"),w("amount")]),Jm=_([F("mint"),F("grantAuthority"),w("baselineVoteWeightScaledFactor"),w("maxExtraLockupVoteWeightScaledFactor"),w("lockupSaturationSecs"),Tu("digitShift"),j(q(),7,"reserved1"),j(w(),7,"reserved2")]),ed=_([ge(8),F("governanceProgramId"),F("realm"),F("realmGoverningTokenMint"),F("realmAuthority"),j(q(),32,"reserved1"),j(Jm,4,"votingMints"),ho("timeOffset"),q("bump"),j(q(),7,"reserved2"),j(w(),11,"reserved3")]),td=_([ho("startTime"),ho("endTime"),q("kind"),j(q(),15,"reserved")]),nd=_([j(td,1,"lockup"),w("amountDeposited_native"),w("amountInitiallyLockedNative"),Qe("isUsed"),Qe("allowClawback"),q("votingMintConfigIdx"),j(q(),29,"reserved")]),od=_([ge(8),F("voterAuthority"),F("registrar"),j(nd,32,"deposits"),q("voterBump"),q("voterWweightRecordBump"),j(q(),94,"reserved")]);import dd from"bn.js";import{ComputeBudgetProgram as Xu,Keypair as Qu,PublicKey as id,Transaction as Hu,TransactionMessage as rd,VersionedTransaction as Zu}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ad}from"@solana/spl-token";var Yu=we("Raydium_txUtil"),ju=1644;function lr(p){let e=[],t=[];return p.microLamports&&(e.push(Xu.setComputeUnitPrice({microLamports:p.microLamports})),t.push(z.SetComputeUnitPrice)),p.units&&(e.push(Xu.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 mr(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 Va(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 Hu;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...p);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<ju}catch{return!1}}function me(p,e){let[t,n]=id.findProgramAddressSync(p,e);return{publicKey:t,nonce:n}}function ri({instructions:p,payer:e,signers:t}){return Va(p,[e,...t])}function ai({instructions:p,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=Qu.generate().publicKey.toString()}){let i=new rd({payerKey:e,recentBlockhash:n,instructions:p}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Zu(i).serialize()).toString("base64").length<ju}catch{return!1}}var sd=p=>Buffer.isBuffer(p)?p:p instanceof Uint8Array?Buffer.from(p.buffer,p.byteOffset,p.byteLength):Buffer.from(p),ud=p=>{let e=p.serialize({requireAllSignatures:!1,verifySignatures:!1});p instanceof Zu&&(e=sd(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 Hu&&(t.recentBlockhash||(t.recentBlockhash=ad.toBase58()),t.feePayer||(t.feePayer=Qu.generate().publicKey)),e.push(ud(t))}),console.log("simulate tx string:",e),e}import{PublicKey as cd}from"@solana/web3.js";import ld from"bn.js";function md(p){return typeof p=="object"&&p!==null&&![De,Ke,cd,Se,ld,Rt,yt].some(e=>typeof e=="object"&&p instanceof e)}function kt(p){return typeof p=="string"?pa(p):Array.isArray(p)?p.map(e=>kt(e)):md(p)?Object.fromEntries(Object.entries(p).map(([e,t])=>[e,kt(t)])):p}var pd=we("Raydium.farm.util");function si({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 $u=({programId:p,poolId:e})=>me([e.toBuffer()],p);function Ju(p){return{isSet:new dd(1),rewardPerSecond:ce(p.perSecond),rewardOpenTime:ce(p.openTime),rewardEndTime:ce(p.endTime),rewardType:ce(_n[p.rewardType])}}function Ea(p){return ce(p.endTime).sub(ce(p.openTime)).mul(ce(p.perSecond))}function ui(p){let e=oi[p];return e||pd.logWithError("invalid version",p),e}import{PublicKey as Pe,SystemProgram as ec,SYSVAR_CLOCK_PUBKEY as ci,SYSVAR_RENT_PUBKEY as bd,TransactionInstruction as Zt}from"@solana/web3.js";import tc from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as FP,createAssociatedTokenAccountIdempotentInstruction as vP,TOKEN_PROGRAM_ID as Tn}from"@solana/spl-token";import{PublicKey as fd}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as yd}from"@solana/spl-token";function ne(p,e,t){return me([p.toBuffer(),(t!=null?t:yd).toBuffer(),e.toBuffer()],new fd("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}var gd=we("Raydium_farm_instruction"),YP={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 li(p){let{version:e,id:t,ledger:n,programId:o,owner:i}=p,r={3:9,5:10}[e];r||gd.logWithError(`invalid farm pool version: ${e}`);let a=Buffer.alloc(Na.span);Na.encode({instruction:r},a);let u=[K({pubkey:t}),K({pubkey:n}),K({pubkey:i,isWritable:!1}),K({pubkey:ec.programId,isWritable:!1}),K({pubkey:bd,isWritable:!1})];return{instruction:new Zt({programId:o,keys:u,data:a}),instructionType:z.FarmV3CreateLedger}}function nc(p){var n;let e=Buffer.alloc(Fa.span);Fa.encode({instruction:0,nonce:new tc(p.nonce),rewardTimeInfo:p.rewardInfoConfig},e);let t=[...ma,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 oc(p){let e=Buffer.alloc(Ma.span);Ma.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 Da({payer:p,rewardVault:e,userRewardTokenPub:t,farmKeys:n,rewardInfo:o}){let i=Buffer.alloc(va.span);va.encode({instruction:3,rewardReopenTime:ce(o.openTime),rewardEndTime:ce(o.endTime),rewardPerSecond:ce(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 Wa({payer:p,userRewardTokenPub:e,farmKeys:t,rewardVault:n,rewardInfo:o}){let i=Buffer.alloc(_a.span);_a.encode({instruction:4,isSet:new tc(1),rewardPerSecond:ce(o.perSecond),rewardOpenTime:ce(o.openTime),rewardEndTime:ce(o.endTime),rewardType:ce(_n[o.rewardType])},i);let r=[...ma,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 mi(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: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 di(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:ci,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 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=_([q("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:ci,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 pi(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:ci,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 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: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:ci,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 ac(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:ci,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 sc(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:Tn,isWritable:!1}),K({pubkey:ec.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 Pd=_([We("mintAuthorityOption"),F("mintAuthority"),w("supply"),q("decimals"),q("isInitialized"),We("freezeAuthorityOption"),F("freezeAuthority")]);import{TOKEN_PROGRAM_ID as aA}from"@solana/spl-token";import{PublicKey as lA}from"@solana/web3.js";var fi=p=>new De({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=Ee(i,["amount","isRaw","name"]);return new Ke(new De({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=Ee(i,["address","programId","decimals"]);return M({chainId:101,address:wt(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 ue,SystemProgram as Il}from"@solana/web3.js";import{createTransferInstruction as Bl,TOKEN_PROGRAM_ID as Te,TOKEN_2022_PROGRAM_ID as On,createAssociatedTokenAccountIdempotentInstruction as Uo,createSyncNativeInstruction as xl,createTransferCheckedInstruction as Dp}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 dt from"bn.js";import Wn from"decimal.js";import{PublicKey as Co,sendAndConfirmTransaction as Xa,SystemProgram as Ad,Transaction as yi,TransactionMessage as bi,VersionedTransaction as gi}from"@solana/web3.js";import wd from"axios";import{PublicKey as qa,AddressLookupTableAccount as Ko}from"@solana/web3.js";async function Ua({connection:p,address:e,cluster:t="mainnet"}){let n=await pt(p,[...new Set(e.map(i=>i.toString()))].map(i=>new qa(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={},Ga=async p=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(xo[e])return xo;let t=new qa(e),n=await p.getAccountInfo(t);return n&&(xo[e]=new Ko({key:t,state:Ko.deserialize(n.data)})),xo},So={},za=async p=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(So[e])return So;let t=new qa(e),n=await p.getAccountInfo(t);return n&&(So[e]=new Ko({key:t,state:Ko.deserialize(n.data)})),So};var dr=2e3,pr=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 wd.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}=lr(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Ad.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 yi;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 Xa(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)}),{