@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 96.3 kB
JavaScript
var ei=Object.defineProperty,ti=Object.defineProperties;var ni=Object.getOwnPropertyDescriptors;var yt=Object.getOwnPropertySymbols;var Vn=Object.prototype.hasOwnProperty,_n=Object.prototype.propertyIsEnumerable;var vn=(o,e,t)=>e in o?ei(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,N=(o,e)=>{for(var t in e||(e={}))Vn.call(e,t)&&vn(o,t,e[t]);if(yt)for(var t of yt(e))_n.call(e,t)&&vn(o,t,e[t]);return o},W=(o,e)=>ti(o,ni(e));var Ae=(o,e)=>{var t={};for(var i in o)Vn.call(o,i)&&e.indexOf(i)<0&&(t[i]=o[i]);if(o!=null&&yt)for(var i of yt(o))e.indexOf(i)<0&&_n.call(o,i)&&(t[i]=o[i]);return t};import{PublicKey as fi}from"@solana/web3.js";import Un,{isBN as Gn}from"bn.js";import{bits as oi,BitStructure as As,blob as ii,Blob as ws,cstr as ks,f32 as Ts,f32be as hs,f64 as Is,f64be as Bs,greedy as Ss,Layout as ri,ns64 as xs,ns64be as Ks,nu64 as Cs,nu64be as Rs,offset as ai,s16 as Ls,s16be as Os,s24 as Ns,s24be as Ms,s32 as si,s32be as Fs,s40 as vs,s40be as Vs,s48 as _s,s48be as Es,s8 as Ds,seq as ui,struct as Ws,Structure as ci,u16 as li,u16be as qs,u24 as Us,u24be as Gs,u32 as mi,u32be as zs,u40 as Xs,u40be as Ys,u48 as Qs,u48be as Zs,u8 as di,UInt as pi,union as Hs,Union as js,unionLayoutDiscriminator as $s,utf8 as Js}from"@solana/buffer-layout";var bt=ri,En=ci;var Et=pi;var Dn=di,ee=li;var gt=mi;var be=si;var Wn=ui;var E=ii;var Dt=oi,qn=ai;var Re=class extends bt{constructor(t,i,r){super(t,r);this.blob=E(t),this.signed=i}decode(t,i=0){let r=new Un(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 Un(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),i,r)}},Pt=class extends bt{constructor(t){super(8,t);this._lower=Dt(gt(),!1),this._upper=Dt(gt(),!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 Re(8,!1,o)}function F(o){return new Re(16,!1,o)}function zn(o){return new Re(1,!0,o)}function Ee(o){return new Re(8,!0,o)}function Xn(o){return new Re(16,!0,o)}var Je=class extends bt{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 fi(e),e=>e.toBuffer(),o)}function pe(o){return new Je(Dn(),yi,bi,o)}function yi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function bi(o){return o?1:0}function Yn(o,e){let t=gt("length"),i=A([t,h(o,qn(t,-t.span),"values")]);return new Je(i,({values:r})=>r,r=>({values:r}),e)}var Wt=class extends En{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:Gn(e)?e.toNumber():new Proxy(e,{get(s,u){if(!i){let l=Reflect.get(s,"count");i=Gn(l)?l.toNumber():l,Reflect.set(s,"count",i)}return Reflect.get(s,u)},set(s,u,l){return u==="count"&&(i=l),Reflect.set(s,u,l)}});return Wn(o,r,t)}import{PublicKey as zt}from"@solana/web3.js";import{get as Qn,set as gi}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}},Zn={},Pi={};function q(o){let e=Qn(Zn,o);if(!e){let t=Qn(Pi,o);e=new qt({name:o,logLevel:t}),gi(Zn,o,e)}return e}import{PublicKey as R}from"@solana/web3.js";var Hn=new R("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),jn=new R("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),$n=new R("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ut=new R("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),du=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ai=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Jn=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),eo=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),pu=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),wi=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),to=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ki=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ti=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),no=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),fu=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),hi=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Gt=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ii=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),yu=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Bi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Si=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),xi=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),bu=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),gu=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Pu=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Au=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),wu=new R("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");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 Ki}from"@solana/spl-token";var Cu=q("Raydium_farm_config"),Ci=new zt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ri=new zt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1"),Ru=Ki,Lu=new zt("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX"),Xt={3:io,5:ro,6:Qt},Yt={3:et,5:ao,6:so},Li=o=>[3,4,5,6].indexOf(o)!==-1,Oi=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)},Le={"Standard SPL":0,"Option tokens":1},oo={[Hn.toString()]:3,[jn.toString()]:4,[$n.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")]),Ni=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")]),Mi=A([n("state"),n("nonce"),a("lpVault"),a("rewardVault"),a(),a(),n(),n(),n("totalReward"),F("perShareReward"),n("lastSlot"),n("perSlotReward")]),Fi=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()]),vi=A([n(),n("state"),n("nonce"),n("validRewardTokenNum"),F("rewardMultiplier"),n("rewardPeriodMax"),n("rewardPeriodMin"),n("rewardPeriodExtend"),a("lpMint"),a("lpVault"),h(Ni,5,"rewardInfos"),a("creator"),a(),h(n(),32,"padding")]),io=new Proxy(Mi,{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)}}),ro=new Proxy(Fi,{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(vi,{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(Le).find(l=>String(l[1])===s.rewardType.toString()))!=null?u:["Standard SPL"])[0]})})})}:Reflect.get(o,e,t)}}),Vi=A([n("isSet"),n("rewardPerSecond"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardType")]),jt=A([P("instruction"),n("nonce"),h(Vi,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")]),_u=A([n("state"),a("id"),a("owner"),n("deposited"),h(n(),1,"rewardDebts")]),et=A([n("state"),a("id"),a("owner"),n("deposited"),h(F(),1,"rewardDebts"),n(""),n("voteLockedBalance"),h(n(),15)]),Eu=A([n("state"),a("id"),a("owner"),n("deposited"),h(n(),2,"rewardDebts")]),ao=A([n("state"),a("id"),a("owner"),n("deposited"),h(F(),2,"rewardDebts"),h(n(),17)]),so=A([n(),n("state"),a("id"),a("owner"),n("deposited"),h(F(),5,"rewardDebts"),h(n(),16)]),ue=A([P("instruction"),n("amount")]),_i=A([a("mint"),a("grantAuthority"),n("baselineVoteWeightScaledFactor"),n("maxExtraLockupVoteWeightScaledFactor"),n("lockupSaturationSecs"),zn("digitShift"),h(P(),7,"reserved1"),h(n(),7,"reserved2")]),uo=A([E(8),a("governanceProgramId"),a("realm"),a("realmGoverningTokenMint"),a("realmAuthority"),h(P(),32,"reserved1"),h(_i,4,"votingMints"),Ee("timeOffset"),P("bump"),h(P(),7,"reserved2"),h(n(),11,"reserved3")]),Ei=A([Ee("startTime"),Ee("endTime"),P("kind"),h(P(),15,"reserved")]),Di=A([h(Ei,1,"lockup"),n("amountDeposited_native"),n("amountInitiallyLockedNative"),pe("isUsed"),pe("allowClawback"),P("votingMintConfigIdx"),h(P(),29,"reserved")]),co=A([E(8),a("voterAuthority"),a("registrar"),h(Di,32,"deposits"),P("voterBump"),P("voterWweightRecordBump"),h(P(),94,"reserved")]);import de from"bn.js";import{PublicKey as Wi}from"@solana/web3.js";import{MINT_SIZE as Qu,TOKEN_PROGRAM_ID as Zu,getTransferFeeConfig as Hu,unpackMint as ju}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),l=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);l=(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 Wi(T),rentEpoch:S}}return null})))}else try{l=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 l.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 Ve from"bn.js";import hC from"decimal.js";import Zi from"big.js";import kt from"bn.js";import qi from"toformat";var Ui=qi,nt=Ui;import wt from"big.js";import zi from"bn.js";import Xi from"decimal.js-light";import ot from"bn.js";var lo=9007199254740991;function V(o){let e=q("Raydium_parseBigNumberish");if(o instanceof ot)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new ot(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=lo||o<=-lo)&&e.logWithError(`BigNumberish number overflow: ${o}`),new ot(String(o))):typeof o=="bigint"?new ot(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new ot(0))}var At=q("module/fraction"),nn=nt(wt),it=nt(Xi),Yi={[0]:it.ROUND_DOWN,[1]:it.ROUND_HALF_UP,[2]:it.ROUND_UP},Qi={[0]:wt.roundDown,[1]:wt.roundHalfUp,[2]:wt.roundUp},G=class{constructor(e,t=new zi(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)||At.logWithError(`${e} is not an integer.`),e<=0&&At.logWithError(`${e} is not positive.`),it.set({precision:e+1,rounding:Yi[i]});let r=new it(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)||At.logWithError(`${e} is not an integer.`),e<0&&At.logWithError(`${e} is negative.`),nn.DP=e,nn.RM=Qi[i]||1,new nn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Hi=q("Raydium_amount"),mo=nt(Zi);function ji(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")):Hi.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 kt(0),l=on.pow(new kt(t.decimals));if(r)u=V(i);else{let p=new kt(0),f=new kt(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[b,w]=ji(i.toString(),t.decimals);p=V(b),f=V(w)}p=p.mul(l),u=p.add(f)}super(u,l);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 mo.DP=this.token.decimals,new mo(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as $i}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as po}from"@solana/spl-token";var Tt={chainId:101,address:$i.default.toBase58(),programId:po.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ke={chainId:101,address:"So11111111111111111111111111111111111111112",programId:po.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 fo,SYSVAR_RENT_PUBKEY as Ji}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as er}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:er,isWritable:!1}),c({pubkey:fo.programId,isWritable:!1}),c({pubkey:Ji,isWritable:!1})];function yo({publicKey:o,transformSol:e}){let t=an(o.toString());if(t instanceof Z)return e&&t.equals(Ke)?Ie:t;if(e&&t.toString()===Ke.toBase58())return Ie;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"),Oe=new Z("SysvarRent111111111111111111111111111111111"),Cc=new Z("SysvarC1ock11111111111111111111111111111111"),ht=new Z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),It=new Z("Sysvar1nstructions1111111111111111111111111"),tr=fo.programId,Rc=new Z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Lc=new Z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Oc=new Z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Nc=new Z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Mc=new Z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Fc=new Z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),vc=new Z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Vc=new Z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),_c=new Z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ec=new Z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Dc=new Z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ie=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=ke.decimals,this.symbol=ke.symbol,this.name=ke.name,this.mint=new un(ke.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:yo({publicKey:e}),this.isToken2022=u}equals(e){return this===e?!0:this.mint.equals(e.mint)}},oe=cn;oe.WSOL=new cn(W(N({},ke),{mint:ke.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}},Bt=ln;Bt.SOL=new ln(Tt);import nr from"bn.js";var bo=new G(new nr(100)),Be=class extends G{toSignificant(e=5,t,i){return this.mul(bo).toSignificant(e,t,i)}toFixed(e=2,t,i){return this.mul(bo).toFixed(e,t,i)}};var or=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&&or.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 BK}from"lodash";import ll from"axios";var go={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_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",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"},ir=W(N({},go),{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 Nl=q("Raydium_Api");import{PublicKey as sd,SystemProgram as ud}from"@solana/web3.js";import{AccountLayout as pd,createAssociatedTokenAccountIdempotentInstruction as fd,TOKEN_PROGRAM_ID as yd,TOKEN_2022_PROGRAM_ID as bd}from"@solana/spl-token";import{PublicKey as Ge,sendAndConfirmTransaction as gn,SystemProgram as lr,Transaction as st,TransactionMessage as ut,VersionedTransaction as ct}from"@solana/web3.js";import mr from"axios";import{PublicKey as dn,AddressLookupTableAccount as qe}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],l=e[s];if(!u)continue;let p=new qe({key:l,state:qe.deserialize(u.data)});r[l.toString()]=p,t==="devnet"?We[l.toString()]=p:De[l.toString()]=p}return r}var De={},fn=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(De[e])return De;let t=new dn(e),i=await o.getAccountInfo(t);return i&&(De[e]=new qe({key:t,state:qe.deserialize(i.data)})),De},We={},yn=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(We[e])return We;let t=new dn(e),i=await o.getAccountInfo(t);return i&&(We[e]=new qe({key:t,state:qe.deserialize(i.data)})),We};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 Po,Keypair as wo,PublicKey as rr,Transaction as ko,TransactionMessage as ar,VersionedTransaction as To}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as sr}from"@solana/spl-token";var Ao=q("Raydium_txUtil"),ho=1644;function St(o){let e=[],t=[];return o.microLamports&&(e.push(Po.setComputeUnitPrice({microLamports:o.microLamports})),t.push(H.SetComputeUnitPrice)),o.units&&(e.push(Po.setComputeUnitLimit({units:o.units})),t.push(H.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Ue(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 xt(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&&Ao.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&Ao.logWithError(`no signers provided:, ${e.toString()}`);let t=new ko;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...o);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<ho}catch{return!1}}function j(o,e){let[t,i]=rr.findProgramAddressSync(o,e);return{publicKey:t,nonce:i}}function rt({instructions:o,payer:e,signers:t}){return bn(o,[e,...t])}function at({instructions:o,payer:e,lookupTableAddressAccount:t,recentBlockhash:i=wo.generate().publicKey.toString()}){let s=new ar({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new To(s).serialize()).toString("base64").length<ho}catch{return!1}}var ur=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),cr=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof To&&(e=ur(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ne(o){let e=[];return o.forEach(t=>{t instanceof ko&&(t.recentBlockhash||(t.recentBlockhash=sr.toBase58()),t.feePayer||(t.feePayer=wo.generate().publicKey)),e.push(cr(t))}),console.log("simulate tx string:",e),e}var Kt=2e3,Ct=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 mr.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}=St(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(lr.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Ge(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(l=>l!==Ge.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 st;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:l,notSendToRpc:p}=r||{},f=s!=null?s:await Ue(this.connection,this.blockhashCommitment);if(t.recentBlockhash=f,this.signers.length&&t.sign(...this.signers),Ne([t]),(b=this.owner)!=null&&b.isKeyPair)return{txId:l?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)],l=[this.signers,...s.map(b=>b.signers)],p=[...this.instructionTypes,...s.map(b=>b.instructionTypes).flat()];return(f=this.owner)!=null&&f.signer&&l.forEach(b=>{b.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:u,signers:l,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 Ue(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,l[I].length&&_.sign(...l[I]),_));Ne(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=X=>{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=X.err?"error":"success"}g==null||g([...I]),X.err||K()};this.loopMultiTxStatus&&(M=setInterval(async()=>{var X;if(O){clearInterval(M);return}try{let z=await this.connection.getTransaction(C,{commitment:"confirmed",maxSupportedTransactionVersion:0});z&&(O=!0,clearInterval(M),ae({err:((X=z.meta)==null?void 0:X.err)||null}),console.log("tx status from getTransaction:",C))}catch(z){O=!0,clearInterval(M),console.error("getTransaction timeout:",z,C)}},Kt)),D=this.connection.onSignature(C,X=>{if(O){this.connection.removeSignatureListener(D);return}O=!0,ae(X)},"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"]),l=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)l[T]===void 0&&f.push(new Ge(T));let b=await pn({connection:this.connection,address:f});for(let[T,S]of Object.entries(b))l[T]=S;let w=r?Ge.default.toBase58():s!=null?s:await Ue(this.connection,this.blockhashCommitment),g=new ut({payerKey:this.feePayer,recentBlockhash:w,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(l));((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 ct(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(Ne([y]),(_=this.owner)!=null&&_.isKeyPair){let I=await this.connection.sendTransaction(y,{skipPreflight:S});return x&&await xt(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)],l=[this.signers,...s.map(b=>b.signers)],p=[...this.instructionTypes,...s.map(b=>b.instructionTypes).flat()];return(f=this.owner)!=null&&f.signer&&l.forEach(b=>{b.some(w=>w.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),u.forEach(async(b,w)=>{b.sign(l[w])}),{builder:this,transactions:u,signers:l,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),Ne(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 xt(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,_)}},Kt)),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?St(i):{instructions:[],instructionTypes:[]},u=this.signers.reduce((y,B)=>W(N({},y),{[B.publicKey.toBase58()]:B}),{}),l=[],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 Ge(x));if(y!==t[b]&&f.length<12&&(rt({instructions:k,payer:this.feePayer,signers:S})||rt({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,rt({instructions:i?[...s.instructions,...f]:[...f],payer:this.feePayer,signers:S})?l.push(new st().add(...s.instructions,...f)):l.push(new st().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);rt({instructions:i?[...s.instructions,...f]:[...f],payer:this.feePayer,signers:B.map(k=>k.publicKey)})?l.push(new st().add(...s.instructions,...f)):l.push(new st().add(...f)),p.push(B)}return l.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:l,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 Ue(this.connection,this.blockhashCommitment);if(l.forEach(async(I,K)=>{I.recentBlockhash=v,p[K].length&&I.sign(...p[K])}),Ne(l),(_=this.owner)!=null&&_.isKeyPair){if(B){let I=0,K=[];for(let C of l){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:l}}return{txIds:await Promise.all(l.map(async I=>await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:x}))),signedTxs:l}}if(this.signAllTransactions){let I=await this.signAllTransactions(l.slice(T,l.length)),K=[...l.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,X=null,z=null,ne=Y=>{X!==null&&clearInterval(X),z!==null&&this.connection.removeSignatureListener(z);let se=O.findIndex(Te=>Te.txId===D);if(se>-1){if(O[se].status==="error"||O[se].status==="success")return;O[se].status=Y.err?"error":"success"}k==null||k([...O]),Y.err||M()};this.loopMultiTxStatus&&(X=setInterval(async()=>{var Y;if(ae){clearInterval(X);return}try{let se=await this.connection.getTransaction(D,{commitment:"confirmed",maxSupportedTransactionVersion:0});se&&(ae=!0,clearInterval(X),ne({err:((Y=se.meta)==null?void 0:Y.err)||null}),console.log("tx status from getTransaction:",D))}catch(se){ae=!0,clearInterval(X),console.error("getTransaction timeout:",se,D)}},Kt)),z=this.connection.onSignature(D,Y=>{if(ae){this.connection.removeSignatureListener(z);return}ae=!0,ne(Y)},"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,l=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 Ge(I));let w=await pn({connection:this.connection,address:b});for(let[I,K]of Object.entries(w))p[I]=K;let g=t?St(t):{instructions:[],instructionTypes:[]},y=await Ue(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&&(at({instructions:C,payer:this.feePayer,lookupTableAddressAccount:p})||at({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&&at({instructions:[...g.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:p,recentBlockhash:y})){let M=new ut({payerKey:this.feePayer,recentBlockhash:y,instructions:[...g.instructions,...S]}).compileToV0Message(Object.values(p));k.push(new ct(M))}else{let M=new ut({payerKey:this.feePayer,recentBlockhash:y,instructions:[...S]}).compileToV0Message(Object.values(p));k.push(new ct(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&&at({instructions:[...g.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:p,recentBlockhash:y})){let C=new ut({payerKey:this.feePayer,recentBlockhash:y,instructions:[...g.instructions,...S]}).compileToV0Message(Object.values(p));k.push(new ct(C))}else{let C=new ut({payerKey:this.feePayer,recentBlockhash:y,instructions:[...S]}).compileToV0Message(Object.values(p));k.push(new ct(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(X,z)=>{T[z].length&&X.sign(T[z]),M&&(X.message.recentBlockhash=M)}),Ne(k),(ae=this.owner)!=null&&ae.isKeyPair){if(K){let X=0,z=[];for(let ne of k){if(++X,X<=O){console.log("skip tx: ",X),z.push("tx skipped");continue}let Y=await this.connection.sendTransaction(ne,{skipPreflight:D});await xt(this.connection,Y),z.push(Y)}return{txIds:z,signedTxs:k}}return{txIds:await Promise.all(k.map(async X=>await this.connection.sendTransaction(X,{skipPreflight:D}))),signedTxs:k}}if(this.signAllTransactions){let X=await this.signAllTransactions(k.slice(O,k.length)),z=[...k.slice(0,O),...X];if(K){let ne=0,Y=[],se=async()=>{if(!z[ne])return;if(ne<O){Y.push({txId:"",status:"success",signedTx:z[ne]}),C==null||C([...Y]),ne++,se();return}let Te=await this.connection.sendTransaction(z[ne],{skipPreflight:D});Y.push({txId:Te,status:"sent",signedTx:z[ne]}),C==null||C([...Y]),ne++;let $e=!1,_e=null,ft=null,Fn=Ce=>{_e!==null&&clearInterval(_e),ft!==null&&this.connection.removeSignatureListener(ft);let he=Y.findIndex(Jo=>Jo.txId===Te);if(he>-1){if(Y[he].status==="error"||Y[he].status==="success")return;Y[he].status=Ce.err?"error":"success"}C==null||C([...Y]),Ce.err||se()};this.loopMultiTxStatus&&(_e=setInterval(async()=>{var Ce;if($e){clearInterval(_e);return}try{let he=await this.connection.getTransaction(Te,{commitment:"confirmed",maxSupportedTransactionVersion:0});he&&($e=!0,clearInterval(_e),Fn({err:((Ce=he.meta)==null?void 0:Ce.err)||null}),console.log("tx status from getTransaction:",Te))}catch(he){$e=!0,clearInterval(_e),console.error("getTransaction timeout:",he,Te)}},Kt)),ft=this.connection.onSignature(Te,Ce=>{if($e){this.connection.removeSignatureListener(ft);return}$e=!0,Fn(Ce)},"confirmed"),this.connection.getSignatureStatus(Te)};return se(),{txIds:[],signedTxs:z}}else{let ne=[];for(let Y=0;Y<z.length;Y+=1){let se=await this.connection.sendTransaction(z[Y],{skipPreflight:D});ne.push(se)}return{txIds:ne,signedTxs:z}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:l||{}}}};var Pn=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),le=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=q(t)}createTxBuilder(e){return this.scope.checkOwner(),new Ct({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 _m,SystemProgram as Dm}from"@solana/web3.js";import Um from"bn.js";import{createCloseAccountInstruction as Ym,createInitializeAccountInstruction as Qm,createTransferInstruction as Zm,TOKEN_PROGRAM_ID as Hm}from"@solana/spl-token";import{Keypair as Bm,PublicKey as Sm}from"@solana/web3.js";import Cm from"bn.js";import{TOKEN_PROGRAM_ID as Om}from"@solana/spl-token";var ze=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 Kg,SystemProgram as Cg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Lg}from"@solana/spl-token";import{PublicKey as pr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fr}from"@solana/spl-token";function ce(o,e,t){return j([o.toBuffer(),(t!=null?t:fr).toBuffer(),e.toBuffer()],new pr("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import Wg from