UNPKG

@sega-so/sega-sdk

Version:

An SDK for building applications on top of SEGA.

2 lines 11.8 kB
"use strict";var Me=Object.create;var k=Object.defineProperty,Ee=Object.defineProperties,Le=Object.getOwnPropertyDescriptor,Oe=Object.getOwnPropertyDescriptors,We=Object.getOwnPropertyNames,ce=Object.getOwnPropertySymbols,Ve=Object.getPrototypeOf,le=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable;var h=Math.pow,ue=(n,e,t)=>e in n?k(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))ve.call(e,t)&&ue(n,t,e[t]);return n},T=(n,e)=>Ee(n,Oe(e));var Ke=(n,e)=>{for(var t in e)k(n,t,{get:e[t],enumerable:!0})},me=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of We(e))!le.call(n,o)&&o!==t&&k(n,o,{get:()=>e[o],enumerable:!(r=Le(e,o))||r.enumerable});return n};var s=(n,e,t)=>(t=n!=null?Me(Ve(n)):{},me(e||!n||!n.__esModule?k(t,"default",{value:n,enumerable:!0}):t,n)),_e=n=>me(k({},"__esModule",{value:!0}),n);var pt={};Ke(pt,{CurveCalculator:()=>oe,RoundDirection:()=>ne});module.exports=_e(pt);var U=s(require("bn.js")),D=s(require("decimal.js-light"));var Ue=require("@solana/web3.js");var A=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,A.get)(pe,n);if(!e){let t=(0,A.get)(qe,n);e=new Y({name:n,logLevel:t}),(0,A.set)(pe,n,e)}return e}var L=require("@solana/spl-token");var xt=l("Sega_accountInfo_util");var m=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 p(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 O=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},d=class n{constructor(e,t=new ge.default(1)){this.numerator=p(e),this.denominator=p(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(p(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(p(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(p(e));return new n(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof n?e:new n(p(e));return new n(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},r=1){Number.isInteger(e)||O.logWithError(`${e} is not an integer.`),e<=0&&O.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)||O.logWithError(`${e} is not an integer.`),e<0&&O.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 qt=l("Sega_amount"),Ut=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 W=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 Ht=[$({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 Yt=new i.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Zt=new i.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Jt=new i.PublicKey("SysvarRent111111111111111111111111111111111"),Xt=new i.PublicKey("SysvarC1ock11111111111111111111111111111111"),Je=new i.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),$t=new i.PublicKey("Sysvar1nstructions1111111111111111111111111"),Qt=i.SystemProgram.programId,en=new i.PublicKey("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),tn=new i.PublicKey("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),nn=new i.PublicKey("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),rn=new i.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),on=new i.PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),sn=new i.PublicKey("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),an=new i.PublicKey("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),cn=new i.PublicKey("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),un=new i.PublicKey("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ln=new i.PublicKey("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),mn=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 W.PublicKey&&R.equals(e)){this.decimals=g.decimals,this.symbol=g.symbol,this.name=g.name,this.mint=new W.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?W.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 F=V;var v=class v{constructor({decimals:e,symbol:t="UNKNOWN",name:r="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=r}equals(e){return this===e}};v.SOL=new v(ye);var Q=v;var Be=s(require("bn.js"));var Sn=new d(new Be.default(100));var In=l("Sega_price");var $e=require("@solana/web3.js"),Qe=s(require("bn.js"));var Xe=new m.default(0),sr=new m.default(1),ar=new m.default(2),cr=new m.default(3),ur=new m.default(5),Ze=new m.default(10),lr=new m.default(100),mr=new m.default(1e3),pr=new m.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 Ar=l("Sega_txUtil");var f=require("@solana/web3.js"),Mr=new f.PublicKey("SegazTQwbYWknDZkJ6j2Kgvm5gw3MrHGKtWstZdoNKZ"),Er=new f.PublicKey("Ajk8d9bERSaFdeoT1d8JUVfaDayrYLnAdgeB47TFMUaG"),Lr=new f.PublicKey("2HbjxVVKJ7Ct72Rcd8WK4VTqmwTXL5aAggkH1CHGFGmh"),ot=new f.PublicKey("auetiVUVJkRxvNPLYEvVnz8UJSqQ1VgoA83PcicHVD1"),st=new f.PublicKey("GzqQwxPSmUZnTyCfX9YWqi32MJg43ujP786ZoacL559Y"),at=new f.PublicKey("GzqQwxPSmUZnTyCfX9YWqi32MJg43ujP786ZoacL559Y");var Or={SERUM_MARKET:f.PublicKey.default,UTIL1216:f.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"),ct=s(require("axios"));var ut=require("@solana/web3.js");var B=s(require("bn.js"));function K(n,e){if(e.isZero())throw Error("divisor is zero");return n.mod(e)}function lt(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=K(n,e);return r.gt(S)&&(t=t.add(new B.default(1)),e=n.div(t),r=K(n,t),r.gt(S)&&(e=e.add(new B.default(1)))),[t,e]}var S=new B.default(0),_=class{static swapWithoutFees(e,t,r){let o=t.mul(r),u=t.add(e),[c]=lt(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 K(e.mul(r),t).gt(S)&&c.gt(S)&&(c=c.add(new B.default(1))),K(e.mul(o),t).gt(S)&&a.gt(S)&&(a=a.add(new B.default(1))),{tokenAmount0:c,tokenAmount1:a};throw Error("roundDirection value error")}};var ie=s(require("bn.js")),re=new ie.default(1e6);function mt(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 mt(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}=_.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,P,se,ae,dt]=t.address===c.toString()?[o,u,e.decimals,t.decimals,e.address]:[u,o,t.decimals,e.decimals,t.address],j=new D.default(P.toString()).div(h(10,ae)).div(new D.default(G.toString()).div(h(10,se))),M=a.gte(P)?P.sub(new U.default(1)):a,Ne=P.sub(M),z=te(G.mul(M),Ne),H=te(z.mul(new U.default(1e6)),new U.default(1e6).sub(r)),Re=H.sub(z),Fe=new D.default(M.toString()).div(h(10,ae)).div(new D.default(H.toString()).div(h(10,se))),De=j.isZero()?0:Fe.sub(j).div(j).abs().toNumber();return{amountRealOut:M,amountIn:H,amountInWithoutFee:z,tradeFee:Re,priceImpact:De}}};0&&(module.exports={CurveCalculator,RoundDirection}); //# sourceMappingURL=calculator.js.map