@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 96.4 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 ws,blob as ii,Blob as ks,cstr as Ts,f32 as hs,f32be as Is,f64 as Bs,f64be as Ss,greedy as xs,Layout as ri,ns64 as Ks,ns64be as Cs,nu64 as Rs,nu64be as Ls,offset as ai,s16 as Os,s16be as Ns,s24 as Ms,s24be as Fs,s32 as si,s32be as vs,s40 as Vs,s40be as _s,s48 as Es,s48be as Ds,s8 as Ws,seq as ui,struct as qs,Structure as ci,u16 as li,u16be as Us,u24 as Gs,u24be as zs,u32 as mi,u32be as Xs,u40 as Ys,u40be as Qs,u48 as Zs,u48be as Hs,u8 as di,UInt as pi,union as js,Union as $s,unionLayoutDiscriminator as Js,utf8 as eu}from"@solana/buffer-layout";var bt=ri,En=ci;var Et=pi;var Dn=di,$=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"),pu=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ai=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Jn=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),eo=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),fu=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),wi=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),to=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ki=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ti=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),no=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),yu=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),hi=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Gt=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ii=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),bu=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Bi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Si=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),xi=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),gu=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Pu=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Au=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),wu=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ku=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 Ru=q("Raydium_farm_config"),Ci=new zt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ri=new zt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1"),Lu=Ki,Ou=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")]),Eu=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)]),Du=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 Zu,TOKEN_PROGRAM_ID as Hu,getTransferFeeConfig as ju,unpackMint as $u}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 SC 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"),Rc=new Z("SysvarC1ock11111111111111111111111111111111"),ht=new Z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),It=new Z("Sysvar1nstructions1111111111111111111111111"),tr=fo.programId,Lc=new Z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Oc=new Z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Nc=new Z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Mc=new Z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Fc=new Z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),vc=new Z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Vc=new Z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),_c=new Z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ec=new Z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Dc=new Z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Wc=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)}},ie=cn;ie.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 KK}from"lodash";import ml 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 Ml=q("Raydium_Api");import{PublicKey as ud,SystemProgram as cd}from"@solana/web3.js";import{AccountLayout as fd,createAssociatedTokenAccountIdempotentInstruction as yd,TOKEN_PROGRAM_ID as bd,TOKEN_2022_PROGRAM_ID as gd}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(oe=>oe.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,oe=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),oe({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,oe(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 oe of k){if(++X,X<=O){console.log("skip tx: ",X),z.push("tx skipped");continue}let Y=await this.connection.sendTransaction(oe,{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 oe=0,Y=[],se=async()=>{if(!z[oe])return;if(oe<O){Y.push({txId:"",status:"success",signedTx:z[oe]}),C==null||C([...Y]),oe++,se();return}let Te=await this.connection.sendTransaction(z[oe],{skipPreflight:D});Y.push({txId:Te,status:"sent",signedTx:z[oe]}),C==null||C([...Y]),oe++;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 oe=[];for(let Y=0;Y<z.length;Y+=1){let se=await this.connection.sendTransaction(z[Y],{skipPreflight:D});oe.push(se)}return{txIds:oe,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 Em,SystemProgram as Wm}from"@solana/web3.js";import Gm from"bn.js";import{createCloseAccountInstruction as Qm,createInitializeAccountInstruction as Zm,createTransferInstruction as Hm,TOKEN_PROGRAM_ID as jm}from"@solana/spl-token";import{Keypair as Sm,PublicKey as xm}from"@solana/web3.js";import Rm from"bn.js";import{TOKEN_PROGRAM_ID as Nm}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 Og,SystemProgram as Ng}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Fg}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 zg from"