UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 97 kB
var oi=Object.defineProperty,ii=Object.defineProperties;var ri=Object.getOwnPropertyDescriptors;var bt=Object.getOwnPropertySymbols;var _n=Object.prototype.hasOwnProperty,En=Object.prototype.propertyIsEnumerable;var Vn=(o,e,t)=>e in o?oi(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,N=(o,e)=>{for(var t in e||(e={}))_n.call(e,t)&&Vn(o,t,e[t]);if(bt)for(var t of bt(e))En.call(e,t)&&Vn(o,t,e[t]);return o},W=(o,e)=>ii(o,ri(e));var Ae=(o,e)=>{var t={};for(var i in o)_n.call(o,i)&&e.indexOf(i)<0&&(t[i]=o[i]);if(o!=null&&bt)for(var i of bt(o))e.indexOf(i)<0&&En.call(o,i)&&(t[i]=o[i]);return t};import{PublicKey as Pi}from"@solana/web3.js";import zn,{isBN as Yn}from"bn.js";import{bits as ai,BitStructure as Ls,blob as si,Blob as Os,cstr as Ns,f32 as Ms,f32be as Fs,f64 as vs,f64be as Vs,greedy as _s,Layout as ui,ns64 as Es,ns64be as Ds,nu64 as ci,nu64be as Ws,offset as li,s16 as qs,s16be as Us,s24 as Gs,s24be as zs,s32 as mi,s32be as Ys,s40 as Xs,s40be as Qs,s48 as Zs,s48be as Hs,s8 as js,seq as di,struct as $s,Structure as pi,u16 as fi,u16be as Js,u24 as eu,u24be as tu,u32 as yi,u32be as nu,u40 as ou,u40be as iu,u48 as ru,u48be as au,u8 as bi,UInt as gi,union as su,Union as uu,unionLayoutDiscriminator as cu,utf8 as lu}from"@solana/buffer-layout";var gt=ui,Dn=pi;var Et=gi;var Wn=bi,ee=fi;var Pt=yi;var qn=ci;var be=mi;var Un=di;var E=si;var Dt=ai,Gn=li;var Oe=class extends gt{constructor(t,i,r){super(t,r);this.blob=E(t),this.signed=i}decode(t,i=0){let r=new zn(this.blob.decode(t,i),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(t,i,r=0){return typeof t=="number"&&(t=new zn(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),i,r)}},At=class extends gt{constructor(t){super(8,t);this._lower=Dt(Pt(),!1),this._upper=Dt(Pt(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,i=0){let r=this._lower.decode(t,i),s=this._upper.decode(t,i+this._lower.span);return N(N({},r),s)}encode(t,i,r=0){return this._lower.encode(t,i,r)+this._upper.encode(t,i,r+this._lower.span)}};function P(o){return new Et(1,o)}function Q(o){return new Et(4,o)}function n(o){return new Oe(8,!1,o)}function F(o){return new Oe(16,!1,o)}function Xn(o){return new Oe(1,!0,o)}function De(o){return new Oe(8,!0,o)}function Qn(o){return new Oe(16,!0,o)}var Je=class extends gt{constructor(t,i,r,s){super(t.span,s);this.layout=t,this.decoder=i,this.encoder=r}decode(t,i){return this.decoder(this.layout.decode(t,i))}encode(t,i,r){return this.layout.encode(this.encoder(t),i,r)}getSpan(t,i){return this.layout.getSpan(t,i)}};function a(o){return new Je(E(32),e=>new Pi(e),e=>e.toBuffer(),o)}function pe(o){return new Je(Wn(),Ai,wi,o)}function Ai(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function wi(o){return o?1:0}function Zn(o,e){let t=Pt("length"),i=A([t,h(o,Gn(t,-t.span),"values")]);return new Je(i,({values:r})=>r,r=>({values:r}),e)}var Wt=class extends Dn{decode(e,t){return super.decode(e,t)}};function A(o,e,t){return new Wt(o,e,t)}function h(o,e,t){let i,r=typeof e=="number"?e:Yn(e)?e.toNumber():new Proxy(e,{get(s,u){if(!i){let d=Reflect.get(s,"count");i=Yn(d)?d.toNumber():d,Reflect.set(s,"count",i)}return Reflect.get(s,u)},set(s,u,d){return u==="count"&&(i=d),Reflect.set(s,u,d)}});return Un(o,r,t)}import{PublicKey as zt}from"@solana/web3.js";import{get as Hn,set as ki}from"lodash";var qt=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(i=>typeof i=="object"?JSON.stringify(i):i).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}},jn={},Ti={};function q(o){let e=Hn(jn,o);if(!e){let t=Hn(Ti,o);e=new qt({name:o,logLevel:t}),ki(jn,o,e)}return e}import{PublicKey as R}from"@solana/web3.js";var $n=new R("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Jn=new R("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),eo=new R("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ut=new R("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),hu=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),hi=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),to=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),no=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Iu=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ii=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),oo=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Bi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Si=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),io=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Bu=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),xi=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ki=new R("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Ci=new R("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ri=new R("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Li=new R("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Gt=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Oi=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Su=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ni=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Mi=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Fi=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),xu=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Ku=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Cu=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Ru=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Lu=new R("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),et={IDO_PROGRAM_ID_V1:Ki,IDO_PROGRAM_ID_V2:Ci,IDO_PROGRAM_ID_V3:Ri,IDO_PROGRAM_ID_V4:Li};var Se={OPEN_BOOK_PROGRAM:new R("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new R("Ray1111111111111111111111111111111111111111"),AMM_V4:new R("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new R("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new R("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new R("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new R("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new R("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new R("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new R("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:R.default,Router:new R("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new R("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new R("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new R("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new R("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new R("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new R("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new R("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new R("Ray1111111111111111111111111111111111111111")};import{NATIVE_MINT as vi}from"@solana/spl-token";var Du=q("Raydium_farm_config"),Vi=new zt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),_i=new zt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1"),Wu=vi,qu=new zt("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX"),Yt={3:ao,5:so,6:Qt},Xt={3:tt,5:uo,6:co},Ei=o=>[3,4,5,6].indexOf(o)!==-1,Di=o=>{var u;let{version:e,rewardInfos:t,rewardTokenAccountsPublicKeys:i}=o,r=`rewardInfo:${JSON.stringify(t)}, rewardAccount:${JSON.stringify(i)}`,s={3:()=>{if(t.length!==1||i.length!==1)return`rewardInfos or rewardTokenAccounts lengths not equal 1: ${r}`},5:()=>{if(t.length!==i.length)return`rewardInfos and rewardTokenAccounts lengths not equal: ${r}`},6:()=>{if(!i.length||t.length!==i.length)return`no rewardTokenAccounts or rewardInfos and rewardTokenAccounts lengths not equal: ${r}`}};return(u=s[e])==null?void 0:u.call(s)},Ne={"Standard SPL":0,"Option tokens":1},ro={[$n.toString()]:3,[Jn.toString()]:4,[eo.toString()]:5,[Ut.toString()]:6,[Se.FARM_PROGRAM_ID_V3.toString()]:3,[Se.FARM_PROGRAM_ID_V4.toString()]:4,[Se.FARM_PROGRAM_ID_V5.toString()]:5,[Se.FARM_PROGRAM_ID_V6.toString()]:6};var Zt=A([P("instruction")]),Ht=A([P("instruction")]),Wi=A([n("rewardState"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardLastUpdateTime"),n("totalReward"),n("totalRewardEmissioned"),n("rewardClaimed"),n("rewardPerSecond"),F("accRewardPerShare"),a("rewardVault"),a("rewardMint"),a("rewardSender"),n("rewardType"),h(n(),15,"padding")]),qi=A([n("state"),n("nonce"),a("lpVault"),a("rewardVault"),a(),a(),n(),n(),n("totalReward"),F("perShareReward"),n("lastSlot"),n("perSlotReward")]),Ui=A([n("state"),n("nonce"),a("lpVault"),a("rewardVaultA"),n("totalRewardA"),F("perShareRewardA"),n("perSlotRewardA"),P("option"),a("rewardVaultB"),E(7),n("totalRewardB"),F("perShareRewardB"),n("perSlotRewardB"),n("lastSlot"),a()]),Gi=A([n(),n("state"),n("nonce"),n("validRewardTokenNum"),F("rewardMultiplier"),n("rewardPeriodMax"),n("rewardPeriodMin"),n("rewardPeriodExtend"),a("lpMint"),a("lpVault"),h(Wi,5,"rewardInfos"),a("creator"),a(),h(n(),32,"padding")]),ao=new Proxy(qi,{get(o,e,t){return e==="decode"?(...i)=>{let r=o.decode(...i);return W(N({},r),{version:3,rewardInfos:[{rewardVault:r.rewardVault,totalReward:r.totalReward,perSlotReward:r.perSlotReward,perShareReward:r.perShareReward}]})}:Reflect.get(o,e,t)}}),so=new Proxy(Ui,{get(o,e,t){return e==="decode"?(...i)=>{let r=o.decode(...i);return W(N({},r),{version:5,rewardInfos:[{rewardVault:r.rewardVaultA,totalReward:r.totalRewardA,perSlotReward:r.perSlotRewardA,perShareReward:r.perShareRewardA},{rewardVault:r.rewardVaultB,totalReward:r.totalRewardB,perSlotReward:r.perSlotRewardB,perShareReward:r.perShareRewardB}]})}:Reflect.get(o,e,t)}}),Qt=new Proxy(Gi,{get(o,e,t){return e==="decode"?(...i)=>{let r=o.decode(...i);return W(N({},r),{version:6,rewardInfos:r.rewardInfos.map(s=>{var u;return W(N({},s),{rewardType:((u=Object.entries(Ne).find(d=>String(d[1])===s.rewardType.toString()))!=null?u:["Standard SPL"])[0]})})})}:Reflect.get(o,e,t)}}),zi=A([n("isSet"),n("rewardPerSecond"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardType")]),jt=A([P("instruction"),n("nonce"),h(zi,5,"rewardTimeInfo")]),$t=A([P("instruction"),n("rewardReopenTime"),n("rewardEndTime"),n("rewardPerSecond")]),Jt=A([P("instruction"),n("isSet"),n("rewardPerSecond"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardType")]),Zu=A([n("state"),a("id"),a("owner"),n("deposited"),h(n(),1,"rewardDebts")]),tt=A([n("state"),a("id"),a("owner"),n("deposited"),h(F(),1,"rewardDebts"),n(""),n("voteLockedBalance"),h(n(),15)]),Hu=A([n("state"),a("id"),a("owner"),n("deposited"),h(n(),2,"rewardDebts")]),uo=A([n("state"),a("id"),a("owner"),n("deposited"),h(F(),2,"rewardDebts"),h(n(),17)]),co=A([n(),n("state"),a("id"),a("owner"),n("deposited"),h(F(),5,"rewardDebts"),h(n(),16)]),ue=A([P("instruction"),n("amount")]),Yi=A([a("mint"),a("grantAuthority"),n("baselineVoteWeightScaledFactor"),n("maxExtraLockupVoteWeightScaledFactor"),n("lockupSaturationSecs"),Xn("digitShift"),h(P(),7,"reserved1"),h(n(),7,"reserved2")]),lo=A([E(8),a("governanceProgramId"),a("realm"),a("realmGoverningTokenMint"),a("realmAuthority"),h(P(),32,"reserved1"),h(Yi,4,"votingMints"),De("timeOffset"),P("bump"),h(P(),7,"reserved2"),h(n(),11,"reserved3")]),Xi=A([De("startTime"),De("endTime"),P("kind"),h(P(),15,"reserved")]),Qi=A([h(Xi,1,"lockup"),n("amountDeposited_native"),n("amountInitiallyLockedNative"),pe("isUsed"),pe("allowClawback"),P("votingMintConfigIdx"),h(P(),29,"reserved")]),mo=A([E(8),a("voterAuthority"),a("registrar"),h(Qi,32,"deposits"),P("voterBump"),P("voterWweightRecordBump"),h(P(),94,"reserved")]);import de from"bn.js";import{PublicKey as Zi}from"@solana/web3.js";import{MINT_SIZE as rc,TOKEN_PROGRAM_ID as ac,getTransferFeeConfig as sc,unpackMint as uc}from"@solana/spl-token";var en=q("Raydium_accountInfo_util");async function we(o,e,t){let{batchRequest:i,commitment:r="confirmed",chunkCount:s=100}=N({batchRequest:!1},t),u=tn(e,s),d=new Array(u.length).fill([]);if(i){let p=u.map(w=>{let g=o._buildArgs([w.map(y=>y.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:g}}),f=tn(p,10);d=(await(await Promise.all(f.map(async w=>await o._rpcBatchRequest(w)))).flat()).map(w=>(w.error&&en.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${w.error.message}`),w.result.value.map(g=>{if(g){let{data:y,executable:B,lamports:k,owner:T,rentEpoch:S}=g;return y.length!==2&&y[1]!=="base64"&&en.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(y[0],"base64"),executable:B,lamports:k,owner:new Zi(T),rentEpoch:S}}return null})))}else try{d=await Promise.all(u.map(p=>o.getMultipleAccountsInfo(p,r)))}catch(p){p instanceof Error&&en.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${p.message}`)}return d.flat()}async function xe(o,e,t){let i=await we(o,e.map(r=>r.pubkey),t);return e.map((r,s)=>W(N({},r),{accountInfo:i[s]}))}import _e from"bn.js";import iR from"decimal.js";import or from"big.js";import Tt from"bn.js";import Hi from"toformat";var ji=Hi,ot=ji;import kt from"big.js";import Ji from"bn.js";import er from"decimal.js-light";import it from"bn.js";var po=9007199254740991;function V(o){let e=q("Raydium_parseBigNumberish");if(o instanceof it)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new it(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=po||o<=-po)&&e.logWithError(`BigNumberish number overflow: ${o}`),new it(String(o))):typeof o=="bigint"?new it(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new it(0))}var wt=q("module/fraction"),nn=ot(kt),rt=ot(er),tr={[0]:rt.ROUND_DOWN,[1]:rt.ROUND_HALF_UP,[2]:rt.ROUND_UP},nr={[0]:kt.roundDown,[1]:kt.roundHalfUp,[2]:kt.roundUp},G=class{constructor(e,t=new Ji(1)){this.numerator=V(e),this.denominator=V(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new G(this.denominator,this.numerator)}add(e){let t=e instanceof G?e:new G(V(e));return this.denominator.eq(t.denominator)?new G(this.numerator.add(t.numerator),this.denominator):new G(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof G?e:new G(V(e));return this.denominator.eq(t.denominator)?new G(this.numerator.sub(t.numerator),this.denominator):new G(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof G?e:new G(V(e));return new G(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof G?e:new G(V(e));return new G(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},i=1){Number.isInteger(e)||wt.logWithError(`${e} is not an integer.`),e<=0&&wt.logWithError(`${e} is not positive.`),rt.set({precision:e+1,rounding:tr[i]});let r=new rt(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},i=1){return Number.isInteger(e)||wt.logWithError(`${e} is not an integer.`),e<0&&wt.logWithError(`${e} is negative.`),nn.DP=e,nn.RM=nr[i]||1,new nn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var ir=q("Raydium_amount"),fo=ot(or);function rr(o,e){let t="0",i="0";if(o.includes(".")){let r=o.split(".");r.length===2?([t,i]=r,i=i.padEnd(e,"0")):ir.logWithError(`invalid number string, num: ${o}`)}else t=o;return[t,i.slice(0,e)||i]}var fe=class extends G{constructor(t,i,r=!0,s){let u=new Tt(0),d=on.pow(new Tt(t.decimals));if(r)u=V(i);else{let p=new Tt(0),f=new Tt(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[b,w]=rr(i.toString(),t.decimals);p=V(b),f=V(w)}p=p.mul(d),u=p.add(f)}super(u,d);this.logger=q(s||"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 fe(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new fe(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,i,r=0){return super.toSignificant(t,i,r)}toFixed(t=this.token.decimals,i,r=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,i,r)}toExact(t={groupSeparator:""}){return fo.DP=this.token.decimals,new fo(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as ar}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as yo}from"@solana/spl-token";var ht={chainId:101,address:ar.default.toBase58(),programId:yo.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Te={chainId:101,address:"So11111111111111111111111111111111111111112",programId:yo.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 un}from"@solana/web3.js";import{PublicKey as Z,SystemProgram as bo,SYSVAR_RENT_PUBKEY as sr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ur}from"@solana/spl-token";function c({pubkey:o,isSigner:e=!1,isWritable:t=!0}){return{pubkey:o,isWritable:t,isSigner:e}}var rn=[c({pubkey:ur,isWritable:!1}),c({pubkey:bo.programId,isWritable:!1}),c({pubkey:sr,isWritable:!1})];function go({publicKey:o,transformSol:e}){let t=an(o.toString());if(t instanceof Z)return e&&t.equals(Ke)?ke:t;if(e&&t.toString()===Ke.toBase58())return ke;if(typeof t=="string"){if(t===Z.default.toBase58())return Z.default;try{return new Z(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function an(o){try{return new Z(o)}catch{return o}}var sn=new Z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ce=new Z("SysvarRent111111111111111111111111111111111"),cr=new Z("SysvarC1ock11111111111111111111111111111111"),It=new Z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Bt=new Z("Sysvar1nstructions1111111111111111111111111"),Po=bo.programId,Dc=new Z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Wc=new Z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),qc=new Z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Uc=new Z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Gc=new Z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),zc=new Z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Yc=new Z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Xc=new Z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Qc=new Z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Zc=new Z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Hc=new Z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ke=new Z("So11111111111111111111111111111111111111112"),Ke=Z.default;var cn=class{constructor({mint:e,decimals:t,symbol:i,name:r,skipMint:s=!1,isToken2022:u=!1}){if(e===Ke.toBase58()||e instanceof un&&Ke.equals(e)){this.decimals=Te.decimals,this.symbol=Te.symbol,this.name=Te.name,this.mint=new un(Te.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=i||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=s?un.default:go({publicKey:e}),this.isToken2022=u}equals(e){return this===e?!0:this.mint.equals(e.mint)}},oe=cn;oe.WSOL=new cn(W(N({},Te),{mint:Te.address}));var ln=class{constructor({decimals:e,symbol:t="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=i}equals(e){return this===e}},St=ln;St.SOL=new ln(ht);import lr from"bn.js";var Ao=new G(new lr(100)),Be=class extends G{toSignificant(e=5,t,i){return this.mul(Ao).toSignificant(e,t,i)}toFixed(e=2,t,i){return this.mul(Ao).toFixed(e,t,i)}};var mr=q("Raydium_price"),ge=class extends G{constructor(t){let{baseToken:i,quoteToken:r,numerator:s,denominator:u}=t;super(s,u);this.baseToken=i,this.quoteToken=r,this.scalar=new G(mn(i.decimals),mn(r.decimals))}get raw(){return new G(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new ge({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&mr.logWithError("mul token not equals");let i=super.mul(t);return new ge({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:i.denominator,numerator:i.numerator})}toSignificant(t=this.quoteToken.decimals,i,r){return this.adjusted.toSignificant(t,i,r)}toFixed(t=this.quoteToken.decimals,i,r){return this.adjusted.toFixed(t,i,r)}};import{merge as iC}from"lodash";import wl from"axios";var wo={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},dr=W(N({},wo),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var Ul=q("Raydium_Api");import{PublicKey as gd,SystemProgram as Pd}from"@solana/web3.js";import{AccountLayout as hd,createAssociatedTokenAccountIdempotentInstruction as Id,TOKEN_PROGRAM_ID as Bd,TOKEN_2022_PROGRAM_ID as Sd}from"@solana/spl-token";import{PublicKey as ze,sendAndConfirmTransaction as gn,SystemProgram as Pr,Transaction as ut,TransactionMessage as ct,VersionedTransaction as lt}from"@solana/web3.js";import Ar from"axios";import{PublicKey as dn,AddressLookupTableAccount as Ue}from"@solana/web3.js";async function pn({connection:o,address:e,cluster:t="mainnet"}){let i=await we(o,[...new Set(e.map(s=>s.toString()))].map(s=>new dn(s))),r={};for(let s=0;s<e.length;s++){let u=i[s],d=e[s];if(!u)continue;let p=new Ue({key:d,state:Ue.deserialize(u.data)});r[d.toString()]=p,t==="devnet"?qe[d.toString()]=p:We[d.toString()]=p}return r}var We={},fn=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(We[e])return We;let t=new dn(e),i=await o.getAccountInfo(t);return i&&(We[e]=new Ue({key:t,state:Ue.deserialize(i.data)})),We},qe={},yn=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(qe[e])return qe;let t=new dn(e),i=await o.getAccountInfo(t);return i&&(qe[e]=new Ue({key:t,state:Ue.deserialize(i.data)})),qe};var H={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as ko,Keypair as ho,PublicKey as pr,Transaction as Io,TransactionMessage as fr,VersionedTransaction as Bo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as yr}from"@solana/spl-token";var To=q("Raydium_txUtil"),So=1644;function xt(o){let e=[],t=[];return o.microLamports&&(e.push(ko.setComputeUnitPrice({microLamports:o.microLamports})),t.push(H.SetComputeUnitPrice)),o.units&&(e.push(ko.setComputeUnitLimit({units:o.units})),t.push(H.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Ge(o,e){var i,r;let t=e!=null?e:"confirmed";return(r=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:t})))==null?void 0:r.blockhash}async function Kt(o,e){return o.getSignatureStatuses([e]),new Promise((t,i)=>{let r=setTimeout(i,6e4);o.onSignature(e,s=>{if(clearTimeout(r),!s.err){t("");return}i(Object.assign(s.err,{txId:e}))},"confirmed")})}function bn(o,e){o.length<1&&To.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&To.logWithError(`no signers provided:, ${e.toString()}`);let t=new Io;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...o);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<So}catch{return!1}}function j(o,e){let[t,i]=pr.findProgramAddressSync(o,e);return{publicKey:t,nonce:i}}function at({instructions:o,payer:e,signers:t}){return bn(o,[e,...t])}function st({instructions:o,payer:e,lookupTableAddressAccount:t,recentBlockhash:i=ho.generate().publicKey.toString()}){let s=new fr({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Bo(s).serialize()).toString("base64").length<So}catch{return!1}}var br=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),gr=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Bo&&(e=br(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Me(o){let e=[];return o.forEach(t=>{t instanceof Io&&(t.recentBlockhash||(t.recentBlockhash=yr.toBase58()),t.feePayer||(t.feePayer=ho.generate().publicKey)),e.push(gr(t))}),console.log("simulate tx string:",e),e}var Ct=2e3,Rt=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var i;let e=(await Ar.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(i=e==null?void 0:e[15])!=null?i:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:i}=xt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Pr.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new ze(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(H.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:i=[],instructionTypes:r=[],endInstructionTypes:s=[],lookupTableAddress:u=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...i),this.instructionTypes.push(...r),this.endInstructionTypes.push(...s),this.lookupTableAddress.push(...u.filter(d=>d!==ze.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:i}){return e===0?await this.buildV0(W(N({},t||{}),{lookupTableAddress:i})):this.build(t)}build(e){var i;let t=new ut;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(r=>r.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 r=>{var b;let{recentBlockHash:s,skipPreflight:u=!0,sendAndConfirm:d,notSendToRpc:p}=r||{},f=s!=null?s:await Ge(this.connection,this.blockhashCommitment);if(t.recentBlockhash=f,this.signers.length&&t.sign(...this.signers),Me([t]),(b=this.owner)!=null&&b.isKeyPair)return{txId:d?await gn(this.connection,t,this.signers.find(g=>g.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:u}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:u}),signedTx:t};if(this.signAllTransactions){let w=await this.signAllTransactions([t]);if(this.signers.length)for(let g of w)try{g.sign(...this.signers)}catch{}return{txId:p?"":await this.connection.sendRawTransaction(w[0].serialize(),{skipPreflight:u}),signedTx:w[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var f;let{extraPreBuildData:t=[],extInfo:i}=e,{transaction:r}=this.build(i),s=t.filter(b=>b.transaction.instructions.length>0),u=[r,...s.map(b=>b.transaction)],d=[this.signers,...s.map(b=>b.signers)],p=[...this.instructionTypes,...s.map(b=>b.instructionTypes).flat()];return(f=this.owner)!=null&&f.signer&&d.forEach(b=>{b.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:u,signers:d,instructionTypes:p,execute:async b=>{var S;let{sequentially:w,onTxUpdate:g,skipTxCount:y=0,recentBlockHash:B,skipPreflight:k=!0}=b||{},T=B!=null?B:await Ge(this.connection,this.blockhashCommitment);if((S=this.owner)!=null&&S.isKeyPair){if(w){let x=[],v=0;for(let _ of u){if(++v,v<=y)continue;let I=await gn(this.connection,_,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:k});x.push(I)}return{txIds:x,signedTxs:u}}return{txIds:await await Promise.all(u.map(async x=>(x.recentBlockhash=T,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:k})))),signedTxs:u}}if(this.signAllTransactions){let x=u.map((_,I)=>(_.recentBlockhash=T,d[I].length&&_.sign(...d[I]),_));Me(x);let v=await this.signAllTransactions(x);if(w){let _=0,I=[],K=async()=>{if(!v[_])return;let C=await this.connection.sendRawTransaction(v[_].serialize(),{skipPreflight:k});I.push({txId:C,status:"sent",signedTx:v[_]}),g==null||g([...I]),_++;let O=!1,M=null,D=null,ae=Y=>{M!==null&&clearInterval(M),D!==null&&this.connection.removeSignatureListener(D);let z=I.findIndex(ne=>ne.txId===C);if(z>-1){if(I[z].status==="error"||I[z].status==="success")return;I[z].status=Y.err?"error":"success"}g==null||g([...I]),Y.err||K()};this.loopMultiTxStatus&&(M=setInterval(async()=>{var Y;if(O){clearInterval(M);return}try{let z=await this.connection.getTransaction(C,{commitment:"confirmed",maxSupportedTransactionVersion:0});z&&(O=!0,clearInterval(M),ae({err:((Y=z.meta)==null?void 0:Y.err)||null}),console.log("tx status from getTransaction:",C))}catch(z){O=!0,clearInterval(M),console.error("getTransaction timeout:",z,C)}},Ct)),D=this.connection.onSignature(C,Y=>{if(O){this.connection.removeSignatureListener(D);return}O=!0,ae(Y)},"confirmed"),this.connection.getSignatureStatus(C)};return await K(),{txIds:I.map(C=>C.txId),signedTxs:v}}else{let _=[];for(let I=0;I<v.length;I+=1){let K=await this.connection.sendRawTransaction(v[I].serialize(),{skipPreflight:k});_.push(K)}return{txIds:_,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:i}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var k;let B=e||{},{lookupTableCache:t={},lookupTableAddress:i=[],forerunCreate:r,recentBlockhash:s}=B,u=Ae(B,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),d=N(N({},this.cluster==="devnet"?await yn(this.connection):await fn(this.connection)),t),p=Array.from(new Set([...i,...this.lookupTableAddress])),f=[];for(let T of p)d[T]===void 0&&f.push(new ze(T));let b=await pn({connection:this.connection,address:f});for(let[T,S]of Object.entries(b))d[T]=S;let w=r?ze.default.toBase58():s!=null?s:await Ge(this.connection,this.blockhashCommitment),g=new ct({payerKey:this.feePayer,recentBlockhash:w,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(d));((k=this.owner)==null?void 0:k.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let y=new lt(g);return y.sign(this.signers),{builder:this,transaction:y,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var _;let{skipPreflight:S=!0,sendAndConfirm:x,notSendToRpc:v}=T||{};if(Me([y]),(_=this.owner)!=null&&_.isKeyPair){let I=await this.connection.sendTransaction(y,{skipPreflight:S});return x&&await Kt(this.connection,I),{txId:I,signedTx:y}}if(this.signAllTransactions){let I=await this.signAllTransactions([y]);if(this.signers.length)for(let K of I)try{K.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(I[0],{skipPreflight:S}),signedTx:I[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async buildV0MultiTx(e){var f;let{extraPreBuildData:t=[],buildProps:i}=e,{transaction:r}=await this.buildV0(i),s=t.filter(b=>b.builder.instructions.length>0),u=[r,...s.map(b=>b.transaction)],d=[this.signers,...s.map(b=>b.signers)],p=[...this.instructionTypes,...s.map(b=>b.instructionTypes).flat()];return(f=this.owner)!=null&&f.signer&&d.forEach(b=>{b.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),u.forEach(async(b,w)=>{b.sign(d[w])}),{builder:this,transactions:u,signers:d,instructionTypes:p,buildProps:i,execute:async b=>{var k;let{sequentially:w,onTxUpdate:g,recentBlockHash:y,skipPreflight:B=!0}=b||{};if(y&&u.forEach(T=>T.message.recentBlockhash=y),Me(u),(k=this.owner)!=null&&k.isKeyPair){if(w){let T=[];for(let S of u){let x=await this.connection.sendTransaction(S,{skipPreflight:B});await Kt(this.connection,x),T.push(x)}return{txIds:T,signedTxs:u}}return{txIds:await Promise.all(u.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:B}))),signedTxs:u}}if(this.signAllTransactions){let T=await this.signAllTransactions(u);if(w){let S=0,x=[],v=async()=>{if(!T[S])return;let _=await this.connection.sendTransaction(T[S],{skipPreflight:B});x.push({txId:_,status:"sent",signedTx:T[S]}),g==null||g([...x]),S++;let I=!1,K=null,C=null,O=M=>{K!==null&&clearInterval(K),C!==null&&this.connection.removeSignatureListener(C);let D=x.findIndex(ae=>ae.txId===_);if(D>-1){if(x[D].status==="error"||x[D].status==="success")return;x[D].status=M.err?"error":"success"}g==null||g([...x]),M.err||v()};this.loopMultiTxStatus&&(K=setInterval(async()=>{var M;if(I){clearInterval(K);return}try{let D=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});D&&(I=!0,clearInterval(K),O({err:((M=D.meta)==null?void 0:M.err)||null}),console.log("tx status from getTransaction:",_))}catch(D){I=!0,clearInterval(K),console.error("getTransaction timeout:",D,_)}},Ct)),C=this.connection.onSignature(_,M=>{if(I){this.connection.removeSignatureListener(C);return}I=!0,O(M)},"confirmed"),this.connection.getSignatureStatus(_)};return v(),{txIds:[],signedTxs:T}}else{let S=[];for(let x=0;x<T.length;x+=1){let v=await this.connection.sendTransaction(T[x],{skipPreflight:B});S.push(v)}return{txIds:S,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var g;let w=e||{},{splitIns:t=[],computeBudgetConfig:i}=w,r=Ae(w,["splitIns","computeBudgetConfig"]),s=i?xt(i):{instructions:[],instructionTypes:[]},u=this.signers.reduce((y,B)=>W(N({},y),{[B.publicKey.toBase58()]:B}),{}),d=[],p=[],f=[],b=0;if(this.allInstructions.forEach(y=>{let B=[...f,y],k=i?[...s.instructions,...B]:B,S=[...new Set(B.map(x=>x.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(x=>new ze(x));if(y!==t[b]&&f.length<12&&(at({instructions:k,payer:this.feePayer,signers:S})||at({instructions:B,payer:this.feePayer,signers:S})))f.push(y);else{if(f.length===0)throw Error("item ins too big");b+=y===t[b]?1:0,at({instructions:i?[...s.instructions,...f]:[...f],payer:this.feePayer,signers:S})?d.push(new ut().add(...s.instructions,...f)):d.push(new ut().add(...f)),p.push(Array.from(new Set(f.map(x=>x.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(x=>u[x]).filter(x=>x!==void 0)),f=[y]}}),f.length>0){let B=[...new Set(f.map(k=>k.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(k=>u[k]).filter(k=>k!==void 0);at({instructions:i?[...s.instructions,...f]:[...f],payer:this.feePayer,signers:B.map(k=>k.publicKey)})?d.push(new ut().add(...s.instructions,...f)):d.push(new ut().add(...f)),p.push(B)}return d.forEach(y=>y.feePayer=this.feePayer),(g=this.owner)!=null&&g.signer&&p.forEach(y=>{y.some(B=>B.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),{builder:this,transactions:d,signers:p,instructionTypes:this.instructionTypes,execute:async y=>{var _;let{sequentially:B,onTxUpdate:k,skipTxCount:T=0,recentBlockHash:S,skipPreflight:x=!0}=y||{},v=S!=null?S:await Ge(this.connection,this.blockhashCommitment);if(d.forEach(async(I,K)=>{I.recentBlockhash=v,p[K].length&&I.sign(...p[K])}),Me(d),(_=this.owner)!=null&&_.isKeyPair){if(B){let I=0,K=[];for(let C of d){if(++I,I<=T){K.push("tx skipped");continue}let O=await gn(this.connection,C,this.signers.find(M=>M.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});K.push(O)}return{txIds:K,signedTxs:d}}return{txIds:await Promise.all(d.map(async I=>await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:x}))),signedTxs:d}}if(this.signAllTransactions){let I=await this.signAllTransactions(d.slice(T,d.length)),K=[...d.slice(0,T),...I];if(B){let C=0,O=[],M=async()=>{if(!K[C])return;C<T&&(O.push({txId:"",status:"success",signedTx:K[C]}),k==null||k([...O]),C++,M());let D=await this.connection.sendRawTransaction(K[C].serialize(),{skipPreflight:x});O.push({txId:D,status:"sent",signedTx:K[C]}),k==null||k([...O]),C++;let ae=!1,Y=null,z=null,ne=X=>{Y!==null&&clearInterval(Y),z!==null&&this.connection.removeSignatureListener(z);let se=O.findIndex(he=>he.txId===D);if(se>-1){if(O[se].status==="error"||O[se].status==="success")return;O[se].status=X.err?"error":"success"}k==null||k([...O]),X.err||M()};this.loopMultiTxStatus&&(Y=setInterval(async()=>{var X;if(ae){clearInterval(Y);return}try{let se=await this.connection.getTransaction(D,{commitment:"confirmed",maxSupportedTransactionVersion:0});se&&(ae=!0,clearInterval(Y),ne({err:((X=se.meta)==null?void 0:X.err)||null}),console.log("tx status from getTransaction:",D))}catch(se){ae=!0,clearInterval(Y),console.error("getTransaction timeout:",se,D)}},Ct)),z=this.connection.onSignature(D,X=>{if(ae){this.connection.removeSignatureListener(z);return}ae=!0,ne(X)},"confirmed"),this.connection.getSignatureStatus(D)};return await M(),{txIds:O.map(D=>D.txId),signedTxs:K}}else{let C=[];for(let O=0;O<K.length;O+=1){let M=await this.connection.sendRawTransaction(K[O].serialize(),{skipPreflight:x});C.push(M)}return{txIds:C,signedTxs:K}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var _;let v=e||{},{computeBudgetConfig:t,splitIns:i=[],lookupTableCache:r={},lookupTableAddress:s=[],insCountLimit:u=12}=v,d=Ae(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),p=N(N({},this.cluster==="devnet"?await yn(this.connection):await fn(this.connection)),r),f=Array.from(new Set([...this.lookupTableAddress,...s])),b=[];for(let I of f)p[I]===void 0&&b.push(new ze(I));let w=await pn({connection:this.connection,address:b});for(let[I,K]of Object.entries(w))p[I]=K;let g=t?xt(t):{instructions:[],instructionTypes:[]},y=await Ge(this.connection,this.blockhashCommitment),B=this.signers.reduce((I,K)=>W(N({},I),{[K.publicKey.toBase58()]:K}),{}),k=[],T=[],S=[],x=0;if(this.allInstructions.forEach(I=>{let K=[...S,I],C=t?[...g.instructions,...K]:K;if(I!==i[x]&&S.length<u&&(st({instructions:C,payer:this.feePayer,lookupTableAddressAccount:p})||st({instructions:K,payer:this.feePayer,lookupTableAddressAccount:p})))S.push(I);else{if(S.length===0)throw Error("item ins too big");x+=I===i[x]?1:0;let O={};for(let M of[...new Set(f)])p[M]!==void 0&&(O[M]=p[M]);if(t&&st({instructions:[...g.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:p,recentBlockhash:y})){let M=new ct({payerKey:this.feePayer,recentBlockhash:y,instructions:[...g.instructions,...S]}).compileToV0Message(Object.values(p));k.push(new lt(M))}else{let M=new ct({payerKey:this.feePayer,recentBlockhash:y,instructions:[...S]}).compileToV0Message(Object.values(p));k.push(new lt(M))}T.push(Array.from(new Set(S.map(M=>M.keys.filter(D=>D.isSigner).map(D=>D.pubkey.toString())).flat())).map(M=>B[M]).filter(M=>M!==void 0)),S=[I]}}),S.length>0){let K=[...new Set(S.map(C=>C.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(C=>B[C]).filter(C=>C!==void 0);if(t&&st({instructions:[...g.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:p,recentBlockhash:y})){let C=new ct({payerKey:this.feePayer,recentBlockhash:y,instructions:[...g.instructions,...S]}).compileToV0Message(Object.values(p));k.push(new lt(C))}else{let C=new ct({payerKey:this.feePayer,recentBlockhash:y,instructions:[...S]}).compileToV0Message(Object.values(p));k.push(new lt(C))}T.push(K)}return(_=this.owner)!=null&&_.signer&&T.forEach(I=>{I.some(K=>K.publicKey.equals(this.owner.publicKey))||I.push(this.owner.signer)}),k.forEach((I,K)=>{I.sign(T[K])}),{builder:this,transactions:k,buildProps:e,signers:T,instructionTypes:this.instructionTypes,execute:async I=>{var ae;let{sequentially:K,onTxUpdate:C,skipTxCount:O=0,recentBlockHash:M,skipPreflight:D=!0}=I||{};if(k.map(async(Y,z)=>{T[z].length&&Y.sign(T[z]),M&&(Y.message.recentBlockhash=M)}),Me(k),(ae=this.owner)!=null&&ae.isKeyPair){if(K){let Y=0,z=[];for(let ne of k){if(++Y,Y<=O){console.log("skip tx: ",Y),z.push("tx skipped");continue}let X=await this.connection.sendTransaction(ne,{skipPreflight:D});await Kt(this.connection,X),z.push(X)}return{txIds:z,signedTxs:k}}return{txIds:await Promise.all(k.map(async Y=>await this.connection.sendTransaction(Y,{skipPreflight:D}))),signedTxs:k}}if(this.signAllTransactions){let Y=await this.signAllTransactions(k.slice(O,k.length)),z=[...k.slice(0,O),...Y];if(K){let ne=0,X=[],se=async()=>{if(!z[ne])return;if(ne<O){X.push({txId:"",status:"success",signedTx:z[ne]}),C==null||C([...X]),ne++,se();return}let he=await this.connection.sendTransaction(z[ne],{skipPreflight:D});X.push({txId:he,status:"sent",signedTx:z[ne]}),C==null||C([...X]),ne++;let $e=!1,Ee=null,yt=null,vn=Le=>{Ee!==null&&clearInterval(Ee),yt!==null&&this.connection.removeSignatureListener(yt);let Ie=X.findIndex(ni=>ni.txId===he);if(Ie>-1){if(X[Ie].status==="error"||X[Ie].status==="success")return;X[Ie].status=Le.err?"error":"success"}C==null||C([...X]),Le.err||se()};this.loopMultiTxStatus&&(Ee=setInterval(async()=>{var Le;if($e){clearInterval(Ee);return}try{let Ie=await this.connection.getTransaction(he,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ie&&($e=!0,clearInterval(Ee),vn({err:((Le=Ie.meta)==null?void 0:Le.err)||null}),console.log("tx status from getTransaction:",he))}catch(Ie){$e=!0,clearInterval(Ee),console.error("getTransaction timeout:",Ie,he)}},Ct)),yt=this.connection.onSignature(he,Le=>{if($e){this.connection.removeSignatureListener(yt);return}$e=!0,vn(Le)},"confirmed"),this.connection.getSignatureStatus(he)};return se(),{txIds:[],signedTxs:z}}else{let ne=[];for(let X=0;X<z.length;X+=1){let se=await this.connection.sendTransaction(z[X],{skipPreflight:D});ne.push(se)}return{txIds:ne,signedTxs:z}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}};var Pn=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),ce=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=q(t)}createTxBuilder(e){return this.scope.checkOwner(),new Rt({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(Pn(e))}logInfo(...e){this.logger.info(Pn(e))}logAndCreateError(...e){let t=Pn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Qm,SystemProgram as Hm}from"@solana/web3.js";import Jm from"bn.js";import{createCloseAccountInstruction as od,createInitializeAccountInstruction as id,createTransferInstruction as rd,TOKEN_PROGRAM_ID as ad}from"@solana/spl-token";import{Keypair as Fm,PublicKey as vm}from"@solana/web3.js";import Em from"bn.js";import{TOKEN_PROGRAM_ID as qm}from"@solana/spl-token";var Ye=A([a("mint"),a("owner"),n("amount"),Q("delegateOption"),a("delegate"),P("state"),Q("isNativeOption"),n("isNative"),n("delegatedAmount"),Q("closeAuthorityOption"),a("closeAuthority")]);import{PublicKey as Mg