@sega-so/sega-sdk
Version:
An SDK for building applications on top of SEGA.
2 lines • 12 kB
JavaScript
"use strict";var De=Object.create;var A=Object.defineProperty,Ee=Object.defineProperties,Oe=Object.getOwnPropertyDescriptor,Le=Object.getOwnPropertyDescriptors,_e=Object.getOwnPropertyNames,ce=Object.getOwnPropertySymbols,Ve=Object.getPrototypeOf,le=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable;var h=Math.pow,ue=(n,e,t)=>e in n?A(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,b=(n,e)=>{for(var t in e||(e={}))le.call(e,t)&&ue(n,t,e[t]);if(ce)for(var t of ce(e))We.call(e,t)&&ue(n,t,e[t]);return n},T=(n,e)=>Ee(n,Le(e));var ve=(n,e)=>{for(var t in e)A(n,t,{get:e[t],enumerable:!0})},me=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of _e(e))!le.call(n,o)&&o!==t&&A(n,o,{get:()=>e[o],enumerable:!(r=Oe(e,o))||r.enumerable});return n};var s=(n,e,t)=>(t=n!=null?De(Ve(n)):{},me(e||!n||!n.__esModule?A(t,"default",{value:n,enumerable:!0}):t,n)),Ke=n=>me(A({},"__esModule",{value:!0}),n);var dt={};ve(dt,{CurveCalculator:()=>oe,RoundDirection:()=>ne});module.exports=Ke(dt);var U=s(require("bn.js")),F=s(require("decimal.js-light"));var Ue=require("@solana/web3.js");var k=require("lodash");var Y=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}},pe={},qe={};function l(n){let e=(0,k.get)(pe,n);if(!e){let t=(0,k.get)(qe,n);e=new Y({name:n,logLevel:t}),(0,k.set)(pe,n,e)}return e}var O=require("@solana/spl-token");var St=l("Sega_accountInfo_util");var p=s(require("bn.js")),et=s(require("decimal.js"));var be=s(require("big.js")),Ye=s(require("bn.js"));var de=s(require("toformat")),Ge=de.default,C=Ge;var I=s(require("big.js")),ge=s(require("bn.js")),he=s(require("decimal.js-light"));var y=s(require("bn.js"));var fe=9007199254740991;function d(n){let e=l("Sega_parseBigNumberish");if(n instanceof y.default)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new y.default(n);e.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&e.logWithError(`BigNumberish number underflow: ${n}`),(n>=fe||n<=-fe)&&e.logWithError(`BigNumberish number overflow: ${n}`),new y.default(String(n))):typeof n=="bigint"?new y.default(n.toString()):(e.error(`invalid BigNumberish value: ${n}`),new y.default(0))}var L=l("module/fraction"),J=C(I.default),N=C(he.default),ze={0:N.ROUND_DOWN,1:N.ROUND_HALF_UP,2:N.ROUND_UP},He={0:I.default.roundDown,1:I.default.roundHalfUp,2:I.default.roundUp},f=class n{constructor(e,t=new ge.default(1)){this.numerator=d(e),this.denominator=d(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(d(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(d(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(d(e));return new n(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof n?e:new n(d(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.`),N.set({precision:e+1,rounding:ze[r]});let o=new N(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return o.toFormat(o.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.`),J.DP=e,J.RM=He[r]||1,new J(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Ut=l("Sega_amount"),Gt=C(be.default);var Te=require("@solana/web3.js"),X=require("@solana/spl-token"),ye={chainId:101,address:Te.PublicKey.default.toBase58(),programId:X.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"}},g={chainId:101,address:"So11111111111111111111111111111111111111112",programId:X.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 _=require("@solana/web3.js");var i=require("@solana/web3.js"),we=require("@solana/spl-token");function $({pubkey:n,isSigner:e=!1,isWritable:t=!0}){return{pubkey:n,isWritable:t,isSigner:e}}var Yt=[$({pubkey:we.TOKEN_PROGRAM_ID,isWritable:!1}),$({pubkey:i.SystemProgram.programId,isWritable:!1}),$({pubkey:i.SYSVAR_RENT_PUBKEY,isWritable:!1})];function xe({publicKey:n,transformSol:e}){let t=Se(n.toString());if(t instanceof i.PublicKey)return e&&t.equals(R)?Z:t;if(e&&t.toString()===R.toBase58())return Z;if(typeof t=="string"){if(t===i.PublicKey.default.toBase58())return i.PublicKey.default;try{return new i.PublicKey(t)}catch(r){throw new Error("invalid public key")}}throw new Error("invalid public key")}function Se(n){try{return new i.PublicKey(n)}catch(e){return n}}var Zt=new i.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Jt=new i.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xt=new i.PublicKey("SysvarRent111111111111111111111111111111111"),$t=new i.PublicKey("SysvarC1ock11111111111111111111111111111111"),Je=new i.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Qt=new i.PublicKey("Sysvar1nstructions1111111111111111111111111"),en=i.SystemProgram.programId,tn=new i.PublicKey("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),nn=new i.PublicKey("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),rn=new i.PublicKey("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),on=new i.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),sn=new i.PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),an=new i.PublicKey("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),cn=new i.PublicKey("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),un=new i.PublicKey("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ln=new i.PublicKey("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),mn=new i.PublicKey("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),pn=new i.PublicKey("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Z=new i.PublicKey("So11111111111111111111111111111111111111112"),R=i.PublicKey.default;var V=class V{constructor({mint:e,decimals:t,symbol:r,name:o,skipMint:u=!1,isToken2022:c=!1}){if(e===R.toBase58()||e instanceof _.PublicKey&&R.equals(e)){this.decimals=g.decimals,this.symbol=g.symbol,this.name=g.name,this.mint=new _.PublicKey(g.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=r||e.toString().substring(0,6),this.name=o||e.toString().substring(0,6),this.mint=u?_.PublicKey.default:xe({publicKey:e}),this.isToken2022=c}equals(e){return this===e?!0:this.mint.equals(e.mint)}};V.WSOL=new V(T(b({},g),{mint:g.address}));var M=V;var W=class W{constructor({decimals:e,symbol:t="UNKNOWN",name:r="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=r}equals(e){return this===e}};W.SOL=new W(ye);var Q=W;var Pe=s(require("bn.js"));var Pn=new f(new Pe.default(100));var Nn=l("Sega_price");var $e=require("@solana/web3.js"),Qe=s(require("bn.js"));var Xe=new p.default(0),ar=new p.default(1),cr=new p.default(2),ur=new p.default(3),lr=new p.default(5),Ze=new p.default(10),mr=new p.default(100),pr=new p.default(1e3),dr=new p.default(1e4);var rt=require("@solana/web3.js"),it=require("@solana/spl-token");var w=require("@solana/web3.js");var nt=require("@solana/spl-token");var Cr=l("Sega_txUtil");var m=require("@solana/web3.js"),Er=new m.PublicKey("SegazTQwbYWknDZkJ6j2Kgvm5gw3MrHGKtWstZdoNKZ"),Or=new m.PublicKey("Ajk8d9bERSaFdeoT1d8JUVfaDayrYLnAdgeB47TFMUaG"),Lr=new m.PublicKey("2HbjxVVKJ7Ct72Rcd8WK4VTqmwTXL5aAggkH1CHGFGmh"),ot=new m.PublicKey("auetiVUVJkRxvNPLYEvVnz8UJSqQ1VgoA83PcicHVD1"),st=new m.PublicKey("GzqQwxPSmUZnTyCfX9YWqi32MJg43ujP786ZoacL559Y"),at=new m.PublicKey("GzqQwxPSmUZnTyCfX9YWqi32MJg43ujP786ZoacL559Y"),_r=new m.PublicKey("SegaXNnoXYTZiqUt9Xn2XqGcL56b25yzXLuJSpadcMu"),Vr=new m.PublicKey("2t1hV2YqnDCPuJZqr7Fy8oAygGwZE5Q9uaQzpLC1QryJ"),Wr=new m.PublicKey("BLxynZeHE123MmQgNJZiV1pwW4VYh46oZYyC66xwmtTY");var ct={SERUM_MARKET:m.PublicKey.default,UTIL1216:m.PublicKey.default,CREATE_CPMM_POOL_PROGRAM:ot,CREATE_CPMM_POOL_AUTH:st,CREATE_CPMM_POOL_FEE_ACC:at};var ee=s(require("bn.js"));function te(n,e){let{div:t,mod:r}=n.divmod(e);return r.gt(new ee.default(0))?t.add(new ee.default(1)):t}var Ce=require("@solana/web3.js");var x=require("@solana/web3.js"),ut=s(require("axios"));var lt=require("@solana/web3.js");var P=s(require("bn.js"));function v(n,e){if(e.isZero())throw Error("divisor is zero");return n.mod(e)}function mt(n,e){if(e.isZero())throw Error("rhs is zero");let t=n.div(e);if(t.isZero())throw Error("quotient is zero");let r=v(n,e);return r.gt(S)&&(t=t.add(new P.default(1)),e=n.div(t),r=v(n,t),r.gt(S)&&(e=e.add(new P.default(1)))),[t,e]}var S=new P.default(0),K=class{static swapWithoutFees(e,t,r){let o=t.mul(r),u=t.add(e),[c]=mt(o,u),a=r.sub(c);if(a.isZero())throw Error("destinationAmountSwapped is zero");return{destinationAmountSwapped:a}}static lpTokensToTradingTokens(e,t,r,o,u){let c=e.mul(r).div(t),a=e.mul(o).div(t);if(u===0)return{tokenAmount0:c,tokenAmount1:a};if(u===1)return v(e.mul(r),t).gt(S)&&c.gt(S)&&(c=c.add(new P.default(1))),v(e.mul(o),t).gt(S)&&a.gt(S)&&(a=a.add(new P.default(1))),{tokenAmount0:c,tokenAmount1:a};throw Error("roundDirection value error")}};var ie=s(require("bn.js")),re=new ie.default(1e6);function pt(n,e,t){return n.mul(e).add(t).sub(new ie.default(1)).div(t)}function Ie(n,e,t){return n.mul(e).div(t)}var q=class{static tradingFee(e,t){return pt(e,t,re)}static protocolFee(e,t){return Ie(e,t,re)}static fundFee(e,t){return Ie(e,t,re)}};var ne=(t=>(t[t.Floor=0]="Floor",t[t.Ceiling=1]="Ceiling",t))(ne||{}),oe=class{static validate_supply(e,t){if(e.isZero())throw Error("tokenAmount0 is zero");if(t.isZero())throw Error("tokenAmount1 is zero")}static swap(e,t,r,o){let u=q.tradingFee(e,o),c=e.sub(u),{destinationAmountSwapped:a}=K.swapWithoutFees(c,t,r);return{newSwapDestinationAmount:r.sub(a),sourceAmountSwapped:e,destinationAmountSwapped:a,tradeFee:u}}static swapBaseOut({poolMintA:e,poolMintB:t,tradeFeeRate:r,baseReserve:o,quoteReserve:u,outputMint:c,outputAmount:a}){let[G,B,se,ae,ft]=t.address===c.toString()?[o,u,e.decimals,t.decimals,e.address]:[u,o,t.decimals,e.decimals,t.address],j=new F.default(B.toString()).div(h(10,ae)).div(new F.default(G.toString()).div(h(10,se))),D=a.gte(B)?B.sub(new U.default(1)):a,Ne=B.sub(D),z=te(G.mul(D),Ne),H=te(z.mul(new U.default(1e6)),new U.default(1e6).sub(r)),Re=H.sub(z),Me=new F.default(D.toString()).div(h(10,ae)).div(new F.default(H.toString()).div(h(10,se))),Fe=j.isZero()?0:Me.sub(j).div(j).abs().toNumber();return{amountRealOut:D,amountIn:H,amountInWithoutFee:z,tradeFee:Re,priceImpact:Fe}}};0&&(module.exports={CurveCalculator,RoundDirection});
//# sourceMappingURL=calculator.js.map