@sega-so/sega-sdk
Version:
An SDK for building applications on top of SEGA.
2 lines • 14.1 kB
JavaScript
var ue=Object.defineProperty,le=Object.defineProperties;var me=Object.getOwnPropertyDescriptors;var N=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable;var H=(n,e,t)=>e in n?ue(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,f=(n,e)=>{for(var t in e||(e={}))j.call(e,t)&&H(n,t,e[t]);if(N)for(var t of N(e))Y.call(e,t)&&H(n,t,e[t]);return n},g=(n,e)=>le(n,me(e));var _=(n,e)=>{var t={};for(var r in n)j.call(n,r)&&e.indexOf(r)<0&&(t[r]=n[r]);if(n!=null&&N)for(var r of N(n))e.indexOf(r)<0&&Y.call(n,r)&&(t[r]=n[r]);return t};var u=(n,e,t)=>new Promise((r,s)=>{var c=l=>{try{a(t.next(l))}catch(m){s(m)}},o=l=>{try{a(t.throw(l))}catch(m){s(m)}},a=l=>l.done?r(l.value):Promise.resolve(l.value).then(c,o);a((t=t.apply(n,e)).next())});import ae from"axios";import{PublicKey as qe}from"@solana/web3.js";import{get as z,set as pe}from"lodash";var D=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(r=>typeof r=="object"?JSON.stringify(r):r).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}},$={},fe={};function p(n){let e=z($,n);if(!e){let t=z(fe,n);e=new D({name:n,logLevel:t}),pe($,n,e)}return e}import{MINT_SIZE as je,TOKEN_PROGRAM_ID as Ye,getTransferFeeConfig as ze,unpackMint as $e}from"@solana/spl-token";var Je=p("Sega_accountInfo_util");import T from"bn.js";import Yn from"decimal.js";import we from"big.js";import ht from"bn.js";import de from"toformat";var ge=de,I=ge;import O from"big.js";import be from"bn.js";import Te from"decimal.js-light";import C from"bn.js";var J=9007199254740991;function h(n){let e=p("Sega_parseBigNumberish");if(n instanceof C)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new C(n);e.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&e.logWithError(`BigNumberish number underflow: ${n}`),(n>=J||n<=-J)&&e.logWithError(`BigNumberish number overflow: ${n}`),new C(String(n))):typeof n=="bigint"?new C(n.toString()):(e.error(`invalid BigNumberish value: ${n}`),new C(0))}var L=p("module/fraction"),K=I(O),k=I(Te),ye={0:k.ROUND_DOWN,1:k.ROUND_HALF_UP,2:k.ROUND_UP},xe={0:O.roundDown,1:O.roundHalfUp,2:O.roundUp},b=class n{constructor(e,t=new be(1)){this.numerator=h(e),this.denominator=h(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(h(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(h(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(h(e));return new n(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof n?e:new n(h(e));return new n(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},r=1){Number.isInteger(e)||L.logWithError(`${e} is not an integer.`),e<=0&&L.logWithError(`${e} is not positive.`),k.set({precision:e+1,rounding:ye[r]});let s=new k(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return s.toFormat(s.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},r=1){return Number.isInteger(e)||L.logWithError(`${e} is not an integer.`),e<0&&L.logWithError(`${e} is negative.`),K.DP=e,K.RM=xe[r]||1,new K(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var It=p("Sega_amount"),Ct=I(we);import{PublicKey as Se}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Z}from"@solana/spl-token";var X={chainId:101,address:Se.default.toBase58(),programId:Z.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"sega",extensions:{coingeckoId:"solana"}},x={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Z.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"}};import{PublicKey as v}from"@solana/web3.js";import{PublicKey as i,SystemProgram as Q,SYSVAR_RENT_PUBKEY as Ae}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ie}from"@solana/spl-token";function W({pubkey:n,isSigner:e=!1,isWritable:t=!0}){return{pubkey:n,isWritable:t,isSigner:e}}var Et=[W({pubkey:Ie,isWritable:!1}),W({pubkey:Q.programId,isWritable:!1}),W({pubkey:Ae,isWritable:!1})];function ee({publicKey:n,transformSol:e}){let t=te(n.toString());if(t instanceof i)return e&&t.equals(B)?V:t;if(e&&t.toString()===B.toBase58())return V;if(typeof t=="string"){if(t===i.default.toBase58())return i.default;try{return new i(t)}catch(r){throw new Error("invalid public key")}}throw new Error("invalid public key")}function te(n){try{return new i(n)}catch(e){return n}}var Mt=new i("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),_t=new i("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Dt=new i("SysvarRent111111111111111111111111111111111"),Vt=new i("SysvarC1ock11111111111111111111111111111111"),Ce=new i("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Kt=new i("Sysvar1nstructions1111111111111111111111111"),Wt=Q.programId,vt=new i("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),qt=new i("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ut=new i("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Gt=new i("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ht=new i("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),jt=new i("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Yt=new i("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),zt=new i("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),$t=new i("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Jt=new i("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Zt=new i("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),V=new i("So11111111111111111111111111111111111111112"),B=i.default;var F=class F{constructor({mint:e,decimals:t,symbol:r,name:s,skipMint:c=!1,isToken2022:o=!1}){if(e===B.toBase58()||e instanceof v&&B.equals(e)){this.decimals=x.decimals,this.symbol=x.symbol,this.name=x.name,this.mint=new v(x.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=r||e.toString().substring(0,6),this.name=s||e.toString().substring(0,6),this.mint=c?v.default:ee({publicKey:e}),this.isToken2022=o}equals(e){return this===e?!0:this.mint.equals(e.mint)}};F.WSOL=new F(g(f({},x),{mint:x.address}));var R=F;var E=class E{constructor({decimals:e,symbol:t="UNKNOWN",name:r="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=r}equals(e){return this===e}};E.SOL=new E(X);var q=E;import ke from"bn.js";var mn=new b(new ke(100));var bn=p("Sega_price");import{PublicKey as En}from"@solana/web3.js";import _n from"bn.js";function oe(n){return u(this,null,function*(){new Promise(e=>setTimeout(e,n))})}var Be=new T(0),rr=new T(1),ir=new T(2),or=new T(3),sr=new T(5),Pe=new T(10),ar=new T(100),cr=new T(1e3),ur=new T(1e4);import{PublicKey as Dr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Kr}from"@solana/spl-token";import{ComputeBudgetProgram as Tr,Keypair as wr,PublicKey as Pr,Transaction as Ar,TransactionMessage as Cr,VersionedTransaction as kr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Lr}from"@solana/spl-token";var Or=p("Sega_txUtil");import{PublicKey as y}from"@solana/web3.js";var Gr=new y("SegazTQwbYWknDZkJ6j2Kgvm5gw3MrHGKtWstZdoNKZ"),Hr=new y("Ajk8d9bERSaFdeoT1d8JUVfaDayrYLnAdgeB47TFMUaG"),jr=new y("2HbjxVVKJ7Ct72Rcd8WK4VTqmwTXL5aAggkH1CHGFGmh"),Ne=new y("auetiVUVJkRxvNPLYEvVnz8UJSqQ1VgoA83PcicHVD1"),Le=new y("GzqQwxPSmUZnTyCfX9YWqi32MJg43ujP786ZoacL559Y"),Oe=new y("GzqQwxPSmUZnTyCfX9YWqi32MJg43ujP786ZoacL559Y");var Yr={SERUM_MARKET:y.default,UTIL1216:y.default,CREATE_CPMM_POOL_PROGRAM:Ne,CREATE_CPMM_POOL_AUTH:Le,CREATE_CPMM_POOL_FEE_ACC:Oe};import Jr from"bn.js";import{PublicKey as ni,AddressLookupTableAccount as ri}from"@solana/web3.js";import{PublicKey as yi,sendAndConfirmTransaction as xi,SystemProgram as Si,Transaction as Ai,TransactionMessage as Ci,VersionedTransaction as ki}from"@solana/web3.js";import Ri from"axios";import{Connection as Di}from"@solana/web3.js";var d={BASE_HOST:"https://api.sega.so/api",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",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://tokens.jup.ag/tokens?tags=lst,community",POOL_LIST:"/pools/info/list",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/mint",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee"},io=f({},d);var se="ray_tab_hash",U="ray_req_hash",Fe=()=>{if(typeof window===void 0)return"";let n=sessionStorage.getItem(se);return n||(n=`ray-${Date.now()}`,sessionStorage.setItem(se,n)),n},M=r=>u(void 0,null,function*(){var s=r,{logCount:n=1e3,removeLastLog:e}=s,t=_(s,["logCount","removeLastLog"]);if(typeof window===void 0)return new Promise(o=>o());let c=JSON.parse(localStorage.getItem(U)||"[]").slice(0,n-1);e&&c.pop(),new Blob([JSON.stringify(t.data)]).size>1024&&(t.data=JSON.stringify(t.data).substring(0,200)+"..."),c.unshift(g(f({},t),{time:Date.now(),session:Fe()}));try{localStorage.setItem(U,JSON.stringify(c))}catch(o){if(e){let a=!1,l=JSON.stringify(t.data).substring(0,100);for(c[0].data=l+(l.length>100?"...":"");!a;){c.pop();let m=JSON.stringify(t.data).substring(0,100);c[0].data=m+(m.length>100?"...":"");try{localStorage.setItem(U,JSON.stringify(c)),a=!0}catch(w){a=!1}}return new Promise(m=>m())}return M(g(f({},t),{logCount:n,removeLastLog:!0}))}});var P=p("Sega_Api"),G=new Map;function ho(n,e,t=1e3){return u(this,null,function*(){let r;for(;r==null;)try{P.debug(`Request ${n} through endlessRetry`),r=yield e()}catch(s){P.error(`Request ${n} failed, retry after ${t} ms`,s),yield oe(t)}return r})}var ce=class{constructor({cluster:e,timeout:t,logRequests:r,logCount:s,urlConfigs:c}){this.cluster=e,this.urlConfigs=c||{},this.logCount=s||1e3,this.api=ae.create({baseURL:this.urlConfigs.BASE_HOST||d.BASE_HOST,timeout:t}),this.api.interceptors.request.use(o=>{let{method:a,baseURL:l,url:m}=o;return P.debug(`${a==null?void 0:a.toUpperCase()} ${l}${m}`),o},o=>(P.error("Request failed"),Promise.reject(o))),this.api.interceptors.response.use(o=>{let{config:a,data:l,status:m}=o,{method:w,baseURL:S,url:A}=a;return r&&M({status:m,url:`${S}${A}`,params:a.params,data:l,logCount:this.logCount}),P.debug(`${w==null?void 0:w.toUpperCase()} ${S}${A} ${m}`),l},o=>{let{config:a,response:l={}}=o,{status:m}=l,{method:w,baseURL:S,url:A}=a;return r&&M({status:m,url:`${S}${A}`,params:a.params,data:o.message,logCount:this.logCount}),P.error(`${w.toUpperCase()} ${S}${A} ${m||o.message}`),Promise.reject(o)})}getCpmmConfigs(){return u(this,null,function*(){return(yield this.api.get(this.urlConfigs.CPMM_CONFIG||d.CPMM_CONFIG)).data})}getBlockSlotCountForSecond(e){return u(this,null,function*(){if(!e)return 2;let r=(yield ae.post(e,{id:"getRecentPerformanceSamples",jsonrpc:"2.0",method:"getRecentPerformanceSamples",params:[4]})).result.map(s=>s.numSlots);return r.reduce((s,c)=>s+c,0)/r.length/60})}getChainTimeOffset(){return u(this,null,function*(){return(yield this.api.get(this.urlConfigs.CHAIN_TIME||d.CHAIN_TIME)).data})}fetchPoolKeysById(e){return u(this,null,function*(){let{idList:t}=e,r=[],s=t.filter(o=>G.has(o)?(r.push(G.get(o)),!1):!0),c=[];return s.length&&(c=(yield this.api.get((this.urlConfigs.POOL_KEY_BY_ID||d.POOL_KEY_BY_ID)+`?ids=${s.join(",")}`)).data.filter(Boolean),c.forEach(a=>{G.set(a.id,a)})),r.concat(c)})}getRpcs(){return u(this,null,function*(){return this.api.get(this.urlConfigs.RPCS||d.RPCS)})}getTokenList(){return u(this,null,function*(){return(yield this.api.get(this.urlConfigs.TOKEN_LIST||d.TOKEN_LIST)).data})}getJupTokenList(){return u(this,null,function*(){return this.api.get("",{baseURL:this.urlConfigs.JUP_TOKEN_LIST||d.JUP_TOKEN_LIST})})}getTokenInfo(e){return u(this,null,function*(){return(yield this.api.get((this.urlConfigs.MINT_INFO_ID||d.MINT_INFO_ID)+`?mints=${e.map(r=>r.toString()).join(",")}`)).data})}fetchAvailabilityStatus(){return u(this,null,function*(){return(yield this.api.get(this.urlConfigs.CHECK_AVAILABILITY||d.CHECK_AVAILABILITY)).data})}};var Ee=(t=>(t.ALL="all",t.Strict="strict",t))(Ee||{});export{d as API_URLS,ce as Api,io as DEV_API_URLS,Ee as JupTokenType,se as SESSION_KEY,U as STORAGE_KEY,ho as endlessRetry,Fe as getSessionKey,M as updateReqHistory};
//# sourceMappingURL=index.mjs.map