@sega-so/sega-sdk
Version:
An SDK for building applications on top of SEGA.
1 lines • 124 kB
JavaScript
"use strict";var Nr=Object.create;var dt=Object.defineProperty,Mr=Object.defineProperties,Er=Object.getOwnPropertyDescriptor,Dr=Object.getOwnPropertyDescriptors,Fr=Object.getOwnPropertyNames,Ut=Object.getOwnPropertySymbols,vr=Object.getPrototypeOf,In=Object.prototype.hasOwnProperty,Io=Object.prototype.propertyIsEnumerable;var me=Math.pow,ko=(n,e,t)=>e in n?dt(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,L=(n,e)=>{for(var t in e||(e={}))In.call(e,t)&&ko(n,t,e[t]);if(Ut)for(var t of Ut(e))Io.call(e,t)&&ko(n,t,e[t]);return n},N=(n,e)=>Mr(n,Dr(e));var ue=(n,e)=>{var t={};for(var o in n)In.call(n,o)&&e.indexOf(o)<0&&(t[o]=n[o]);if(n!=null&&Ut)for(var o of Ut(n))e.indexOf(o)<0&&Io.call(n,o)&&(t[o]=n[o]);return t};var Wr=(n,e)=>{for(var t in e)dt(n,t,{get:e[t],enumerable:!0})},So=(n,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Fr(e))!In.call(n,r)&&r!==t&&dt(n,r,{get:()=>e[r],enumerable:!(o=Er(e,r))||o.enumerable});return n};var H=(n,e,t)=>(t=n!=null?Nr(vr(n)):{},So(e||!n||!n.__esModule?dt(t,"default",{value:n,enumerable:!0}):t,n)),Vr=n=>So(dt({},"__esModule",{value:!0}),n);var y=(n,e,t)=>new Promise((o,r)=>{var i=c=>{try{s(t.next(c))}catch(u){r(u)}},a=c=>{try{s(t.throw(c))}catch(u){r(u)}},s=c=>c.done?o(c.value):Promise.resolve(c.value).then(i,a);s((t=t.apply(n,e)).next())});var ca={};Wr(ca,{ACCOUNT_TYPE_SIZE:()=>qr,ALL_PROGRAM_ID:()=>qi,ANAMint:()=>ai,API_URLS:()=>de,AccountType:()=>Ko,Api:()=>Bt,BNDivCeil:()=>Ce,BNLayout:()=>Fe,BN_100:()=>Ii,BN_1000:()=>Si,BN_10000:()=>Ci,BN_FIVE:()=>ki,BN_ONE:()=>Ai,BN_TEN:()=>Ne,BN_THREE:()=>xi,BN_TWO:()=>wi,BN_ZERO:()=>Ae,BitStructure:()=>$i,Blob:()=>to,CLOCK_PROGRAM_ID:()=>Zr,CREATE_CPMM_POOL_AUTH:()=>xt,CREATE_CPMM_POOL_FEE_ACC:()=>Hn,CREATE_CPMM_POOL_PROGRAM:()=>wt,ConstantProductCurve:()=>Nt,CpmmConfigInfoLayout:()=>To,CpmmFee:()=>Mt,CpmmPoolInfoLayout:()=>Po,Currency:()=>ht,CurrencyAmount:()=>bt,CurveCalculator:()=>Dt,DEVNET_PROGRAM_ID:()=>Jn,DEV_API_URLS:()=>zi,DEV_CREATE_CPMM_POOL_AUTH:()=>er,DEV_CREATE_CPMM_POOL_FEE_ACC:()=>tr,DEV_CREATE_CPMM_POOL_PROGRAM:()=>Qo,ETHMint:()=>ui,FEE_RATE_DENOMINATOR_VALUE:()=>wn,Fraction:()=>v,INSTRUCTION_PROGRAM_ID:()=>$r,InstructionType:()=>V,JupTokenType:()=>Qn,LOCK_LIQUIDITY_SEED:()=>Br,LOOKUP_TABLE_CACHE:()=>It,Layout:()=>rt,LogLevel:()=>Co,Logger:()=>qt,MAX_BASE64_SIZE:()=>qn,MEMO_PROGRAM_ID:()=>Jr,MEMO_PROGRAM_ID2:()=>$t,METADATA_PROGRAM_ID:()=>Qe,NRVMint:()=>si,Network:()=>ar,OptionLayout:()=>gn,Owner:()=>et,PAIMint:()=>Qr,Percent:()=>ie,Price:()=>Pe,RAYMint:()=>Xr,RENT_PROGRAM_ID:()=>Xt,RoundDirection:()=>ao,Rounding:()=>jt,SESSION_KEY:()=>Zn,SOLANA_API_URLS:()=>Ji,SOLANA_CPMM_POOL_AUTH:()=>or,SOLANA_CPMM_POOL_FEE_ACC:()=>rr,SOLANA_CPMM_POOL_PROGRAM:()=>nr,SOLANA_PROGRAM_ID:()=>zn,SOLMint:()=>Xe,SOL_INFO:()=>Te,SONIC_PROGRAM_ID:()=>Yn,SPL_MINT_LAYOUT:()=>qs,SRMMint:()=>ei,STORAGE_KEY:()=>cn,SYSTEM_PROGRAM_ID:()=>Rn,Sega:()=>wo,Structure:()=>yn,TOKEN_WSOL:()=>pe,Token:()=>Y,TokenAmount:()=>ye,TxBuilder:()=>St,TxVersion:()=>Un,UInt:()=>mn,USDCMint:()=>ti,USDHMint:()=>ii,USDTMint:()=>ni,Union:()=>bn,WSOLMint:()=>ce,WideBits:()=>oo,WrappedLayout:()=>Be,_100_PERCENT:()=>Nn,accountMeta:()=>zt,add:()=>Ti,addComputeBudget:()=>Tt,archiveRpcs:()=>cr,array:()=>Fs,bits:()=>dn,blob:()=>ke,bool:()=>Lt,ceilDiv:()=>Ir,checkLegacyTxSize:()=>tt,checkV0TxSize:()=>nt,chunkArray:()=>Gt,closeAccountInstruction:()=>at,collectCpFeeInstruction:()=>sa,commonSystemAccountMeta:()=>zr,confirmTransaction:()=>Pt,cpmmLockPositionInstruction:()=>Kr,createLogger:()=>j,createWSolAccountInstructions:()=>Pn,cstr:()=>Cs,currencyEquals:()=>ci,decimalToFraction:()=>jo,decodeBool:()=>hr,div:()=>gi,divCeil:()=>Bi,encodeBool:()=>Tr,endlessRetry:()=>Zi,eq:()=>vo,f32:()=>ws,f32be:()=>xs,f64:()=>ks,f64be:()=>Is,fetchMultipleMintInfos:()=>Kn,findProgramAddress:()=>le,floorDiv:()=>uo,forecastTransactionSize:()=>At,generatePubKey:()=>Ot,getATAAddress:()=>we,getConnection:()=>Hi,getCpLockPda:()=>po,getCpmmPdaAmmConfigId:()=>na,getCpmmPdaPoolId:()=>kn,getCreatePoolKeys:()=>mo,getDate:()=>Vn,getEpochInfo:()=>Vi,getMax:()=>hi,getMultipleAccountsInfo:()=>ze,getMultipleAccountsInfoWithCustomFlags:()=>Je,getMultipleLookupTableInfo:()=>an,getPdaLpMint:()=>Cr,getPdaMetadataKey:()=>jn,getPdaObservationId:()=>mt,getPdaPoolAuthority:()=>vt,getPdaVault:()=>lo,getProgramId:()=>Yi,getRecentBlockHash:()=>Ge,getSessionKey:()=>mr,getTime:()=>Yo,getTimestamp:()=>Pi,getTransferAmountFee:()=>Gi,getTransferAmountFeeV2:()=>De,greedy:()=>Xi,gt:()=>Fo,gte:()=>fi,i128:()=>Os,i64:()=>_s,i8:()=>Ls,initTokenAccountInstruction:()=>Tn,intersection:()=>Mi,isDateAfter:()=>Ri,isDateBefore:()=>Oi,isDecimal:()=>Ho,isMeaningfulNumber:()=>bi,isNumber:()=>Wn,jsonInfo2PoolKeys:()=>Mn,lt:()=>pi,lte:()=>di,mSOLMint:()=>oi,makeCpmmLockInstruction:()=>ia,makeCreateCpmmPoolInInstruction:()=>fo,makeDepositCpmmInInstruction:()=>go,makeSwapCpmmBaseInInstruction:()=>bo,makeSwapCpmmBaseOutInstruction:()=>ho,makeTransferInstruction:()=>so,makeWithdrawCpmmInInstruction:()=>yo,minExpirationTime:()=>ji,mul:()=>on,notInnerObject:()=>rn,ns64:()=>gs,ns64be:()=>As,nu64:()=>ns,nu64be:()=>us,offset:()=>fn,offsetDateTime:()=>Ni,option:()=>Rs,parseBigNumberish:()=>ne,parseNumberInfo:()=>Me,parseSimulateLogToJson:()=>vi,parseSimulateValue:()=>Wi,parseTokenAccountResp:()=>io,parseTokenInfo:()=>Gs,printSimulate:()=>Ee,programIds:()=>lr,publicKey:()=>U,recursivelyDecimalToFraction:()=>Fn,rpcs:()=>ur,rustEnum:()=>Ds,s16:()=>ls,s16be:()=>ys,s24:()=>ms,s24be:()=>bs,s32:()=>ps,s32be:()=>hs,s40:()=>ds,s40be:()=>Ts,s48:()=>fs,s48be:()=>Ps,s8:()=>cs,seq:()=>Ie,setLoggerLevel:()=>Ur,shakeFractionDecimal:()=>qo,simulateMultipleInstruction:()=>Fi,simulateTransaction:()=>Jo,sleep:()=>En,solToWSol:()=>Ze,solToWSolToken:()=>zs,splAccountLayout:()=>st,splitNumber:()=>_n,stSOLMint:()=>ri,str:()=>Es,struct:()=>G,sub:()=>yi,tagged:()=>Ms,tenExponential:()=>nn,toApiV3Token:()=>He,toBN:()=>Go,toBuffer:()=>Gn,toFeeConfig:()=>lt,toFraction:()=>vn,toFractionWithDecimals:()=>mi,toPercent:()=>Ki,toToken:()=>Hs,toTokenAmount:()=>Ys,toTokenInfo:()=>js,toTokenPrice:()=>Li,toTotalPrice:()=>_i,toUsdCurrency:()=>Dn,transformTxToBase64:()=>Ui,tryParsePublicKey:()=>Zt,txToBase64:()=>Zo,u128:()=>Ks,u16:()=>no,u16be:()=>os,u24:()=>Qi,u24be:()=>rs,u32:()=>ve,u32be:()=>is,u40:()=>es,u40be:()=>ss,u48:()=>ts,u48be:()=>as,u64:()=>_,u8:()=>oe,union:()=>vs,unionArr:()=>ua,unionLayoutDiscriminator:()=>Ss,uniq:()=>Di,updateReqHistory:()=>Ct,utf8:()=>Bs,validateAndParsePublicKey:()=>Jt,vec:()=>Ns,vecU8:()=>Pr,wSolToSolToken:()=>Js,xor:()=>Ei,zeros:()=>Ws});module.exports=Vr(ca);var Xn=H(require("axios"));var Bn=require("@solana/web3.js");var qe=require("lodash"),Co=(r=>(r[r.Error=0]="Error",r[r.Warning=1]="Warning",r[r.Info=2]="Info",r[r.Debug=3]="Debug",r))(Co||{}),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(o=>typeof o=="object"?JSON.stringify(o):o).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}},Sn={},Bo={};function j(n){let e=(0,qe.get)(Sn,n);if(!e){let t=(0,qe.get)(Bo,n);e=new qt({name:n,logLevel:t}),(0,qe.set)(Sn,n,e)}return e}function Ur(n,e){(0,qe.set)(Bo,n,e);let t=(0,qe.get)(Sn,n);t&&(t.level=e)}var Re=require("@solana/spl-token");var Cn=j("Sega_accountInfo_util");function ze(n,e,t){return y(this,null,function*(){let{batchRequest:o,commitment:r="confirmed",chunkCount:i=100}=L({batchRequest:!1},t),a=Gt(e,i),s=new Array(a.length).fill([]);if(o){let c=a.map(l=>({methodName:"getMultipleAccounts",args:n._buildArgs([l.map(p=>p.toBase58())],r,"base64")})),u=Gt(c,10);s=(yield(yield Promise.all(u.map(l=>y(this,null,function*(){return yield n._rpcBatchRequest(l)})))).flat()).map(l=>(l.error&&Cn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.error.message}`),l.result.value.map(d=>{if(d){let{data:p,executable:f,lamports:b,owner:g,rentEpoch:k}=d;return p.length!==2&&p[1]!=="base64"&&Cn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:f,lamports:b,owner:new Bn.PublicKey(g),rentEpoch:k}}return null})))}else try{s=yield Promise.all(a.map(c=>n.getMultipleAccountsInfo(c,r)))}catch(c){c instanceof Error&&Cn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return s.flat()})}function Je(n,e,t){return y(this,null,function*(){let o=yield ze(n,e.map(r=>r.pubkey),t);return e.map((r,i)=>N(L({},r),{accountInfo:o[i]}))})}var Ko=(o=>(o[o.Uninitialized=0]="Uninitialized",o[o.Mint=1]="Mint",o[o.Account=2]="Account",o))(Ko||{}),qr=1;function Kn(o){return y(this,arguments,function*({connection:n,mints:e,config:t}){var a,s,c;if(e.length===0)return{};let r=yield Je(n,e.map(u=>({pubkey:Ze(u)})),t),i={};for(let u of r){if(!u.accountInfo||u.accountInfo.data.length<Re.MINT_SIZE){console.log("invalid mint account",u.pubkey.toBase58());continue}let m=(0,Re.unpackMint)(u.pubkey,u.accountInfo,(a=u.accountInfo)==null?void 0:a.owner);i[u.pubkey.toString()]=N(L({},m),{programId:((s=u.accountInfo)==null?void 0:s.owner)||Re.TOKEN_PROGRAM_ID,feeConfig:(c=(0,Re.getTransferFeeConfig)(m))!=null?c:void 0})}return i[Bn.PublicKey.default.toBase58()]=i[ce.toBase58()],i})}var J=H(require("bn.js")),Uo=H(require("decimal.js"));var No=H(require("big.js")),_e=H(require("bn.js"));var Lo=H(require("toformat")),Gr=Lo.default,ft=Gr;var gt=H(require("big.js")),Oo=H(require("bn.js")),Ro=H(require("decimal.js-light"));var $e=H(require("bn.js"));var jt=(o=>(o[o.ROUND_DOWN=0]="ROUND_DOWN",o[o.ROUND_HALF_UP=1]="ROUND_HALF_UP",o[o.ROUND_UP=2]="ROUND_UP",o))(jt||{}),_o=9007199254740991;function ne(n){let e=j("Sega_parseBigNumberish");if(n instanceof $e.default)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new $e.default(n);e.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&e.logWithError(`BigNumberish number underflow: ${n}`),(n>=_o||n<=-_o)&&e.logWithError(`BigNumberish number overflow: ${n}`),new $e.default(String(n))):typeof n=="bigint"?new $e.default(n.toString()):(e.error(`invalid BigNumberish value: ${n}`),new $e.default(0))}var Ht=j("module/fraction"),Ln=ft(gt.default),yt=ft(Ro.default),jr={0:yt.ROUND_DOWN,1:yt.ROUND_HALF_UP,2:yt.ROUND_UP},Hr={0:gt.default.roundDown,1:gt.default.roundHalfUp,2:gt.default.roundUp},v=class n{constructor(e,t=new Oo.default(1)){this.numerator=ne(e),this.denominator=ne(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new n(this.denominator,this.numerator)}add(e){let t=e instanceof n?e:new n(ne(e));return this.denominator.eq(t.denominator)?new n(this.numerator.add(t.numerator),this.denominator):new n(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof n?e:new n(ne(e));return this.denominator.eq(t.denominator)?new n(this.numerator.sub(t.numerator),this.denominator):new n(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof n?e:new n(ne(e));return new n(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof n?e:new n(ne(e));return new n(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},o=1){Number.isInteger(e)||Ht.logWithError(`${e} is not an integer.`),e<=0&&Ht.logWithError(`${e} is not positive.`),yt.set({precision:e+1,rounding:jr[o]});let r=new yt(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},o=1){return Number.isInteger(e)||Ht.logWithError(`${e} is not an integer.`),e<0&&Ht.logWithError(`${e} is negative.`),Ln.DP=e,Ln.RM=Hr[o]||1,new Ln(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Yr=j("Sega_amount"),Yt=ft(No.default);function _n(n,e){let t="0",o="0";if(n.includes(".")){let r=n.split(".");r.length===2?([t,o]=r,o=o.padEnd(e,"0")):Yr.logWithError(`invalid number string, num: ${n}`)}else t=n;return[t,o.slice(0,e)||o]}var ye=class n extends v{constructor(e,t,o=!0,r){let i=new _e.default(0),a=Ne.pow(new _e.default(e.decimals));if(o)i=ne(t);else{let s=new _e.default(0),c=new _e.default(0);if(typeof t=="string"||typeof t=="number"||typeof t=="bigint"){let[u,m]=_n(t.toString(),e.decimals);s=ne(u),c=ne(m)}s=s.mul(a),i=s.add(c)}super(i,a),this.logger=j(r||"TokenAmount"),this.token=e}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(e){return this.token.equals(e.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(e.raw)}lt(e){return this.token.equals(e.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(e.raw)}add(e){return this.token.equals(e.token)||this.logger.logWithError("add token not equals"),new n(this.token,this.raw.add(e.raw))}subtract(e){return this.token.equals(e.token)||this.logger.logWithError("sub token not equals"),new n(this.token,this.raw.sub(e.raw))}toSignificant(e=this.token.decimals,t,o=0){return super.toSignificant(e,t,o)}toFixed(e=this.token.decimals,t,o=0){return e>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(e,t,o)}toExact(e={groupSeparator:""}){return Yt.DP=this.token.decimals,new Yt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e)}},bt=class n extends v{constructor(e,t,o=!0,r){let i=new _e.default(0),a=Ne.pow(new _e.default(e.decimals));if(o)i=ne(t);else{let s=new _e.default(0),c=new _e.default(0);if(typeof t=="string"||typeof t=="number"||typeof t=="bigint"){let[u,m]=_n(t.toString(),e.decimals);s=ne(u),c=ne(m)}s=s.mul(a),i=s.add(c)}super(i,a),this.logger=j(r||"TokenAmount"),this.currency=e}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(e){return this.currency.equals(e.currency)||this.logger.logWithError("gt currency not equals"),this.raw.gt(e.raw)}lt(e){return this.currency.equals(e.currency)||this.logger.logWithError("lt currency not equals"),this.raw.lt(e.raw)}add(e){return this.currency.equals(e.currency)||this.logger.logWithError("add currency not equals"),new n(this.currency,this.raw.add(e.raw))}sub(e){return this.currency.equals(e.currency)||this.logger.logWithError("sub currency not equals"),new n(this.currency,this.raw.sub(e.raw))}toSignificant(e=this.currency.decimals,t,o=0){return super.toSignificant(e,t,o)}toFixed(e=this.currency.decimals,t,o=0){return e>this.currency.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(e,t,o)}toExact(e={groupSeparator:""}){return Yt.DP=this.currency.decimals,new Yt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e)}};var Mo=require("@solana/web3.js"),On=require("@solana/spl-token"),Te={chainId:101,address:Mo.PublicKey.default.toBase58(),programId:On.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"sega",extensions:{coingeckoId:"solana"}},pe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:On.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"sega",extensions:{coingeckoId:"solana"}};var Qt=require("@solana/web3.js");var W=require("@solana/web3.js"),Eo=require("@solana/spl-token");function zt({pubkey:n,isSigner:e=!1,isWritable:t=!0}){return{pubkey:n,isWritable:t,isSigner:e}}var zr=[zt({pubkey:Eo.TOKEN_PROGRAM_ID,isWritable:!1}),zt({pubkey:W.SystemProgram.programId,isWritable:!1}),zt({pubkey:W.SYSVAR_RENT_PUBKEY,isWritable:!1})];function Jt({publicKey:n,transformSol:e}){let t=Zt(n.toString());if(t instanceof W.PublicKey)return e&&t.equals(Xe)?ce:t;if(e&&t.toString()===Xe.toBase58())return ce;if(typeof t=="string"){if(t===W.PublicKey.default.toBase58())return W.PublicKey.default;try{return new W.PublicKey(t)}catch(o){throw new Error("invalid public key")}}throw new Error("invalid public key")}function Zt(n){try{return new W.PublicKey(n)}catch(e){return n}}var Jr=new W.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),$t=new W.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xt=new W.PublicKey("SysvarRent111111111111111111111111111111111"),Zr=new W.PublicKey("SysvarC1ock11111111111111111111111111111111"),Qe=new W.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),$r=new W.PublicKey("Sysvar1nstructions1111111111111111111111111"),Rn=W.SystemProgram.programId,Xr=new W.PublicKey("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Qr=new W.PublicKey("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ei=new W.PublicKey("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ti=new W.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ni=new W.PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),oi=new W.PublicKey("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ri=new W.PublicKey("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ii=new W.PublicKey("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),si=new W.PublicKey("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ai=new W.PublicKey("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ui=new W.PublicKey("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ce=new W.PublicKey("So11111111111111111111111111111111111111112"),Xe=W.PublicKey.default;function Ze(n){return Jt({publicKey:n,transformSol:!0})}var en=class en{constructor({mint:e,decimals:t,symbol:o,name:r,skipMint:i=!1,isToken2022:a=!1}){if(e===Xe.toBase58()||e instanceof Qt.PublicKey&&Xe.equals(e)){this.decimals=pe.decimals,this.symbol=pe.symbol,this.name=pe.name,this.mint=new Qt.PublicKey(pe.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=o||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=i?Qt.PublicKey.default:Jt({publicKey:e}),this.isToken2022=a}equals(e){return this===e?!0:this.mint.equals(e.mint)}};en.WSOL=new en(N(L({},pe),{mint:pe.address}));var Y=en;var tn=class tn{constructor({decimals:e,symbol:t="UNKNOWN",name:o="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=o}equals(e){return this===e}};tn.SOL=new tn(Te);var ht=tn;function ci(n,e){return n instanceof Y&&e instanceof Y?n.equals(e):n instanceof Y||e instanceof Y?!1:n===e}var Do=H(require("bn.js"));var Nn=new v(new Do.default(100)),ie=class extends v{toSignificant(e=5,t,o){return this.mul(Nn).toSignificant(e,t,o)}toFixed(e=2,t,o){return this.mul(Nn).toFixed(e,t,o)}};var li=j("Sega_price"),Pe=class n extends v{constructor(e){let{baseToken:t,quoteToken:o,numerator:r,denominator:i}=e;super(r,i),this.baseToken=t,this.quoteToken=o,this.scalar=new v(nn(t.decimals),nn(o.decimals))}get raw(){return new v(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new n({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(e){this.quoteToken!==e.baseToken&&li.logWithError("mul token not equals");let t=super.mul(e);return new n({baseToken:this.baseToken,quoteToken:e.quoteToken,denominator:t.denominator,numerator:t.numerator})}toSignificant(e=this.quoteToken.decimals,t,o){return this.adjusted.toSignificant(e,t,o)}toFixed(e=this.quoteToken.decimals,t,o){return this.adjusted.toFixed(e,t,o)}};function X(n){if(n instanceof ie)return new v(n.numerator,n.denominator);if(n instanceof Pe)return n.adjusted;if(n instanceof ye)try{return X(n.toExact())}catch(o){return new v(Ae)}if(n instanceof v)return n;let e=String(n),t=Me(e);return new v(t.numerator,t.denominator)}function mi(n){var o;if(n instanceof ie)return{fr:new v(n.numerator,n.denominator)};if(n instanceof Pe)return{fr:n.adjusted};if(n instanceof ye)return{fr:X(n.toExact()),decimals:n.token.decimals};if(n instanceof v)return{fr:n};let e=String(n),t=Me(e);return{fr:new v(t.numerator,t.denominator),decimals:(o=t.dec)==null?void 0:o.length}}function pi(n,e){if(n==null||e==null)return!1;let t=X(n),o=X(e);return t.sub(o).numerator,t.sub(o).numerator.lt(Ae)}function Fo(n,e){if(n==null||e==null)return!1;let t=X(n),o=X(e);return t.sub(o).numerator.gt(Ae)}function di(n,e){if(n==null||e==null)return!1;let t=X(n),o=X(e);return t.sub(o).numerator.lte(Ae)}function fi(n,e){if(n==null||e==null)return!1;let t=X(n),o=X(e);return t.sub(o).numerator.gte(Ae)}function vo(n,e){if(n==null||e==null)return!1;let t=X(n),o=X(e);return t.sub(o).numerator.eq(Ae)}function gi(n,e){if(n==null||e==null)return;let t=X(n),o=X(e);try{return t.div(o)}catch(r){return t}}function yi(n,e){if(n==null||e==null)return;let t=X(n),o=X(e);return t.sub(o)}function bi(n){return n==null?!1:!vo(n,0)}function hi(n,e){return Fo(e,n)?e:n}function on(n,e){if(n==null||e==null)return;let t=X(n),o=X(e);return t.mul(o)}function Ti(n,e){if(n==null||e==null)return;let t=X(n),o=X(e);return t.add(o)}var Wo=require("@solana/web3.js"),Vo=H(require("bn.js"));function En(n){return y(this,null,function*(){new Promise(e=>setTimeout(e,n))})}function Pi(){return new Date().getTime()}function rn(n){return typeof n=="object"&&n!==null&&![Y,ye,Wo.PublicKey,v,Vo.default,Pe,ie].some(e=>typeof e=="object"&&n instanceof e)}function Mn(n){return typeof n=="string"?Zt(n):Array.isArray(n)?n.map(e=>Mn(e)):rn(n)?Object.fromEntries(Object.entries(n).map(([e,t])=>[e,Mn(t)])):n}var Ae=new J.default(0),Ai=new J.default(1),wi=new J.default(2),xi=new J.default(3),ki=new J.default(5),Ne=new J.default(10),Ii=new J.default(100),Si=new J.default(1e3),Ci=new J.default(1e4);function nn(n){return Ne.pow(ne(n))}function Me(n){var s;if(n===void 0)return{denominator:"1",numerator:"0"};if(n instanceof J.default)return{numerator:n.toString(),denominator:"1"};if(n instanceof v)return{denominator:n.denominator.toString(),numerator:n.numerator.toString()};let e=String(n),[,t="",o="",r=""]=(s=e.replace(",","").match(/(-?)(\d*)\.?(\d*)/))!=null?s:[],i="1"+"0".repeat(r.length),a=t+(o==="0"?"":o)+r||"0";return{denominator:i,numerator:a,sign:t,int:o,dec:r}}function Bi(n,e){let t=n.divmod(e);return t.mod.isZero()?t.div:t.div.isNeg()?t.div.isubn(1):t.div.iaddn(1)}function qo(n){var o;let[,e="",t=""]=(o=n.toFixed(2).match(/(-?)(\d*)\.?(\d*)/))!=null?o:[];return`${e}${t}`}function Go(n,e=0){return n instanceof J.default?n:new J.default(qo(vn(n).mul(Ne.pow(new J.default(String(e))))))}function vn(n){if(n instanceof ie)return new v(n.numerator,n.denominator);if(n instanceof Pe)return n.adjusted;if(n instanceof ye)try{return vn(n.toExact())}catch(o){return new v(Ae)}if(n instanceof v)return n;let e=String(n),t=Me(e);return new v(t.numerator,t.denominator)}function Ki(n,e){let{numerator:t,denominator:o}=Me(n);return new ie(new J.default(t),new J.default(o).mul(e!=null&&e.alreadyDecimaled?new J.default(100):new J.default(1)))}function Li(n){let{token:e,numberPrice:t,decimalDone:o}=n,r=new Y({mint:"",decimals:6,symbol:"usd",name:"usd",skipMint:!0}),{numerator:i,denominator:a}=Me(t),s=o?new J.default(i).mul(Ne.pow(new J.default(e.decimals))):i,c=new J.default(a).mul(Ne.pow(new J.default(r.decimals)));return new Pe({baseToken:r,denominator:c.toString(),quoteToken:new Y(N(L({},e),{skipMint:!0,mint:""})),numerator:s.toString()})}function Dn(n){let e=new ht({decimals:6,symbol:"usd",name:"usd"}),t=Go(on(n,me(10,e.decimals)));return new bt(e,t)}function _i(n,e){return Dn(!e||!n?0:on(n,e))}function jo(n){if(n==null)return;let{numerator:e,denominator:t}=Me(n.toString());return new v(e,t)}function Ho(n){return n instanceof Uo.default}function Fn(n){return Ho(n)?jo(n):Array.isArray(n)?n.map(e=>Fn(e)):rn(n)?Object.fromEntries(Object.entries(n).map(([e,t])=>[e,Fn(t)])):n}var Wn=n=>typeof n=="number",Vn=n=>n?new Date(n):new Date,Yo=n=>Vn(n).getTime();function Oi(n,e,t){let o=Wn(e)?e*((t==null?void 0:t.unit)==="s"?1e3:1):e;return new Date(n).getTime()<=+o}function Ri(n,e,t){let o=Wn(e)?e*((t==null?void 0:t.unit)==="s"?1e3:1):e;return new Date(n).getTime()>+o}function Ni(n,e){let o=Yo(n)+(e.days?e.days*24*60*60*1e3:0)+(e.hours?e.hours*60*60*1e3:0)+(e.minutes?e.minutes*60*1e3:0)+(e.seconds?e.seconds*1e3:0)+(e.milliseconds?e.milliseconds:0);return Vn(o)}function Gt(n,e=1,t=[]){let o=[...n];if(e<=0)return t;for(;o.length;)t.push(o.splice(0,e));return t}function Mi(n,...e){return n.filter(t=>e.every(o=>o.includes(t)))}function Ei(n,...e){return n.filter(t=>e.every(o=>!o.includes(t)))}function Di(n){return[...new Set(n)]}var et=class n{constructor(e){this._owner=e}get publicKey(){return n.isKeyPair(this._owner)?this._owner.publicKey:this._owner}get signer(){return n.isKeyPair(this._owner)?this._owner:void 0}get isKeyPair(){return n.isKeyPair(this._owner)}get isPublicKey(){return n.isPublicKey(this._owner)}static isKeyPair(e){return e.secretKey!==void 0}static isPublicKey(e){return!n.isKeyPair(e)}};var $o=require("@solana/web3.js"),Xo=require("@solana/spl-token");var ee=require("@solana/web3.js");var Un=(t=>(t[t.V0=0]="V0",t[t.LEGACY=1]="LEGACY",t))(Un||{}),V={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"};var zo=require("@solana/spl-token");var Oe=j("Sega_txUtil"),qn=1644;function Tt(n){let e=[],t=[];return n.microLamports&&(e.push(ee.ComputeBudgetProgram.setComputeUnitPrice({microLamports:n.microLamports})),t.push(V.SetComputeUnitPrice)),n.units&&(e.push(ee.ComputeBudgetProgram.setComputeUnitLimit({units:n.units})),t.push(V.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}function Ge(n,e){return y(this,null,function*(){var o,r;let t=e!=null?e:"confirmed";return(r=yield(o=n.getLatestBlockhash)==null?void 0:o.call(n,{commitment:t}))==null?void 0:r.blockhash})}function Pt(n,e){return y(this,null,function*(){return n.getSignatureStatuses([e]),new Promise((t,o)=>{let r=setTimeout(o,6e4);n.onSignature(e,i=>{if(clearTimeout(r),!i.err){t("");return}o(Object.assign(i.err,{txId:e}))},"confirmed")})})}function At(n,e){n.length<1&&Oe.logWithError(`no instructions provided: ${n.toString()}`),e.length<1&&Oe.logWithError(`no signers provided:, ${e.toString()}`);let t=new ee.Transaction;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...n);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<qn}catch(o){return!1}}function Fi(n,e,t,o=!0){return y(this,null,function*(){let r=new ee.PublicKey("SegaSimuLateTransaction11111111111111111"),i=[],a=new ee.Transaction;a.feePayer=r;for(let u of e)At([...a.instructions,u],[r])||(i.push(a),a=new ee.Transaction,a.feePayer=r),a.add(u);a.instructions.length>0&&i.push(a);let s=[];try{if(s=yield Jo(n,i,o),s.find(u=>u.err!==null))throw Error("rpc simulateTransaction error")}catch(u){u instanceof Error&&Oe.logWithError("failed to simulate for instructions","RPC_ERROR",{message:u.message})}let c=[];for(let u of s)if(Oe.debug("simulate result:",u),u.logs){let m=u.logs.filter(l=>l&&l.includes(t));Oe.debug("filteredLog:",c),m.length||Oe.logWithError("simulate log not match keyword","keyword",t),c.push(...m)}return c})}function vi(n,e){let t=n.match(/{["\w:,]+}/g);return!t||t.length!==1?Oe.logWithError(`simulate log fail to match json, keyword: ${e}`):t[0]}function Wi(n,e){let o=new RegExp(`"${e}":(\\d+)`,"g").exec(n);return!o||o.length!==2?Oe.logWithError(`simulate log fail to match key", key: ${e}`):o[1]}function le(n,e){let[t,o]=ee.PublicKey.findProgramAddressSync(n,e);return{publicKey:t,nonce:o}}function Jo(n,e,t){return y(this,null,function*(){let o=[];if(t){let r=yield n.getLatestBlockhash(),i=[];for(let u of e){u.recentBlockhash=r.blockhash,u.lastValidBlockHeight=r.lastValidBlockHeight;let l=u._compile().serialize(),p=u._serialize(l).toString("base64");i.push(p)}let a=i.map(u=>({methodName:"simulateTransaction",args:n._buildArgs([u],void 0,"base64")})),s=[],c=20;for(let u=0;u<Math.ceil(a.length/c);u++)s.push(a.slice(u*c,(u+1)*c));o=yield(yield Promise.all(s.map(u=>y(this,null,function*(){return(yield n._rpcBatchRequest(u)).map(m=>m.result.value)})))).flat()}else try{o=yield Promise.all(e.map(r=>y(this,null,function*(){return yield(yield n.simulateTransaction(r)).value})))}catch(r){r instanceof Error&&Oe.logWithError("failed to get info for multiple accounts","RPC_ERROR",{message:r.message})}return o})}function tt({instructions:n,payer:e,signers:t}){return At(n,[e,...t])}function nt({instructions:n,payer:e,lookupTableAddressAccount:t,recentBlockhash:o=ee.Keypair.generate().publicKey.toString()}){let i=new ee.TransactionMessage({payerKey:e,recentBlockhash:o,instructions:n}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new ee.VersionedTransaction(i).serialize()).toString("base64").length<qn}catch(a){return!1}}var sn={time:0,data:void 0};function Vi(n){return y(this,null,function*(){if(!sn.data||(Date.now()-sn.time)/1e3>30){let e=yield n.getEpochInfo();return sn={time:Date.now(),data:e},e}else return sn.data})}var Gn=n=>Buffer.isBuffer(n)?n:n instanceof Uint8Array?Buffer.from(n.buffer,n.byteOffset,n.byteLength):Buffer.from(n),Zo=n=>{let e=n.serialize({requireAllSignatures:!1,verifySignatures:!1});n instanceof ee.VersionedTransaction&&(e=Gn(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch(t){return e.toString("base64")}};function Ee(n){let e=[];return n.forEach(t=>{t instanceof ee.Transaction&&(t.recentBlockhash||(t.recentBlockhash=zo.TOKEN_PROGRAM_ID.toBase58()),t.feePayer||(t.feePayer=ee.Keypair.generate().publicKey)),e.push(Zo(t))}),console.log("simulate tx string:",e),e}function Ui(n){let e=n.serialize({requireAllSignatures:!1,verifySignatures:!1});return n instanceof ee.VersionedTransaction&&(e=Gn(e)),e.toString("base64")}function we(n,e,t){return le([n.toBuffer(),(t!=null?t:Xo.TOKEN_PROGRAM_ID).toBuffer(),e.toBuffer()],new $o.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}function jn(n){return le([Buffer.from("metadata","utf8"),Qe.toBuffer(),n.toBuffer()],Qe)}var be=require("@solana/web3.js"),wt=new be.PublicKey("SegazTQwbYWknDZkJ6j2Kgvm5gw3MrHGKtWstZdoNKZ"),xt=new be.PublicKey("Ajk8d9bERSaFdeoT1d8JUVfaDayrYLnAdgeB47TFMUaG"),Hn=new be.PublicKey("2HbjxVVKJ7Ct72Rcd8WK4VTqmwTXL5aAggkH1CHGFGmh"),Qo=new be.PublicKey("TegaRdjn9Qeh9DfUU28X19aPPpJtj9gs8ntSYrR5H4K "),er=new be.PublicKey("GzqQwxPSmUZnTyCfX9YWqi32MJg43ujP786ZoacL559Y"),tr=new be.PublicKey("GzqQwxPSmUZnTyCfX9YWqi32MJg43ujP786ZoacL559Y"),nr=new be.PublicKey("SegaXNnoXYTZiqUt9Xn2XqGcL56b25yzXLuJSpadcMu"),or=new be.PublicKey("2t1hV2YqnDCPuJZqr7Fy8oAygGwZE5Q9uaQzpLC1QryJ"),rr=new be.PublicKey("BLxynZeHE123MmQgNJZiV1pwW4VYh46oZYyC66xwmtTY"),qi={CREATE_CPMM_POOL_PROGRAM:wt,CREATE_CPMM_POOL_AUTH:xt,CREATE_CPMM_POOL_FEE_ACC:Hn},Yn={CREATE_CPMM_POOL_PROGRAM:wt,CREATE_CPMM_POOL_AUTH:xt,CREATE_CPMM_POOL_FEE_ACC:Hn},zn={CREATE_CPMM_POOL_PROGRAM:nr,CREATE_CPMM_POOL_AUTH:or,CREATE_CPMM_POOL_FEE_ACC:rr},Jn={SERUM_MARKET:be.PublicKey.default,UTIL1216:be.PublicKey.default,CREATE_CPMM_POOL_PROGRAM:Qo,CREATE_CPMM_POOL_AUTH:er,CREATE_CPMM_POOL_FEE_ACC:tr};var Q=H(require("bn.js"));var Se=1e4;function Gi(n,e,t,o){if(e===void 0)return{amount:n,fee:void 0,expirationTime:void 0};let r=t.epoch<e.newerTransferFee.epoch?e.olderTransferFee:e.newerTransferFee,i=new Q.default(r.maximumFee.toString()),a=t.epoch<e.newerTransferFee.epoch?(Number(e.newerTransferFee.epoch)*t.slotsInEpoch-t.absoluteSlot)*400/1e3:void 0;if(o)if(r.transferFeeBasisPoints===Se){let s=new Q.default(r.maximumFee.toString());return{amount:n.add(s),fee:s,expirationTime:a}}else{let s=Ce(n.mul(new Q.default(Se)),new Q.default(Se-r.transferFeeBasisPoints)),c=new Q.default(r.maximumFee.toString()),u=s.sub(n).gt(c)?n.add(c):s,m=Ce(u.mul(new Q.default(r.transferFeeBasisPoints)),new Q.default(Se)),l=m.gt(i)?i:m;return{amount:u,fee:l,expirationTime:a}}else{let s=Ce(n.mul(new Q.default(r.transferFeeBasisPoints)),new Q.default(Se)),c=s.gt(i)?i:s;return{amount:n,fee:c,expirationTime:a}}}function De(n,e,t,o){if(e===void 0)return{amount:n,fee:void 0,expirationTime:void 0};let r=N(L({},e),{olderTransferFee:{epoch:BigInt(e.olderTransferFee.epoch),maximumFee:BigInt(e.olderTransferFee.maximumFee),transferFeeBasisPoints:e.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(e.newerTransferFee.epoch),maximumFee:BigInt(e.newerTransferFee.maximumFee),transferFeeBasisPoints:e.newerTransferFee.transferFeeBasisPoints}}),i=t.epoch<r.newerTransferFee.epoch?r.olderTransferFee:r.newerTransferFee,a=new Q.default(i.maximumFee.toString()),s=t.epoch<r.newerTransferFee.epoch?(Number(r.newerTransferFee.epoch)*t.slotsInEpoch-t.absoluteSlot)*400/1e3:void 0;if(o)if(i.transferFeeBasisPoints===Se){let c=new Q.default(i.maximumFee.toString());return{amount:n.add(c),fee:c,expirationTime:s}}else{let c=Ce(n.mul(new Q.default(Se)),new Q.default(Se-i.transferFeeBasisPoints)),u=new Q.default(i.maximumFee.toString()),m=c.sub(n).gt(u)?n.add(u):c,l=Ce(m.mul(new Q.default(i.transferFeeBasisPoints)),new Q.default(Se)),d=l.gt(a)?a:l;return{amount:m,fee:d,expirationTime:s}}else{let c=Ce(n.mul(new Q.default(i.transferFeeBasisPoints)),new Q.default(Se)),u=c.gt(a)?a:c;return{amount:n,fee:u,expirationTime:s}}}function ji(n,e){return n===void 0?e:e===void 0?n:Math.min(n,e)}function Ce(n,e){let{div:t,mod:o}=n.divmod(e);return o.gt(new Q.default(0))?t.add(new Q.default(1)):t}var kt=require("@solana/web3.js");function an(t){return y(this,arguments,function*({connection:n,address:e}){let o=yield ze(n,[...new Set(e.map(i=>i.toString()))].map(i=>new kt.PublicKey(i))),r={};for(let i=0;i<e.length;i++){let a=o[i],s=e[i];if(!a)continue;let c=new kt.AddressLookupTableAccount({key:s,state:kt.AddressLookupTableAccount.deserialize(a.data)});r[s.toString()]=c,It[s.toString()]=c}return r})}var It={};var F=require("@solana/web3.js"),ir=H(require("axios"));var un=2e3,St=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]}getComputeBudgetConfig(){return y(this,null,function*(){var o;let e=(yield ir.default.get("https://solanacompass.com/api/fees?cacheFreshTime=300000")).data,{avg:t}=(o=e==null?void 0:e[15])!=null?o:{};if(t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}})}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:o}=Tt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(F.SystemProgram.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new F.PublicKey(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(V.TransferTip),!0):!1}calComputeBudget(o){return y(this,arguments,function*({config:e,defaultIns:t}){try{let r=e||(yield this.getComputeBudgetConfig());if(this.addCustomComputeBudget(r))return;t&&this.instructions.unshift(...t)}catch(r){t&&this.instructions.unshift(...t)}})}addInstruction({instructions:e=[],endInstructions:t=[],signers:o=[],instructionTypes:r=[],endInstructionTypes:i=[],lookupTableAddress:a=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...o),this.instructionTypes.push(...r),this.endInstructionTypes.push(...i),this.lookupTableAddress.push(...a.filter(s=>s!==F.PublicKey.default.toString())),this}versionBuild(o){return y(this,arguments,function*({txVersion:e,extInfo:t}){return e===0?yield this.buildV0(L({},t||{})):this.build(t)})}build(e){var o;let t=new F.Transaction;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,(o=this.owner)!=null&&o.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:r=>y(this,null,function*(){var u;let{recentBlockHash:i,skipPreflight:a=!0,sendAndConfirm:s}=r||{},c=i!=null?i:yield Ge(this.connection,this.blockhashCommitment);if(t.recentBlockhash=c,this.signers.length&&t.sign(...this.signers),Ee([t]),(u=this.owner)!=null&&u.isKeyPair)return{txId:s?yield(0,F.sendAndConfirmTransaction)(this.connection,t,this.signers.find(l=>l.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:a}):yield this.connection.sendRawTransaction(t.serialize(),{skipPreflight:a}),signedTx:t};if(this.signAllTransactions){let m=yield this.signAllTransactions([t]);if(this.signers.length)for(let l of m)try{l.sign(...this.signers)}catch(d){}return{txId:yield this.connection.sendRawTransaction(m[0].serialize(),{skipPreflight:a}),signedTx:m[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")}),extInfo:e||{}}}buildMultiTx(e){var u;let{extraPreBuildData:t=[],extInfo:o}=e,{transaction:r}=this.build(o),i=t.filter(m=>m.transaction.instructions.length>0),a=[r,...i.map(m=>m.transaction)],s=[this.signers,...i.map(m=>m.signers)],c=[...this.instructionTypes,...i.map(m=>m.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&s.forEach(m=>{m.some(l=>l.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:a,signers:s,instructionTypes:c,execute:m=>y(this,null,function*(){var k;let{sequentially:l,onTxUpdate:d,skipTxCount:p=0,recentBlockHash:f,skipPreflight:b=!0}=m||{},g=f!=null?f:yield Ge(this.connection,this.blockhashCommitment);if((k=this.owner)!=null&&k.isKeyPair){if(l){let h=[],w=0;for(let T of a){if(++w,w<=p)continue;let A=yield(0,F.sendAndConfirmTransaction)(this.connection,T,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:b});h.push(A)}return{txIds:h,signedTxs:a}}return{txIds:yield yield Promise.all(a.map(h=>y(this,null,function*(){return h.recentBlockhash=g,yield this.connection.sendRawTransaction(h.serialize(),{skipPreflight:b})}))),signedTxs:a}}if(this.signAllTransactions){let h=a.map((T,A)=>(T.recentBlockhash=g,s[A].length&&T.sign(...s[A]),T));Ee(h);let w=yield this.signAllTransactions(h);if(l){let T=0,A=[],x=()=>y(this,null,function*(){if(!w[T])return;let I=yield this.connection.sendRawTransaction(w[T].serialize(),{skipPreflight:b});A.push({txId:I,status:"sent",signedTx:w[T]}),d==null||d([...A]),T++;let S=!1,B=null,K=null,M=O=>{B!==null&&clearInterval(B),K!==null&&this.connection.removeSignatureListener(K);let R=A.findIndex(D=>D.txId===I);if(R>-1){if(A[R].status==="error"||A[R].status==="success")return;A[R].status=O.err?"error":"success"}d==null||d([...A]),O.err||x()};this.loopMultiTxStatus&&(B=setInterval(()=>y(this,null,function*(){var O;if(S){clearInterval(B);return}try{let R=yield this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});R&&(S=!0,clearInterval(B),M({err:((O=R.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",I))}catch(R){S=!0,clearInterval(B),console.error("getTransaction timeout:",R,I)}}),un)),K=this.connection.onSignature(I,O=>{if(S){this.connection.removeSignatureListener(K);return}S=!0,M(O)},"confirmed"),this.connection.getSignatureStatus(I)});return yield x(),{txIds:A.map(I=>I.txId),signedTxs:w}}else{let T=[];for(let A=0;A<w.length;A+=1){let x=yield this.connection.sendRawTransaction(w[A].serialize(),{skipPreflight:b});T.push(x)}return{txIds:T,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")}),extInfo:o||{}}}versionMultiBuild(r){return y(this,arguments,function*({extraPreBuildData:e,txVersion:t,extInfo:o}){return t===0?yield this.buildV0MultiTx({extraPreBuildData:e,buildProps:o||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:o})})}buildV0(e){return y(this,null,function*(){var b;let f=e||{},{lookupTableCache:t={},lookupTableAddress:o=[],forerunCreate:r,recentBlockhash:i}=f,a=ue(f,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),s=L(L({},this.cluster==="devnet"?{}:It),t),c=Array.from(new Set([...o,...this.lookupTableAddress])),u=[];for(let g of c)s[g]===void 0&&u.push(new F.PublicKey(g));let m=yield an({connection:this.connection,address:u});for(let[g,k]of Object.entries(m))s[g]=k;let l=r?F.PublicKey.default.toBase58():i!=null?i:yield Ge(this.connection,this.blockhashCommitment),d=new F.TransactionMessage({payerKey:this.feePayer,recentBlockhash:l,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s));(b=this.owner)!=null&&b.signer&&!this.signers.some(g=>g.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let p=new F.VersionedTransaction(d);return p.sign(this.signers),{builder:this,transaction:p,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:g=>y(this,null,function*(){var w;let{skipPreflight:k=!0,sendAndConfirm:h}=g||{};if(Ee([p]),(w=this.owner)!=null&&w.isKeyPair){let T=yield this.connection.sendTransaction(p,{skipPreflight:k});return h&&(yield Pt(this.connection,T)),{txId:T,signedTx:p}}if(this.signAllTransactions){let T=yield this.signAllTransactions([p]);if(this.signers.length)for(let A of T)try{A.sign(this.signers)}catch(x){}return{txId:yield this.connection.sendTransaction(T[0],{skipPreflight:k}),signedTx:T[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")}),extInfo:a||{}}})}buildV0MultiTx(e){return y(this,null,function*(){var u;let{extraPreBuildData:t=[],buildProps:o}=e,{transaction:r}=yield this.buildV0(o),i=t.filter(m=>m.builder.instructions.length>0),a=[r,...i.map(m=>m.transaction)],s=[this.signers,...i.map(m=>m.signers)],c=[...this.instructionTypes,...i.map(m=>m.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&s.forEach(m=>{m.some(l=>l.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),a.forEach((m,l)=>y(this,null,function*(){m.sign(s[l])})),{builder:this,transactions:a,signers:s,instructionTypes:c,buildProps:o,execute:m=>y(this,null,function*(){var b;let{sequentially:l,onTxUpdate:d,recentBlockHash:p,skipPreflight:f=!0}=m||{};if(p&&a.forEach(g=>g.message.recentBlockhash=p),Ee(a),(b=this.owner)!=null&&b.isKeyPair){if(l){let g=[];for(let k of a){let h=yield this.connection.sendTransaction(k,{skipPreflight:f});yield Pt(this.connection,h),g.push(h)}return{txIds:g,signedTxs:a}}return{txIds:yield Promise.all(a.map(g=>y(this,null,function*(){return yield this.connection.sendTransaction(g,{skipPreflight:f})}))),signedTxs:a}}if(this.signAllTransactions){let g=yield this.signAllTransactions(a);if(l){let k=0,h=[],w=()=>y(this,null,function*(){if(!g[k])return;let T=yield this.connection.sendTransaction(g[k],{skipPreflight:f});h.push({txId:T,status:"sent",signedTx:g[k]}),d==null||d([...h]),k++;let A=!1,x=null,I=null,S=B=>{x!==null&&clearInterval(x),I!==null&&this.connection.removeSignatureListener(I);let K=h.findIndex(M=>M.txId===T);if(K>-1){if(h[K].status==="error"||h[K].status==="success")return;h[K].status=B.err?"error":"success"}d==null||d([...h]),B.err||w()};this.loopMultiTxStatus&&(x=setInterval(()=>y(this,null,function*(){var B;if(A){clearInterval(x);return}try{let K=yield this.connection.getTransaction(T,{commitment:"confirmed",maxSupportedTransactionVersion:0});K&&(A=!0,clearInterval(x),S({err:((B=K.meta)==null?void 0:B.err)||null}),console.log("tx status from getTransaction:",T))}catch(K){A=!0,clearInterval(x),console.error("getTransaction timeout:",K,T)}}),un)),I=this.connection.onSignature(T,B=>{if(A){this.connection.removeSignatureListener(I);return}A=!0,S(B)},"confirmed"),this.connection.getSignatureStatus(T)});return w(),{txIds:[],signedTxs:g}}else{let k=[];for(let h=0;h<g.length;h+=1){let w=yield this.connection.sendTransaction(g[h],{skipPreflight:f});k.push(w)}return{txIds:k,signedTxs:g}}}throw new Error("please provide owner in keypair format or signAllTransactions function")}),extInfo:o||{}}})}sizeCheckBuild(e){return y(this,null,function*(){var d;let l=e||{},{splitIns:t=[],computeBudgetConfig:o}=l,r=ue(l,["splitIns","computeBudgetConfig"]),i=o?Tt(o):{instructions:[],instructionTypes:[]},a=this.signers.reduce((p,f)=>N(L({},p),{[f.publicKey.toBase58()]:f}),{}),s=[],c=[],u=[],m=0;if(this.allInstructions.forEach(p=>{let f=[...u,p],b=o?[...i.instructions,...f]:f,k=[...new Set(f.map(h=>h.keys.filter(w=>w.isSigner).map(w=>w.pubkey.toString())).flat()).values()].map(h=>new F.PublicKey(h));if(p!==t[m]&&u.length<12&&(tt({instructions:b,payer:this.feePayer,signers:k})||tt({instructions:f,payer:this.feePayer,signers:k})))u.push(p);else{if(u.length===0)throw Error("item ins too big");m+=p===t[m]?1:0,tt({instructions:o?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:k})?s.push(new F.Transaction().add(...i.instructions,...u)):s.push(new F.Transaction().add(...u)),c.push(Array.from(new Set(u.map(h=>h.keys.filter(w=>w.isSigner).map(w=>w.pubkey.toString())).flat())).map(h=>a[h]).filter(h=>h!==void 0)),u=[p]}}),u.length>0){let f=[...new Set(u.map(b=>b.keys.filter(g=>g.isSigner).map(g=>g.pubkey.toString())).flat()).values()].map(b=>a[b]).filter(b=>b!==void 0);tt({instructions:o?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:f.map(b=>b.publicKey)})?s.push(new F.Transaction().add(...i.instructions,...u)):s.push(new F.Transaction().add(...u)),c.push(f)}return s.forEach(p=>p.feePayer=this.feePayer),(d=this.owner)!=null&&d.signer&&c.forEach(p=>{p.some(f=>f.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),{builder:this,transactions:s,signers:c,instructionTypes:this.instructionTypes,execute:p=>y(this,null,function*(){var T;let{sequentially:f,onTxUpdate:b,skipTxCount:g=0,recentBlockHash:k,skipPreflight:h=!0}=p||{},w=k!=null?k:yield Ge(this.connection,this.blockhashCommitment);if(s.forEach((A,x)=>y(this,null,function*(){A.recentBlockhash=w,c[x].length&&A.sign(...c[x])})),Ee(s),(T=this.owner)!=null&&T.isKeyPair){if(f){let A=0,x=[];for(let I of s){if(++A,A<=g){x.push("tx skipped");continue}let S=yield(0,F.sendAndConfirmTransaction)(this.connection,I,this.signers.find(B=>B.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});x.push(S)}return{txIds:x,signedTxs:s}}return{txIds:yield Promise.all(s.map(A=>y(this,null,function*(){return yield this.connection.sendRawTransaction(A.serialize(),{skipPreflight:h})}))),signedTxs:s}}if(this.signAllTransactions){let A=yield this.signAllTransactions(s.slice(g,s.length)),x=[...s.slice(0,g),...A];if(f){let I=0,S=[],B=()=>y(this,null,function*(){if(!x[I])return;I<g&&(S.push({txId:"",status:"success",signedTx:x[I]}),b==null||b([...S]),I++,B());let K=yield this.connection.sendRawTransaction(x[I].serialize(),{skipPreflight:h});S.push({txId:K,status:"sent",signedTx:x[I]}),b==null||b([...S]),I++;let M=!1,O=null,R=null,D=E=>{O!==null&&clearInterval(O),R!==null&&this.connection.removeSignatureListener(R);let q=S.findIndex(te=>te.txId===K);if(q>-1){if(S[q].status==="error"||S[q].status==="success")return;S[q].status=E.err?"error":"success"}b==null||b([...S]),E.err||B()};this.loopMultiTxStatus&&(O=setInterval(()=>y(this,null,function*(){var E;if(M){clearInterval(O);retur