@synthra-swap/sdk 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/README.md +12 -0
  2. package/chains.d.ts +1 -0
  3. package/chains.js +1 -0
  4. package/core.d.ts +1 -0
  5. package/core.js +1 -0
  6. package/dist/chain-registry.d.ts +22 -0
  7. package/dist/chain-registry.js +315 -0
  8. package/dist/chain-registry.js.map +1 -0
  9. package/dist/chains.d.ts +5 -0
  10. package/dist/chains.js +29 -0
  11. package/dist/chains.js.map +1 -0
  12. package/dist/core/addresses.d.ts +21 -0
  13. package/dist/core/addresses.js +76 -0
  14. package/dist/core/addresses.js.map +1 -0
  15. package/dist/core/chains.d.ts +51 -0
  16. package/dist/core/chains.js +82 -0
  17. package/dist/core/chains.js.map +1 -0
  18. package/dist/core/constants.d.ts +12 -0
  19. package/dist/core/constants.js +20 -0
  20. package/dist/core/constants.js.map +1 -0
  21. package/dist/core/entities/baseCurrency.d.ts +48 -0
  22. package/dist/core/entities/baseCurrency.js +29 -0
  23. package/dist/core/entities/baseCurrency.js.map +1 -0
  24. package/dist/core/entities/currency.d.ts +3 -0
  25. package/dist/core/entities/currency.js +3 -0
  26. package/dist/core/entities/currency.js.map +1 -0
  27. package/dist/core/entities/ether.d.ts +13 -0
  28. package/dist/core/entities/ether.js +32 -0
  29. package/dist/core/entities/ether.js.map +1 -0
  30. package/dist/core/entities/fractions/currencyAmount.d.ts +31 -0
  31. package/dist/core/entities/fractions/currencyAmount.js +74 -0
  32. package/dist/core/entities/fractions/currencyAmount.js.map +1 -0
  33. package/dist/core/entities/fractions/fraction.d.ts +24 -0
  34. package/dist/core/entities/fractions/fraction.js +106 -0
  35. package/dist/core/entities/fractions/fraction.js.map +1 -0
  36. package/dist/core/entities/fractions/index.d.ts +4 -0
  37. package/dist/core/entities/fractions/index.js +12 -0
  38. package/dist/core/entities/fractions/index.js.map +1 -0
  39. package/dist/core/entities/fractions/percent.d.ts +14 -0
  40. package/dist/core/entities/fractions/percent.js +45 -0
  41. package/dist/core/entities/fractions/percent.js.map +1 -0
  42. package/dist/core/entities/fractions/price.d.ts +38 -0
  43. package/dist/core/entities/fractions/price.js +75 -0
  44. package/dist/core/entities/fractions/price.js.map +1 -0
  45. package/dist/core/entities/index.d.ts +7 -0
  46. package/dist/core/entities/index.js +24 -0
  47. package/dist/core/entities/index.js.map +1 -0
  48. package/dist/core/entities/nativeCurrency.d.ts +8 -0
  49. package/dist/core/entities/nativeCurrency.js +16 -0
  50. package/dist/core/entities/nativeCurrency.js.map +1 -0
  51. package/dist/core/entities/nativeOnChain.d.ts +19 -0
  52. package/dist/core/entities/nativeOnChain.js +141 -0
  53. package/dist/core/entities/nativeOnChain.js.map +1 -0
  54. package/dist/core/entities/token.d.ts +48 -0
  55. package/dist/core/entities/token.js +71 -0
  56. package/dist/core/entities/token.js.map +1 -0
  57. package/dist/core/entities/weth9.d.ts +7 -0
  58. package/dist/core/entities/weth9.js +28 -0
  59. package/dist/core/entities/weth9.js.map +1 -0
  60. package/dist/core/index.d.ts +5 -0
  61. package/dist/core/index.js +22 -0
  62. package/dist/core/index.js.map +1 -0
  63. package/dist/core/utils/computePriceImpact.d.ts +8 -0
  64. package/dist/core/utils/computePriceImpact.js +18 -0
  65. package/dist/core/utils/computePriceImpact.js.map +1 -0
  66. package/dist/core/utils/index.d.ts +4 -0
  67. package/dist/core/utils/index.js +12 -0
  68. package/dist/core/utils/index.js.map +1 -0
  69. package/dist/core/utils/sortedInsert.d.ts +1 -0
  70. package/dist/core/utils/sortedInsert.js +40 -0
  71. package/dist/core/utils/sortedInsert.js.map +1 -0
  72. package/dist/core/utils/sqrt.d.ts +7 -0
  73. package/dist/core/utils/sqrt.js +34 -0
  74. package/dist/core/utils/sqrt.js.map +1 -0
  75. package/dist/core/utils/validateAndParseAddress.d.ts +10 -0
  76. package/dist/core/utils/validateAndParseAddress.js +31 -0
  77. package/dist/core/utils/validateAndParseAddress.js.map +1 -0
  78. package/dist/index.d.ts +4 -0
  79. package/dist/index.js +34 -0
  80. package/dist/index.js.map +1 -0
  81. package/dist/universal-router/entities/Command.d.ts +12 -0
  82. package/dist/universal-router/entities/Command.js +9 -0
  83. package/dist/universal-router/entities/Command.js.map +1 -0
  84. package/dist/universal-router/entities/index.d.ts +3 -0
  85. package/dist/universal-router/entities/index.js +20 -0
  86. package/dist/universal-router/entities/index.js.map +1 -0
  87. package/dist/universal-router/entities/protocols/index.d.ts +2 -0
  88. package/dist/universal-router/entities/protocols/index.js +19 -0
  89. package/dist/universal-router/entities/protocols/index.js.map +1 -0
  90. package/dist/universal-router/entities/protocols/uniswap.d.ts +32 -0
  91. package/dist/universal-router/entities/protocols/uniswap.js +143 -0
  92. package/dist/universal-router/entities/protocols/uniswap.js.map +1 -0
  93. package/dist/universal-router/entities/protocols/unwrapWETH.d.ts +12 -0
  94. package/dist/universal-router/entities/protocols/unwrapWETH.js +35 -0
  95. package/dist/universal-router/entities/protocols/unwrapWETH.js.map +1 -0
  96. package/dist/universal-router/entities/trade.d.ts +41 -0
  97. package/dist/universal-router/entities/trade.js +114 -0
  98. package/dist/universal-router/entities/trade.js.map +1 -0
  99. package/dist/universal-router/index.d.ts +5 -0
  100. package/dist/universal-router/index.js +31 -0
  101. package/dist/universal-router/index.js.map +1 -0
  102. package/dist/universal-router/swapRouter.d.ts +29 -0
  103. package/dist/universal-router/swapRouter.js +102 -0
  104. package/dist/universal-router/swapRouter.js.map +1 -0
  105. package/dist/universal-router/utils/constants.d.ts +8 -0
  106. package/dist/universal-router/utils/constants.js +21 -0
  107. package/dist/universal-router/utils/constants.js.map +1 -0
  108. package/dist/universal-router/utils/getNativeCurrencyValue.d.ts +2 -0
  109. package/dist/universal-router/utils/getNativeCurrencyValue.js +19 -0
  110. package/dist/universal-router/utils/getNativeCurrencyValue.js.map +1 -0
  111. package/dist/universal-router/utils/inputTokens.d.ts +16 -0
  112. package/dist/universal-router/utils/inputTokens.js +44 -0
  113. package/dist/universal-router/utils/inputTokens.js.map +1 -0
  114. package/dist/universal-router/utils/numbers.d.ts +6 -0
  115. package/dist/universal-router/utils/numbers.js +24 -0
  116. package/dist/universal-router/utils/numbers.js.map +1 -0
  117. package/dist/universal-router/utils/routerCommands.d.ts +29 -0
  118. package/dist/universal-router/utils/routerCommands.js +64 -0
  119. package/dist/universal-router/utils/routerCommands.js.map +1 -0
  120. package/dist/universal-router/utils/routerTradeAdapter.d.ts +40 -0
  121. package/dist/universal-router/utils/routerTradeAdapter.js +82 -0
  122. package/dist/universal-router/utils/routerTradeAdapter.js.map +1 -0
  123. package/dist/v3/abis.d.ts +6 -0
  124. package/dist/v3/abis.js +39 -0
  125. package/dist/v3/abis.js.map +1 -0
  126. package/dist/v3/constants.d.ts +18 -0
  127. package/dist/v3/constants.js +26 -0
  128. package/dist/v3/constants.js.map +1 -0
  129. package/dist/v3/entities/index.d.ts +7 -0
  130. package/dist/v3/entities/index.js +24 -0
  131. package/dist/v3/entities/index.js.map +1 -0
  132. package/dist/v3/entities/pool.d.ts +81 -0
  133. package/dist/v3/entities/pool.js +215 -0
  134. package/dist/v3/entities/pool.js.map +1 -0
  135. package/dist/v3/entities/position.d.ts +131 -0
  136. package/dist/v3/entities/position.js +250 -0
  137. package/dist/v3/entities/position.js.map +1 -0
  138. package/dist/v3/entities/route.d.ts +26 -0
  139. package/dist/v3/entities/route.js +77 -0
  140. package/dist/v3/entities/route.js.map +1 -0
  141. package/dist/v3/entities/tick.d.ts +13 -0
  142. package/dist/v3/entities/tick.js +19 -0
  143. package/dist/v3/entities/tick.js.map +1 -0
  144. package/dist/v3/entities/tickDataProvider.d.ts +31 -0
  145. package/dist/v3/entities/tickDataProvider.js +18 -0
  146. package/dist/v3/entities/tickDataProvider.js.map +1 -0
  147. package/dist/v3/entities/tickListDataProvider.d.ts +15 -0
  148. package/dist/v3/entities/tickListDataProvider.js +23 -0
  149. package/dist/v3/entities/tickListDataProvider.js.map +1 -0
  150. package/dist/v3/entities/trade.d.ts +220 -0
  151. package/dist/v3/entities/trade.js +442 -0
  152. package/dist/v3/entities/trade.js.map +1 -0
  153. package/dist/v3/index.d.ts +9 -0
  154. package/dist/v3/index.js +26 -0
  155. package/dist/v3/index.js.map +1 -0
  156. package/dist/v3/internalConstants.d.ts +6 -0
  157. package/dist/v3/internalConstants.js +15 -0
  158. package/dist/v3/internalConstants.js.map +1 -0
  159. package/dist/v3/multicall.d.ts +9 -0
  160. package/dist/v3/multicall.js +20 -0
  161. package/dist/v3/multicall.js.map +1 -0
  162. package/dist/v3/nonfungiblePositionManager.d.ts +146 -0
  163. package/dist/v3/nonfungiblePositionManager.js +231 -0
  164. package/dist/v3/nonfungiblePositionManager.js.map +1 -0
  165. package/dist/v3/payments.d.ts +24 -0
  166. package/dist/v3/payments.js +55 -0
  167. package/dist/v3/payments.js.map +1 -0
  168. package/dist/v3/quoter.d.ts +37 -0
  169. package/dist/v3/quoter.js +76 -0
  170. package/dist/v3/quoter.js.map +1 -0
  171. package/dist/v3/selfPermit.d.ts +25 -0
  172. package/dist/v3/selfPermit.js +37 -0
  173. package/dist/v3/selfPermit.js.map +1 -0
  174. package/dist/v3/swapRouter.d.ts +51 -0
  175. package/dist/v3/swapRouter.js +147 -0
  176. package/dist/v3/swapRouter.js.map +1 -0
  177. package/dist/v3/utils/calldata.d.ts +20 -0
  178. package/dist/v3/utils/calldata.js +22 -0
  179. package/dist/v3/utils/calldata.js.map +1 -0
  180. package/dist/v3/utils/computePoolAddress.d.ts +18 -0
  181. package/dist/v3/utils/computePoolAddress.js +22 -0
  182. package/dist/v3/utils/computePoolAddress.js.map +1 -0
  183. package/dist/v3/utils/encodeRouteToPath.d.ts +8 -0
  184. package/dist/v3/utils/encodeRouteToPath.js +32 -0
  185. package/dist/v3/utils/encodeRouteToPath.js.map +1 -0
  186. package/dist/v3/utils/encodeSqrtRatioX96.d.ts +9 -0
  187. package/dist/v3/utils/encodeSqrtRatioX96.js +22 -0
  188. package/dist/v3/utils/encodeSqrtRatioX96.js.map +1 -0
  189. package/dist/v3/utils/fullMath.d.ts +8 -0
  190. package/dist/v3/utils/fullMath.js +23 -0
  191. package/dist/v3/utils/fullMath.js.map +1 -0
  192. package/dist/v3/utils/index.d.ts +17 -0
  193. package/dist/v3/utils/index.js +34 -0
  194. package/dist/v3/utils/index.js.map +1 -0
  195. package/dist/v3/utils/isSorted.d.ts +7 -0
  196. package/dist/v3/utils/isSorted.js +19 -0
  197. package/dist/v3/utils/isSorted.js.map +1 -0
  198. package/dist/v3/utils/liquidityMath.d.ts +8 -0
  199. package/dist/v3/utils/liquidityMath.js +24 -0
  200. package/dist/v3/utils/liquidityMath.js.map +1 -0
  201. package/dist/v3/utils/maxLiquidityForAmounts.d.ts +14 -0
  202. package/dist/v3/utils/maxLiquidityForAmounts.js +89 -0
  203. package/dist/v3/utils/maxLiquidityForAmounts.js.map +1 -0
  204. package/dist/v3/utils/mostSignificantBit.d.ts +2 -0
  205. package/dist/v3/utils/mostSignificantBit.js +29 -0
  206. package/dist/v3/utils/mostSignificantBit.js.map +1 -0
  207. package/dist/v3/utils/nearestUsableTick.d.ts +6 -0
  208. package/dist/v3/utils/nearestUsableTick.js +27 -0
  209. package/dist/v3/utils/nearestUsableTick.js.map +1 -0
  210. package/dist/v3/utils/position.d.ts +8 -0
  211. package/dist/v3/utils/position.js +23 -0
  212. package/dist/v3/utils/position.js.map +1 -0
  213. package/dist/v3/utils/priceTickConversions.d.ts +15 -0
  214. package/dist/v3/utils/priceTickConversions.js +52 -0
  215. package/dist/v3/utils/priceTickConversions.js.map +1 -0
  216. package/dist/v3/utils/sqrtPriceMath.d.ts +13 -0
  217. package/dist/v3/utils/sqrtPriceMath.js +97 -0
  218. package/dist/v3/utils/sqrtPriceMath.js.map +1 -0
  219. package/dist/v3/utils/swapMath.d.ts +9 -0
  220. package/dist/v3/utils/swapMath.js +79 -0
  221. package/dist/v3/utils/swapMath.js.map +1 -0
  222. package/dist/v3/utils/tickLibrary.d.ts +14 -0
  223. package/dist/v3/utils/tickLibrary.js +53 -0
  224. package/dist/v3/utils/tickLibrary.js.map +1 -0
  225. package/dist/v3/utils/tickList.d.ts +23 -0
  226. package/dist/v3/utils/tickList.js +110 -0
  227. package/dist/v3/utils/tickList.js.map +1 -0
  228. package/dist/v3/utils/tickMath.d.ts +34 -0
  229. package/dist/v3/utils/tickMath.js +127 -0
  230. package/dist/v3/utils/tickMath.js.map +1 -0
  231. package/package.json +80 -0
  232. package/universal-router.d.ts +1 -0
  233. package/universal-router.js +1 -0
  234. package/v3.d.ts +1 -0
  235. package/v3.js +1 -0
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Price = void 0;
7
+ const jsbi_1 = __importDefault(require("jsbi"));
8
+ const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
9
+ const fraction_1 = require("./fraction");
10
+ const currencyAmount_1 = require("./currencyAmount");
11
+ class Price extends fraction_1.Fraction {
12
+ /**
13
+ * Construct a price, either with the base and quote currency amount, or the
14
+ * @param args
15
+ */
16
+ constructor(...args) {
17
+ let baseCurrency, quoteCurrency, denominator, numerator;
18
+ if (args.length === 4) {
19
+ ;
20
+ [baseCurrency, quoteCurrency, denominator, numerator] = args;
21
+ }
22
+ else {
23
+ const result = args[0].quoteAmount.divide(args[0].baseAmount);
24
+ [baseCurrency, quoteCurrency, denominator, numerator] = [
25
+ args[0].baseAmount.currency,
26
+ args[0].quoteAmount.currency,
27
+ result.denominator,
28
+ result.numerator
29
+ ];
30
+ }
31
+ super(numerator, denominator);
32
+ this.baseCurrency = baseCurrency;
33
+ this.quoteCurrency = quoteCurrency;
34
+ this.scalar = new fraction_1.Fraction(jsbi_1.default.exponentiate(jsbi_1.default.BigInt(10), jsbi_1.default.BigInt(baseCurrency.decimals)), jsbi_1.default.exponentiate(jsbi_1.default.BigInt(10), jsbi_1.default.BigInt(quoteCurrency.decimals)));
35
+ }
36
+ /**
37
+ * Flip the price, switching the base and quote currency
38
+ */
39
+ invert() {
40
+ return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator);
41
+ }
42
+ /**
43
+ * Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency
44
+ * @param other the other price
45
+ */
46
+ multiply(other) {
47
+ (0, tiny_invariant_1.default)(this.quoteCurrency.equals(other.baseCurrency), 'TOKEN');
48
+ const fraction = super.multiply(other);
49
+ return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator);
50
+ }
51
+ /**
52
+ * Return the amount of quote currency corresponding to a given amount of the base currency
53
+ * @param currencyAmount the amount of base currency to quote against the price
54
+ */
55
+ quote(currencyAmount) {
56
+ (0, tiny_invariant_1.default)(currencyAmount.currency.equals(this.baseCurrency), 'TOKEN');
57
+ const result = super.multiply(currencyAmount);
58
+ return currencyAmount_1.CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator);
59
+ }
60
+ /**
61
+ * Get the value scaled by decimals for formatting
62
+ * @private
63
+ */
64
+ get adjustedForDecimals() {
65
+ return super.multiply(this.scalar);
66
+ }
67
+ toSignificant(significantDigits = 6, format, rounding) {
68
+ return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding);
69
+ }
70
+ toFixed(decimalPlaces = 4, format, rounding) {
71
+ return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding);
72
+ }
73
+ }
74
+ exports.Price = Price;
75
+ //# sourceMappingURL=price.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price.js","sourceRoot":"","sources":["../../../../src/core/entities/fractions/price.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './fractions';
2
+ export * from './currency';
3
+ export * from './ether';
4
+ export * from './nativeOnChain';
5
+ export * from './nativeCurrency';
6
+ export * from './token';
7
+ export * from './weth9';
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./fractions"), exports);
18
+ __exportStar(require("./currency"), exports);
19
+ __exportStar(require("./ether"), exports);
20
+ __exportStar(require("./nativeOnChain"), exports);
21
+ __exportStar(require("./nativeCurrency"), exports);
22
+ __exportStar(require("./token"), exports);
23
+ __exportStar(require("./weth9"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAE3B,6CAA0B;AAC1B,0CAAuB;AACvB,kDAA+B;AAC/B,mDAAgC;AAChC,0CAAuB;AACvB,0CAAuB"}
@@ -0,0 +1,8 @@
1
+ import { BaseCurrency } from './baseCurrency';
2
+ /**
3
+ * Represents the native currency of the chain on which it resides, e.g.
4
+ */
5
+ export declare abstract class NativeCurrency extends BaseCurrency {
6
+ readonly isNative: true;
7
+ readonly isToken: false;
8
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NativeCurrency = void 0;
4
+ const baseCurrency_1 = require("./baseCurrency");
5
+ /**
6
+ * Represents the native currency of the chain on which it resides, e.g.
7
+ */
8
+ class NativeCurrency extends baseCurrency_1.BaseCurrency {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.isNative = true;
12
+ this.isToken = false;
13
+ }
14
+ }
15
+ exports.NativeCurrency = NativeCurrency;
16
+ //# sourceMappingURL=nativeCurrency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeCurrency.js","sourceRoot":"","sources":["../../../src/core/entities/nativeCurrency.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAE7C;;GAEG;AACH,MAAsB,cAAe,SAAQ,2BAAY;IAAzD;;QACkB,aAAQ,GAAS,IAAI,CAAA;QACrB,YAAO,GAAU,KAAK,CAAA;IACxC,CAAC;CAAA;AAHD,wCAGC"}
@@ -0,0 +1,19 @@
1
+ import { ChainId, NativeCurrencyName } from '../chains';
2
+ import { Ether } from './ether';
3
+ import { NativeCurrency } from './nativeCurrency';
4
+ import { Token } from './token';
5
+ export declare const NATIVE_NAMES_BY_ID: {
6
+ [chainId: number]: string[];
7
+ };
8
+ export declare const NATIVE_CURRENCY: {
9
+ [chainId: number]: NativeCurrencyName;
10
+ };
11
+ export declare const WRAPPED_NATIVE_CURRENCY: {
12
+ [chainId in ChainId]: Token;
13
+ };
14
+ export declare class ExtendedEther extends Ether {
15
+ get wrapped(): Token;
16
+ private static _cachedExtendedEther;
17
+ static onChain(chainId: number): ExtendedEther;
18
+ }
19
+ export declare function nativeOnChain(chainId: number): NativeCurrency;
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nativeOnChain = exports.ExtendedEther = exports.WRAPPED_NATIVE_CURRENCY = exports.NATIVE_CURRENCY = exports.NATIVE_NAMES_BY_ID = void 0;
4
+ const chains_1 = require("../chains");
5
+ const ether_1 = require("./ether");
6
+ const nativeCurrency_1 = require("./nativeCurrency");
7
+ const token_1 = require("./token");
8
+ const E_ETH_ADDRESS = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee';
9
+ const MATIC_NATIVE_ADDRESS = '0x0000000000000000000000000000000000001010';
10
+ exports.NATIVE_NAMES_BY_ID = {
11
+ [chains_1.ChainId.MAINNET]: ['ETH', 'ETHER', E_ETH_ADDRESS],
12
+ [chains_1.ChainId.GOERLI]: ['ETH', 'ETHER', E_ETH_ADDRESS],
13
+ [chains_1.ChainId.SEPOLIA]: ['ETH', 'ETHER', E_ETH_ADDRESS],
14
+ [chains_1.ChainId.OPTIMISM]: ['ETH', 'ETHER', E_ETH_ADDRESS],
15
+ [chains_1.ChainId.OPTIMISM_GOERLI]: ['ETH', 'ETHER', E_ETH_ADDRESS],
16
+ [chains_1.ChainId.ARBITRUM_ONE]: ['ETH', 'ETHER', E_ETH_ADDRESS],
17
+ [chains_1.ChainId.ARBITRUM_GOERLI]: ['ETH', 'ETHER', E_ETH_ADDRESS],
18
+ [chains_1.ChainId.POLYGON]: ['MATIC', MATIC_NATIVE_ADDRESS],
19
+ [chains_1.ChainId.POLYGON_MUMBAI]: ['MATIC', MATIC_NATIVE_ADDRESS],
20
+ [chains_1.ChainId.CELO]: ['CELO'],
21
+ [chains_1.ChainId.CELO_ALFAJORES]: ['CELO'],
22
+ [chains_1.ChainId.GNOSIS]: ['XDAI'],
23
+ [chains_1.ChainId.MOONBEAM]: ['GLMR'],
24
+ [chains_1.ChainId.BNB]: ['BNB', 'BNB', E_ETH_ADDRESS],
25
+ [chains_1.ChainId.AVALANCHE]: ['AVAX', 'AVALANCHE', E_ETH_ADDRESS],
26
+ [chains_1.ChainId.BASE]: ['ETH', 'ETHER', E_ETH_ADDRESS],
27
+ [chains_1.ChainId.UOMI]: ['UOMI', 'UOMI', E_ETH_ADDRESS],
28
+ [chains_1.ChainId.IRYS]: ['IRYS', E_ETH_ADDRESS],
29
+ [chains_1.ChainId.HELIOS]: ['HELIOS', E_ETH_ADDRESS],
30
+ [chains_1.ChainId.ARC]: ['ARC', E_ETH_ADDRESS],
31
+ [chains_1.ChainId.ROBINHOOD]: ['ROBINHOOD', E_ETH_ADDRESS],
32
+ };
33
+ exports.NATIVE_CURRENCY = {
34
+ [chains_1.ChainId.MAINNET]: chains_1.NativeCurrencyName.ETHER,
35
+ [chains_1.ChainId.GOERLI]: chains_1.NativeCurrencyName.ETHER,
36
+ [chains_1.ChainId.SEPOLIA]: chains_1.NativeCurrencyName.ETHER,
37
+ [chains_1.ChainId.OPTIMISM]: chains_1.NativeCurrencyName.ETHER,
38
+ [chains_1.ChainId.OPTIMISM_GOERLI]: chains_1.NativeCurrencyName.ETHER,
39
+ [chains_1.ChainId.ARBITRUM_ONE]: chains_1.NativeCurrencyName.ETHER,
40
+ [chains_1.ChainId.ARBITRUM_GOERLI]: chains_1.NativeCurrencyName.ETHER,
41
+ [chains_1.ChainId.POLYGON]: chains_1.NativeCurrencyName.MATIC,
42
+ [chains_1.ChainId.POLYGON_MUMBAI]: chains_1.NativeCurrencyName.MATIC,
43
+ [chains_1.ChainId.CELO]: chains_1.NativeCurrencyName.CELO,
44
+ [chains_1.ChainId.CELO_ALFAJORES]: chains_1.NativeCurrencyName.CELO,
45
+ [chains_1.ChainId.GNOSIS]: chains_1.NativeCurrencyName.GNOSIS,
46
+ [chains_1.ChainId.MOONBEAM]: chains_1.NativeCurrencyName.MOONBEAM,
47
+ [chains_1.ChainId.BNB]: chains_1.NativeCurrencyName.BNB,
48
+ [chains_1.ChainId.AVALANCHE]: chains_1.NativeCurrencyName.AVALANCHE,
49
+ [chains_1.ChainId.BASE]: chains_1.NativeCurrencyName.ETHER,
50
+ [chains_1.ChainId.UOMI]: chains_1.NativeCurrencyName.UOMI,
51
+ [chains_1.ChainId.IRYS]: chains_1.NativeCurrencyName.IRYS,
52
+ [chains_1.ChainId.HELIOS]: chains_1.NativeCurrencyName.HELIOS,
53
+ [chains_1.ChainId.ARC]: chains_1.NativeCurrencyName.ARC,
54
+ [chains_1.ChainId.ROBINHOOD]: chains_1.NativeCurrencyName.ROBINHOOD,
55
+ };
56
+ exports.WRAPPED_NATIVE_CURRENCY = {
57
+ [chains_1.ChainId.MAINNET]: new token_1.Token(chains_1.ChainId.MAINNET, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),
58
+ [chains_1.ChainId.GOERLI]: new token_1.Token(chains_1.ChainId.GOERLI, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),
59
+ [chains_1.ChainId.SEPOLIA]: new token_1.Token(chains_1.ChainId.SEPOLIA, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),
60
+ [chains_1.ChainId.BNB]: new token_1.Token(chains_1.ChainId.BNB, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),
61
+ [chains_1.ChainId.OPTIMISM]: new token_1.Token(chains_1.ChainId.OPTIMISM, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
62
+ [chains_1.ChainId.OPTIMISM_GOERLI]: new token_1.Token(chains_1.ChainId.OPTIMISM_GOERLI, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
63
+ [chains_1.ChainId.ARBITRUM_ONE]: new token_1.Token(chains_1.ChainId.ARBITRUM_ONE, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),
64
+ [chains_1.ChainId.ARBITRUM_GOERLI]: new token_1.Token(chains_1.ChainId.ARBITRUM_GOERLI, '0xe39Ab88f8A4777030A534146A9Ca3B52bd5D43A3', 18, 'WETH', 'Wrapped Ether'),
65
+ [chains_1.ChainId.POLYGON]: new token_1.Token(chains_1.ChainId.POLYGON, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),
66
+ [chains_1.ChainId.POLYGON_MUMBAI]: new token_1.Token(chains_1.ChainId.POLYGON_MUMBAI, '0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889', 18, 'WMATIC', 'Wrapped MATIC'),
67
+ [chains_1.ChainId.CELO]: new token_1.Token(chains_1.ChainId.CELO, '0x471EcE3750Da237f93B8E339c536989b8978a438', 18, 'CELO', 'Celo native asset'),
68
+ [chains_1.ChainId.CELO_ALFAJORES]: new token_1.Token(chains_1.ChainId.CELO_ALFAJORES, '0xF194afDf50B03e69Bd7D057c1Aa9e10c9954E4C9', 18, 'CELO', 'Celo native asset'),
69
+ [chains_1.ChainId.GNOSIS]: new token_1.Token(chains_1.ChainId.GNOSIS, '0xe91d153e0b41518a2ce8dd3d7944fa863463a97d', 18, 'WXDAI', 'Wrapped XDAI on Gnosis'),
70
+ [chains_1.ChainId.MOONBEAM]: new token_1.Token(chains_1.ChainId.MOONBEAM, '0xAcc15dC74880C9944775448304B263D191c6077F', 18, 'WGLMR', 'Wrapped GLMR'),
71
+ [chains_1.ChainId.AVALANCHE]: new token_1.Token(chains_1.ChainId.AVALANCHE, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),
72
+ [chains_1.ChainId.BASE]: new token_1.Token(chains_1.ChainId.BASE, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
73
+ [chains_1.ChainId.BASE_GOERLI]: new token_1.Token(chains_1.ChainId.BASE_GOERLI, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
74
+ [chains_1.ChainId.UOMI]: new token_1.Token(chains_1.ChainId.UOMI, '0x911b4000D3422F482F4062a913885f7b035382Df', 18, 'WUOMI', 'Wrapped UOMI'),
75
+ [chains_1.ChainId.IRYS]: new token_1.Token(chains_1.ChainId.IRYS, '0x33e4191705c386532ba27cbf171db86919200b94', 18, 'WIRYS', 'Wrapped IRYS'),
76
+ [chains_1.ChainId.HELIOS]: new token_1.Token(chains_1.ChainId.HELIOS, '0xfBCf3Ce995991A4eAd57DB7b550aDD94ba761669', 18, 'WHELIOS', 'Wrapped HELIOS'),
77
+ [chains_1.ChainId.ARC]: new token_1.Token(chains_1.ChainId.ARC, '0x911b4000D3422F482F4062a913885f7b035382Df', 18, 'WUSDC', 'Wrapped USDC'),
78
+ [chains_1.ChainId.ROBINHOOD]: new token_1.Token(chains_1.ChainId.ROBINHOOD, '0x33e4191705c386532ba27cBF171Db86919200B94', 18, 'WETH', 'Wrapped ETH'),
79
+ [chains_1.ChainId.OPTIMISM_SEPOLIA]: new token_1.Token(chains_1.ChainId.OPTIMISM_SEPOLIA, '0x0000000000000000000000000000000000000000', 18, 'WTEST', 'Wrapped Test Token'),
80
+ [chains_1.ChainId.ARBITRUM_SEPOLIA]: new token_1.Token(chains_1.ChainId.ARBITRUM_SEPOLIA, '0x0000000000000000000000000000000000000000', 18, 'WTEST', 'Wrapped Test Token'),
81
+ [chains_1.ChainId.ZORA]: new token_1.Token(chains_1.ChainId.ZORA, '0x0000000000000000000000000000000000000000', 18, 'WTEST', 'Wrapped Test Token'),
82
+ [chains_1.ChainId.ZORA_SEPOLIA]: new token_1.Token(chains_1.ChainId.ZORA_SEPOLIA, '0x0000000000000000000000000000000000000000', 18, 'WTEST', 'Wrapped Test Token'),
83
+ [chains_1.ChainId.ROOTSTOCK]: new token_1.Token(chains_1.ChainId.ROOTSTOCK, '0x0000000000000000000000000000000000000000', 18, 'WTEST', 'Wrapped Test Token'),
84
+ [chains_1.ChainId.BLAST]: new token_1.Token(chains_1.ChainId.BLAST, '0x0000000000000000000000000000000000000000', 18, 'WTEST', 'Wrapped Test Token'),
85
+ };
86
+ const NATIVE_CURRENCY_METADATA = {
87
+ [chains_1.ChainId.POLYGON]: { decimals: 18, symbol: 'MATIC', name: 'Polygon Matic' },
88
+ [chains_1.ChainId.POLYGON_MUMBAI]: { decimals: 18, symbol: 'MATIC', name: 'Polygon Matic' },
89
+ [chains_1.ChainId.CELO]: { decimals: 18, symbol: 'CELO', name: 'Celo' },
90
+ [chains_1.ChainId.CELO_ALFAJORES]: { decimals: 18, symbol: 'CELO', name: 'Celo' },
91
+ [chains_1.ChainId.GNOSIS]: { decimals: 18, symbol: 'XDAI', name: 'xDai' },
92
+ [chains_1.ChainId.MOONBEAM]: { decimals: 18, symbol: 'GLMR', name: 'Glimmer' },
93
+ [chains_1.ChainId.BNB]: { decimals: 18, symbol: 'BNB', name: 'BNB' },
94
+ [chains_1.ChainId.AVALANCHE]: { decimals: 18, symbol: 'AVAX', name: 'Avalanche' },
95
+ [chains_1.ChainId.UOMI]: { decimals: 18, symbol: 'UOMI', name: 'Uomi' },
96
+ [chains_1.ChainId.IRYS]: { decimals: 18, symbol: 'IRYS', name: 'Irys' },
97
+ [chains_1.ChainId.HELIOS]: { decimals: 18, symbol: 'HELIOS', name: 'Helios' },
98
+ [chains_1.ChainId.ARC]: { decimals: 18, symbol: 'USDC', name: 'USDC' },
99
+ [chains_1.ChainId.ROBINHOOD]: { decimals: 18, symbol: 'ETH', name: 'ETH' },
100
+ };
101
+ class SynthraNativeCurrency extends nativeCurrency_1.NativeCurrency {
102
+ constructor(chainId, decimals, symbol, name) {
103
+ super(chainId, decimals, symbol, name);
104
+ }
105
+ equals(other) {
106
+ return other.isNative && other.chainId === this.chainId;
107
+ }
108
+ get wrapped() {
109
+ const nativeCurrency = exports.WRAPPED_NATIVE_CURRENCY[this.chainId];
110
+ if (nativeCurrency)
111
+ return nativeCurrency;
112
+ throw new Error(`Does not support this chain ${this.chainId}`);
113
+ }
114
+ }
115
+ class ExtendedEther extends ether_1.Ether {
116
+ get wrapped() {
117
+ const nativeCurrency = exports.WRAPPED_NATIVE_CURRENCY[this.chainId];
118
+ if (nativeCurrency)
119
+ return nativeCurrency;
120
+ throw new Error('Unsupported chain ID');
121
+ }
122
+ static onChain(chainId) {
123
+ var _a;
124
+ return (_a = this._cachedExtendedEther[chainId]) !== null && _a !== void 0 ? _a : (this._cachedExtendedEther[chainId] = new ExtendedEther(chainId));
125
+ }
126
+ }
127
+ exports.ExtendedEther = ExtendedEther;
128
+ ExtendedEther._cachedExtendedEther = {};
129
+ const cachedNativeCurrency = {};
130
+ function nativeOnChain(chainId) {
131
+ if (cachedNativeCurrency[chainId] != undefined) {
132
+ return cachedNativeCurrency[chainId];
133
+ }
134
+ const metadata = NATIVE_CURRENCY_METADATA[chainId];
135
+ cachedNativeCurrency[chainId] = metadata
136
+ ? new SynthraNativeCurrency(chainId, metadata.decimals, metadata.symbol, metadata.name)
137
+ : ExtendedEther.onChain(chainId);
138
+ return cachedNativeCurrency[chainId];
139
+ }
140
+ exports.nativeOnChain = nativeOnChain;
141
+ //# sourceMappingURL=nativeOnChain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeOnChain.js","sourceRoot":"","sources":["../../../src/core/entities/nativeOnChain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { BigNumber } from '@ethersproject/bignumber';
2
+ import { BaseCurrency } from './baseCurrency';
3
+ import { Currency } from './currency';
4
+ /**
5
+ * Represents an ERC20 token with a unique address and some metadata.
6
+ */
7
+ export declare class Token extends BaseCurrency {
8
+ readonly isNative: false;
9
+ readonly isToken: true;
10
+ /**
11
+ * The contract address on the chain on which this token lives
12
+ */
13
+ readonly address: string;
14
+ /**
15
+ * Relevant for fee-on-transfer (FOT) token taxes,
16
+ * Not every ERC20 token is FOT token, so this field is optional
17
+ */
18
+ readonly buyFeeBps?: BigNumber;
19
+ readonly sellFeeBps?: BigNumber;
20
+ /**
21
+ *
22
+ * @param chainId {@link BaseCurrency#chainId}
23
+ * @param address The contract address on the chain on which this token lives
24
+ * @param decimals {@link BaseCurrency#decimals}
25
+ * @param symbol {@link BaseCurrency#symbol}
26
+ * @param name {@link BaseCurrency#name}
27
+ * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters
28
+ * @param buyFeeBps Buy fee tax for FOT tokens, in basis points
29
+ * @param sellFeeBps Sell fee tax for FOT tokens, in basis points
30
+ */
31
+ constructor(chainId: number, address: string, decimals: number, symbol?: string, name?: string, bypassChecksum?: boolean, buyFeeBps?: BigNumber, sellFeeBps?: BigNumber);
32
+ /**
33
+ * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.
34
+ * @param other other token to compare
35
+ */
36
+ equals(other: Currency): boolean;
37
+ /**
38
+ * Returns true if the address of this token sorts before the address of the other token
39
+ * @param other other token to compare
40
+ * @throws if the tokens have the same address
41
+ * @throws if the tokens are on different chains
42
+ */
43
+ sortsBefore(other: Token): boolean;
44
+ /**
45
+ * Return this token, which does not need to be wrapped
46
+ */
47
+ get wrapped(): Token;
48
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Token = void 0;
7
+ const bignumber_1 = require("@ethersproject/bignumber");
8
+ const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
9
+ const validateAndParseAddress_1 = require("../utils/validateAndParseAddress");
10
+ const baseCurrency_1 = require("./baseCurrency");
11
+ /**
12
+ * Represents an ERC20 token with a unique address and some metadata.
13
+ */
14
+ class Token extends baseCurrency_1.BaseCurrency {
15
+ /**
16
+ *
17
+ * @param chainId {@link BaseCurrency#chainId}
18
+ * @param address The contract address on the chain on which this token lives
19
+ * @param decimals {@link BaseCurrency#decimals}
20
+ * @param symbol {@link BaseCurrency#symbol}
21
+ * @param name {@link BaseCurrency#name}
22
+ * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters
23
+ * @param buyFeeBps Buy fee tax for FOT tokens, in basis points
24
+ * @param sellFeeBps Sell fee tax for FOT tokens, in basis points
25
+ */
26
+ constructor(chainId, address, decimals, symbol, name, bypassChecksum, buyFeeBps, sellFeeBps) {
27
+ super(chainId, decimals, symbol, name);
28
+ this.isNative = false;
29
+ this.isToken = true;
30
+ if (bypassChecksum) {
31
+ this.address = (0, validateAndParseAddress_1.checkValidAddress)(address);
32
+ }
33
+ else {
34
+ this.address = (0, validateAndParseAddress_1.validateAndParseAddress)(address);
35
+ }
36
+ if (buyFeeBps) {
37
+ (0, tiny_invariant_1.default)(buyFeeBps.gte(bignumber_1.BigNumber.from(0)), 'NON-NEGATIVE FOT FEES');
38
+ }
39
+ if (sellFeeBps) {
40
+ (0, tiny_invariant_1.default)(sellFeeBps.gte(bignumber_1.BigNumber.from(0)), 'NON-NEGATIVE FOT FEES');
41
+ }
42
+ this.buyFeeBps = buyFeeBps;
43
+ this.sellFeeBps = sellFeeBps;
44
+ }
45
+ /**
46
+ * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.
47
+ * @param other other token to compare
48
+ */
49
+ equals(other) {
50
+ return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase();
51
+ }
52
+ /**
53
+ * Returns true if the address of this token sorts before the address of the other token
54
+ * @param other other token to compare
55
+ * @throws if the tokens have the same address
56
+ * @throws if the tokens are on different chains
57
+ */
58
+ sortsBefore(other) {
59
+ (0, tiny_invariant_1.default)(this.chainId === other.chainId, 'CHAIN_IDS');
60
+ (0, tiny_invariant_1.default)(this.address.toLowerCase() !== other.address.toLowerCase(), 'ADDRESSES');
61
+ return this.address.toLowerCase() < other.address.toLowerCase();
62
+ }
63
+ /**
64
+ * Return this token, which does not need to be wrapped
65
+ */
66
+ get wrapped() {
67
+ return this;
68
+ }
69
+ }
70
+ exports.Token = Token;
71
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/core/entities/token.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAoD;AACpD,oEAAsC;AACtC,8EAA6F;AAC7F,iDAA6C;AAG7C;;GAEG;AACH,MAAa,KAAM,SAAQ,2BAAY;IAgBrC;;;;;;;;;;OAUG;IACH,YACE,OAAe,EACf,OAAe,EACf,QAAgB,EAChB,MAAe,EACf,IAAa,EACb,cAAwB,EACxB,SAAqB,EACrB,UAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QApCxB,aAAQ,GAAU,KAAK,CAAA;QACvB,YAAO,GAAS,IAAI,CAAA;QAoClC,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,OAAO,GAAG,IAAA,2CAAiB,EAAC,OAAO,CAAC,CAAA;SAC1C;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAA,iDAAuB,EAAC,OAAO,CAAC,CAAA;SAChD;QACD,IAAI,SAAS,EAAE;YACb,IAAA,wBAAS,EAAC,SAAS,CAAC,GAAG,CAAC,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAA;SACrE;QACD,IAAI,UAAU,EAAE;YACd,IAAA,wBAAS,EAAC,UAAU,CAAC,GAAG,CAAC,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAA;SACtE;QACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAe;QAC3B,OAAO,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;IACtH,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,KAAY;QAC7B,IAAA,wBAAS,EAAC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QACtD,IAAA,wBAAS,EAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC,CAAA;QAClF,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;IACjE,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AA/ED,sBA+EC"}
@@ -0,0 +1,7 @@
1
+ import { Token } from './token';
2
+ /**
3
+ * Known wrapped native token addresses, used in Ether#wrapped.
4
+ */
5
+ export declare const WETH9: {
6
+ [chainId: number]: Token;
7
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WETH9 = void 0;
4
+ const token_1 = require("./token");
5
+ const chains_1 = require("../chains");
6
+ /**
7
+ * Known wrapped native token addresses, used in Ether#wrapped.
8
+ */
9
+ exports.WETH9 = {
10
+ [chains_1.ChainId.MAINNET]: new token_1.Token(chains_1.ChainId.MAINNET, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),
11
+ [3]: new token_1.Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),
12
+ [chains_1.ChainId.GOERLI]: new token_1.Token(chains_1.ChainId.GOERLI, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),
13
+ [chains_1.ChainId.SEPOLIA]: new token_1.Token(chains_1.ChainId.SEPOLIA, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),
14
+ [chains_1.ChainId.OPTIMISM]: new token_1.Token(chains_1.ChainId.OPTIMISM, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
15
+ [chains_1.ChainId.OPTIMISM_SEPOLIA]: new token_1.Token(chains_1.ChainId.OPTIMISM_SEPOLIA, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
16
+ [chains_1.ChainId.ARBITRUM_ONE]: new token_1.Token(chains_1.ChainId.ARBITRUM_ONE, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),
17
+ [chains_1.ChainId.ARBITRUM_SEPOLIA]: new token_1.Token(chains_1.ChainId.ARBITRUM_SEPOLIA, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'),
18
+ [chains_1.ChainId.BASE]: new token_1.Token(chains_1.ChainId.BASE, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
19
+ [chains_1.ChainId.BNB]: new token_1.Token(chains_1.ChainId.BNB, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),
20
+ [chains_1.ChainId.POLYGON]: new token_1.Token(chains_1.ChainId.POLYGON, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),
21
+ [chains_1.ChainId.AVALANCHE]: new token_1.Token(chains_1.ChainId.AVALANCHE, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),
22
+ [chains_1.ChainId.UOMI]: new token_1.Token(chains_1.ChainId.UOMI, '0x911b4000D3422F482F4062a913885f7b035382Df', 18, 'WUOMI', 'Wrapped UOMI'),
23
+ [chains_1.ChainId.IRYS]: new token_1.Token(chains_1.ChainId.IRYS, '0x33e4191705c386532ba27cbf171db86919200b94', 18, 'WIRYS', 'Wrapped IRYS'),
24
+ [chains_1.ChainId.HELIOS]: new token_1.Token(chains_1.ChainId.HELIOS, '0xfBCf3Ce995991A4eAd57DB7b550aDD94ba761669', 18, 'WHELIOS', 'Wrapped HELIOS'),
25
+ [chains_1.ChainId.ARC]: new token_1.Token(chains_1.ChainId.ARC, '0x911b4000D3422F482F4062a913885f7b035382Df', 18, 'WUSDC', 'Wrapped USDC'),
26
+ [chains_1.ChainId.ROBINHOOD]: new token_1.Token(chains_1.ChainId.ROBINHOOD, '0x33e4191705c386532ba27cBF171Db86919200B94', 18, 'WETH', 'Wrapped ETH')
27
+ };
28
+ //# sourceMappingURL=weth9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weth9.js","sourceRoot":"","sources":["../../../src/core/entities/weth9.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './addresses';
2
+ export * from './chains';
3
+ export * from './constants';
4
+ export * from './entities';
5
+ export * from './utils';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./addresses"), exports);
18
+ __exportStar(require("./chains"), exports);
19
+ __exportStar(require("./constants"), exports);
20
+ __exportStar(require("./entities"), exports);
21
+ __exportStar(require("./utils"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,2CAAwB;AACxB,8CAA2B;AAC3B,6CAA0B;AAC1B,0CAAuB"}
@@ -0,0 +1,8 @@
1
+ import { Currency, CurrencyAmount, Percent, Price } from '../entities';
2
+ /**
3
+ * Returns the percent difference between the mid price and the execution price, i.e. price impact.
4
+ * @param midPrice mid price before the trade
5
+ * @param inputAmount the input amount of the trade
6
+ * @param outputAmount the output amount of the trade
7
+ */
8
+ export declare function computePriceImpact<TBase extends Currency, TQuote extends Currency>(midPrice: Price<TBase, TQuote>, inputAmount: CurrencyAmount<TBase>, outputAmount: CurrencyAmount<TQuote>): Percent;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.computePriceImpact = void 0;
4
+ const entities_1 = require("../entities");
5
+ /**
6
+ * Returns the percent difference between the mid price and the execution price, i.e. price impact.
7
+ * @param midPrice mid price before the trade
8
+ * @param inputAmount the input amount of the trade
9
+ * @param outputAmount the output amount of the trade
10
+ */
11
+ function computePriceImpact(midPrice, inputAmount, outputAmount) {
12
+ const quotedOutputAmount = midPrice.quote(inputAmount);
13
+ // calculate price impact := (exactQuote - outputAmount) / exactQuote
14
+ const priceImpact = quotedOutputAmount.subtract(outputAmount).divide(quotedOutputAmount);
15
+ return new entities_1.Percent(priceImpact.numerator, priceImpact.denominator);
16
+ }
17
+ exports.computePriceImpact = computePriceImpact;
18
+ //# sourceMappingURL=computePriceImpact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computePriceImpact.js","sourceRoot":"","sources":["../../../src/core/utils/computePriceImpact.ts"],"names":[],"mappings":";;;AAAA,0CAAsE;AAEtE;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,QAA8B,EAC9B,WAAkC,EAClC,YAAoC;IAEpC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACtD,qEAAqE;IACrE,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;IACxF,OAAO,IAAI,kBAAO,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;AACpE,CAAC;AATD,gDASC"}
@@ -0,0 +1,4 @@
1
+ export { computePriceImpact } from './computePriceImpact';
2
+ export { sortedInsert } from './sortedInsert';
3
+ export { sqrt } from './sqrt';
4
+ export { validateAndParseAddress } from './validateAndParseAddress';
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateAndParseAddress = exports.sqrt = exports.sortedInsert = exports.computePriceImpact = void 0;
4
+ var computePriceImpact_1 = require("./computePriceImpact");
5
+ Object.defineProperty(exports, "computePriceImpact", { enumerable: true, get: function () { return computePriceImpact_1.computePriceImpact; } });
6
+ var sortedInsert_1 = require("./sortedInsert");
7
+ Object.defineProperty(exports, "sortedInsert", { enumerable: true, get: function () { return sortedInsert_1.sortedInsert; } });
8
+ var sqrt_1 = require("./sqrt");
9
+ Object.defineProperty(exports, "sqrt", { enumerable: true, get: function () { return sqrt_1.sqrt; } });
10
+ var validateAndParseAddress_1 = require("./validateAndParseAddress");
11
+ Object.defineProperty(exports, "validateAndParseAddress", { enumerable: true, get: function () { return validateAndParseAddress_1.validateAndParseAddress; } });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/utils/index.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAAhD,wHAAA,kBAAkB,OAAA;AAC3B,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AACrB,+BAA6B;AAApB,4FAAA,IAAI,OAAA;AACb,qEAAmE;AAA1D,kIAAA,uBAAuB,OAAA"}
@@ -0,0 +1 @@
1
+ export declare function sortedInsert<T>(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null;