@uniswap/sdk-core 7.12.1 → 7.13.0

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 (162) hide show
  1. package/dist/{addresses.d.ts → cjs/src/addresses.d.ts} +58 -58
  2. package/dist/cjs/src/addresses.js +549 -0
  3. package/dist/cjs/src/addresses.js.map +1 -0
  4. package/dist/{chains.d.ts → cjs/src/chains.d.ts} +48 -48
  5. package/dist/cjs/src/chains.js +88 -0
  6. package/dist/cjs/src/chains.js.map +1 -0
  7. package/dist/{constants.d.ts → cjs/src/constants.d.ts} +12 -12
  8. package/dist/cjs/src/constants.js +18 -0
  9. package/dist/cjs/src/constants.js.map +1 -0
  10. package/dist/{entities → cjs/src/entities}/baseCurrency.d.ts +49 -49
  11. package/dist/cjs/src/entities/baseCurrency.js +27 -0
  12. package/dist/cjs/src/entities/baseCurrency.js.map +1 -0
  13. package/dist/{entities → cjs/src/entities}/currency.d.ts +3 -3
  14. package/dist/cjs/src/entities/currency.js +3 -0
  15. package/dist/cjs/src/entities/currency.js.map +1 -0
  16. package/dist/{entities → cjs/src/entities}/ether.d.ts +13 -13
  17. package/dist/cjs/src/entities/ether.js +30 -0
  18. package/dist/cjs/src/entities/ether.js.map +1 -0
  19. package/dist/{entities → cjs/src/entities}/fractions/currencyAmount.d.ts +31 -31
  20. package/dist/cjs/src/entities/fractions/currencyAmount.js +72 -0
  21. package/dist/cjs/src/entities/fractions/currencyAmount.js.map +1 -0
  22. package/dist/{entities → cjs/src/entities}/fractions/fraction.d.ts +24 -24
  23. package/dist/cjs/src/entities/fractions/fraction.js +104 -0
  24. package/dist/cjs/src/entities/fractions/fraction.js.map +1 -0
  25. package/dist/{entities → cjs/src/entities}/fractions/index.d.ts +4 -4
  26. package/dist/cjs/src/entities/fractions/index.js +12 -0
  27. package/dist/cjs/src/entities/fractions/index.js.map +1 -0
  28. package/dist/{entities → cjs/src/entities}/fractions/percent.d.ts +14 -14
  29. package/dist/cjs/src/entities/fractions/percent.js +43 -0
  30. package/dist/cjs/src/entities/fractions/percent.js.map +1 -0
  31. package/dist/{entities → cjs/src/entities}/fractions/price.d.ts +38 -38
  32. package/dist/cjs/src/entities/fractions/price.js +73 -0
  33. package/dist/cjs/src/entities/fractions/price.js.map +1 -0
  34. package/dist/{entities → cjs/src/entities}/index.d.ts +6 -6
  35. package/dist/cjs/src/entities/index.js +10 -0
  36. package/dist/cjs/src/entities/index.js.map +1 -0
  37. package/dist/{entities → cjs/src/entities}/nativeCurrency.d.ts +8 -8
  38. package/dist/cjs/src/entities/nativeCurrency.js +16 -0
  39. package/dist/cjs/src/entities/nativeCurrency.js.map +1 -0
  40. package/dist/{entities → cjs/src/entities}/token.d.ts +48 -48
  41. package/dist/cjs/src/entities/token.js +69 -0
  42. package/dist/cjs/src/entities/token.js.map +1 -0
  43. package/dist/{entities → cjs/src/entities}/weth9.d.ts +7 -7
  44. package/dist/cjs/src/entities/weth9.js +37 -0
  45. package/dist/cjs/src/entities/weth9.js.map +1 -0
  46. package/dist/{index.d.ts → cjs/src/index.d.ts} +5 -5
  47. package/dist/cjs/src/index.js +9 -0
  48. package/dist/cjs/src/index.js.map +1 -0
  49. package/dist/{utils → cjs/src/utils}/computePriceImpact.d.ts +8 -8
  50. package/dist/cjs/src/utils/computePriceImpact.js +18 -0
  51. package/dist/cjs/src/utils/computePriceImpact.js.map +1 -0
  52. package/dist/{utils → cjs/src/utils}/computeZksyncCreate2Address.d.ts +2 -2
  53. package/dist/cjs/src/utils/computeZksyncCreate2Address.js +15 -0
  54. package/dist/cjs/src/utils/computeZksyncCreate2Address.js.map +1 -0
  55. package/dist/{utils → cjs/src/utils}/index.d.ts +5 -5
  56. package/dist/cjs/src/utils/index.js +14 -0
  57. package/dist/cjs/src/utils/index.js.map +1 -0
  58. package/dist/{utils → cjs/src/utils}/sortedInsert.d.ts +1 -1
  59. package/dist/cjs/src/utils/sortedInsert.js +38 -0
  60. package/dist/cjs/src/utils/sortedInsert.js.map +1 -0
  61. package/dist/{utils → cjs/src/utils}/sqrt.d.ts +7 -7
  62. package/dist/cjs/src/utils/sqrt.js +32 -0
  63. package/dist/cjs/src/utils/sqrt.js.map +1 -0
  64. package/dist/{utils → cjs/src/utils}/validateAndParseAddress.d.ts +10 -10
  65. package/dist/cjs/src/utils/validateAndParseAddress.js +31 -0
  66. package/dist/cjs/src/utils/validateAndParseAddress.js.map +1 -0
  67. package/dist/esm/src/addresses.d.ts +58 -0
  68. package/dist/esm/src/addresses.js +545 -0
  69. package/dist/esm/src/addresses.js.map +1 -0
  70. package/dist/esm/src/chains.d.ts +48 -0
  71. package/dist/esm/src/chains.js +85 -0
  72. package/dist/esm/src/chains.js.map +1 -0
  73. package/dist/esm/src/constants.d.ts +12 -0
  74. package/dist/esm/src/constants.js +14 -0
  75. package/dist/esm/src/constants.js.map +1 -0
  76. package/dist/esm/src/entities/baseCurrency.d.ts +49 -0
  77. package/dist/esm/src/entities/baseCurrency.js +22 -0
  78. package/dist/esm/src/entities/baseCurrency.js.map +1 -0
  79. package/dist/esm/src/entities/currency.d.ts +3 -0
  80. package/dist/esm/src/entities/currency.js +2 -0
  81. package/dist/esm/src/entities/currency.js.map +1 -0
  82. package/dist/esm/src/entities/ether.d.ts +13 -0
  83. package/dist/esm/src/entities/ether.js +25 -0
  84. package/dist/esm/src/entities/ether.js.map +1 -0
  85. package/dist/esm/src/entities/fractions/currencyAmount.d.ts +31 -0
  86. package/dist/esm/src/entities/fractions/currencyAmount.js +67 -0
  87. package/dist/esm/src/entities/fractions/currencyAmount.js.map +1 -0
  88. package/dist/esm/src/entities/fractions/fraction.d.ts +24 -0
  89. package/dist/esm/src/entities/fractions/fraction.js +99 -0
  90. package/dist/esm/src/entities/fractions/fraction.js.map +1 -0
  91. package/dist/esm/src/entities/fractions/index.d.ts +4 -0
  92. package/dist/esm/src/entities/fractions/index.js +5 -0
  93. package/dist/esm/src/entities/fractions/index.js.map +1 -0
  94. package/dist/esm/src/entities/fractions/percent.d.ts +14 -0
  95. package/dist/esm/src/entities/fractions/percent.js +38 -0
  96. package/dist/esm/src/entities/fractions/percent.js.map +1 -0
  97. package/dist/esm/src/entities/fractions/price.d.ts +38 -0
  98. package/dist/esm/src/entities/fractions/price.js +68 -0
  99. package/dist/esm/src/entities/fractions/price.js.map +1 -0
  100. package/dist/esm/src/entities/index.d.ts +6 -0
  101. package/dist/esm/src/entities/index.js +7 -0
  102. package/dist/esm/src/entities/index.js.map +1 -0
  103. package/dist/esm/src/entities/nativeCurrency.d.ts +8 -0
  104. package/dist/esm/src/entities/nativeCurrency.js +12 -0
  105. package/dist/esm/src/entities/nativeCurrency.js.map +1 -0
  106. package/dist/esm/src/entities/token.d.ts +48 -0
  107. package/dist/esm/src/entities/token.js +64 -0
  108. package/dist/esm/src/entities/token.js.map +1 -0
  109. package/dist/esm/src/entities/weth9.d.ts +7 -0
  110. package/dist/esm/src/entities/weth9.js +34 -0
  111. package/dist/esm/src/entities/weth9.js.map +1 -0
  112. package/dist/esm/src/index.d.ts +5 -0
  113. package/dist/esm/src/index.js +6 -0
  114. package/dist/esm/src/index.js.map +1 -0
  115. package/dist/esm/src/utils/computePriceImpact.d.ts +8 -0
  116. package/dist/esm/src/utils/computePriceImpact.js +14 -0
  117. package/dist/esm/src/utils/computePriceImpact.js.map +1 -0
  118. package/dist/esm/src/utils/computeZksyncCreate2Address.d.ts +2 -0
  119. package/dist/esm/src/utils/computeZksyncCreate2Address.js +11 -0
  120. package/dist/esm/src/utils/computeZksyncCreate2Address.js.map +1 -0
  121. package/dist/esm/src/utils/index.d.ts +5 -0
  122. package/dist/esm/src/utils/index.js +6 -0
  123. package/dist/esm/src/utils/index.js.map +1 -0
  124. package/dist/esm/src/utils/sortedInsert.d.ts +1 -0
  125. package/dist/esm/src/utils/sortedInsert.js +33 -0
  126. package/dist/esm/src/utils/sortedInsert.js.map +1 -0
  127. package/dist/esm/src/utils/sqrt.d.ts +7 -0
  128. package/dist/esm/src/utils/sqrt.js +27 -0
  129. package/dist/esm/src/utils/sqrt.js.map +1 -0
  130. package/dist/esm/src/utils/validateAndParseAddress.d.ts +10 -0
  131. package/dist/esm/src/utils/validateAndParseAddress.js +26 -0
  132. package/dist/esm/src/utils/validateAndParseAddress.js.map +1 -0
  133. package/dist/types/src/addresses.d.ts +58 -0
  134. package/dist/types/src/chains.d.ts +48 -0
  135. package/dist/types/src/constants.d.ts +12 -0
  136. package/dist/types/src/entities/baseCurrency.d.ts +49 -0
  137. package/dist/types/src/entities/currency.d.ts +3 -0
  138. package/dist/types/src/entities/ether.d.ts +13 -0
  139. package/dist/types/src/entities/fractions/currencyAmount.d.ts +31 -0
  140. package/dist/types/src/entities/fractions/fraction.d.ts +24 -0
  141. package/dist/types/src/entities/fractions/index.d.ts +4 -0
  142. package/dist/types/src/entities/fractions/percent.d.ts +14 -0
  143. package/dist/types/src/entities/fractions/price.d.ts +38 -0
  144. package/dist/types/src/entities/index.d.ts +6 -0
  145. package/dist/types/src/entities/nativeCurrency.d.ts +8 -0
  146. package/dist/types/src/entities/token.d.ts +48 -0
  147. package/dist/types/src/entities/weth9.d.ts +7 -0
  148. package/dist/types/src/index.d.ts +5 -0
  149. package/dist/types/src/utils/computePriceImpact.d.ts +8 -0
  150. package/dist/types/src/utils/computeZksyncCreate2Address.d.ts +2 -0
  151. package/dist/types/src/utils/index.d.ts +5 -0
  152. package/dist/types/src/utils/sortedInsert.d.ts +1 -0
  153. package/dist/types/src/utils/sqrt.d.ts +7 -0
  154. package/dist/types/src/utils/validateAndParseAddress.d.ts +10 -0
  155. package/package.json +23 -42
  156. package/dist/index.js +0 -8
  157. package/dist/sdk-core.cjs.development.js +0 -1184
  158. package/dist/sdk-core.cjs.development.js.map +0 -1
  159. package/dist/sdk-core.cjs.production.min.js +0 -2
  160. package/dist/sdk-core.cjs.production.min.js.map +0 -1
  161. package/dist/sdk-core.esm.js +0 -1145
  162. package/dist/sdk-core.esm.js.map +0 -1
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Token = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const bignumber_1 = require("@ethersproject/bignumber");
6
+ const tiny_invariant_1 = tslib_1.__importDefault(require("tiny-invariant"));
7
+ const validateAndParseAddress_1 = require("../utils/validateAndParseAddress");
8
+ const baseCurrency_1 = require("./baseCurrency");
9
+ /**
10
+ * Represents an ERC20 token with a unique address and some metadata.
11
+ */
12
+ class Token extends baseCurrency_1.BaseCurrency {
13
+ /**
14
+ *
15
+ * @param chainId {@link BaseCurrency#chainId}
16
+ * @param address The contract address on the chain on which this token lives
17
+ * @param decimals {@link BaseCurrency#decimals}
18
+ * @param symbol {@link BaseCurrency#symbol}
19
+ * @param name {@link BaseCurrency#name}
20
+ * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters
21
+ * @param buyFeeBps Buy fee tax for FOT tokens, in basis points
22
+ * @param sellFeeBps Sell fee tax for FOT tokens, in basis points
23
+ */
24
+ constructor(chainId, address, decimals, symbol, name, bypassChecksum, buyFeeBps, sellFeeBps) {
25
+ super(chainId, decimals, symbol, name);
26
+ this.isNative = false;
27
+ this.isToken = true;
28
+ if (bypassChecksum) {
29
+ this.address = (0, validateAndParseAddress_1.checkValidAddress)(address);
30
+ }
31
+ else {
32
+ this.address = (0, validateAndParseAddress_1.validateAndParseAddress)(address);
33
+ }
34
+ if (buyFeeBps) {
35
+ (0, tiny_invariant_1.default)(buyFeeBps.gte(bignumber_1.BigNumber.from(0)), 'NON-NEGATIVE FOT FEES');
36
+ }
37
+ if (sellFeeBps) {
38
+ (0, tiny_invariant_1.default)(sellFeeBps.gte(bignumber_1.BigNumber.from(0)), 'NON-NEGATIVE FOT FEES');
39
+ }
40
+ this.buyFeeBps = buyFeeBps;
41
+ this.sellFeeBps = sellFeeBps;
42
+ }
43
+ /**
44
+ * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.
45
+ * @param other other token to compare
46
+ */
47
+ equals(other) {
48
+ return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase();
49
+ }
50
+ /**
51
+ * Returns true if the address of this token sorts before the address of the other token
52
+ * @param other other token to compare
53
+ * @throws if the tokens have the same address
54
+ * @throws if the tokens are on different chains
55
+ */
56
+ sortsBefore(other) {
57
+ (0, tiny_invariant_1.default)(this.chainId === other.chainId, 'CHAIN_IDS');
58
+ (0, tiny_invariant_1.default)(this.address.toLowerCase() !== other.address.toLowerCase(), 'ADDRESSES');
59
+ return this.address.toLowerCase() < other.address.toLowerCase();
60
+ }
61
+ /**
62
+ * Return this token, which does not need to be wrapped
63
+ */
64
+ get wrapped() {
65
+ return this;
66
+ }
67
+ }
68
+ exports.Token = Token;
69
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../../src/entities/token.ts"],"names":[],"mappings":";;;;AAAA,wDAAoD;AACpD,4EAAsC;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"}
@@ -1,7 +1,7 @@
1
- import { Token } from './token';
2
- /**
3
- * Known WETH9 implementation addresses, used in our implementation of Ether#wrapped
4
- */
5
- export declare const WETH9: {
6
- [chainId: number]: Token;
7
- };
1
+ import { Token } from './token';
2
+ /**
3
+ * Known WETH9 implementation addresses, used in our implementation of Ether#wrapped
4
+ */
5
+ export declare const WETH9: {
6
+ [chainId: number]: Token;
7
+ };
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WETH9 = void 0;
4
+ const token_1 = require("./token");
5
+ /**
6
+ * Known WETH9 implementation addresses, used in our implementation of Ether#wrapped
7
+ */
8
+ exports.WETH9 = {
9
+ 1: new token_1.Token(1, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),
10
+ 11155111: new token_1.Token(11155111, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),
11
+ 3: new token_1.Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),
12
+ 4: new token_1.Token(4, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),
13
+ 5: new token_1.Token(5, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),
14
+ 42: new token_1.Token(42, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'),
15
+ 10: new token_1.Token(10, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
16
+ 69: new token_1.Token(69, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
17
+ 11155420: new token_1.Token(11155420, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
18
+ 42161: new token_1.Token(42161, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),
19
+ 421611: new token_1.Token(421611, '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681', 18, 'WETH', 'Wrapped Ether'),
20
+ 421614: new token_1.Token(421614, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'),
21
+ 8453: new token_1.Token(8453, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
22
+ 84532: new token_1.Token(84532, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
23
+ 56: new token_1.Token(56, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),
24
+ 137: new token_1.Token(137, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),
25
+ 43114: new token_1.Token(43114, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),
26
+ 7777777: new token_1.Token(7777777, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
27
+ 81457: new token_1.Token(81457, '0x4300000000000000000000000000000000000004', 18, 'WETH', 'Wrapped Ether'),
28
+ 324: new token_1.Token(324, '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91', 18, 'WETH', 'Wrapped Ether'),
29
+ 480: new token_1.Token(480, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
30
+ 1301: new token_1.Token(1301, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
31
+ 130: new token_1.Token(130, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
32
+ 10143: new token_1.Token(10143, '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701', 18, 'WMON', 'Wrapped Monad'),
33
+ 1868: new token_1.Token(1868, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),
34
+ 143: new token_1.Token(143, '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A', 18, 'WMON', 'Wrapped Monad'),
35
+ 59144: new token_1.Token(59144, '0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f', 18, 'WETH', 'Wrapped Ether'),
36
+ };
37
+ //# sourceMappingURL=weth9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weth9.js","sourceRoot":"","sources":["../../../../src/entities/weth9.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAE/B;;GAEG;AACU,QAAA,KAAK,GAAiC;IACjD,CAAC,EAAE,IAAI,aAAK,CAAC,CAAC,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAC1F,QAAQ,EAAE,IAAI,aAAK,CAAC,QAAQ,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IACxG,CAAC,EAAE,IAAI,aAAK,CAAC,CAAC,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAC1F,CAAC,EAAE,IAAI,aAAK,CAAC,CAAC,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAC1F,CAAC,EAAE,IAAI,aAAK,CAAC,CAAC,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAC1F,EAAE,EAAE,IAAI,aAAK,CAAC,EAAE,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAE5F,EAAE,EAAE,IAAI,aAAK,CAAC,EAAE,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAC5F,EAAE,EAAE,IAAI,aAAK,CAAC,EAAE,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAC5F,QAAQ,EAAE,IAAI,aAAK,CAAC,QAAQ,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAExG,KAAK,EAAE,IAAI,aAAK,CAAC,KAAK,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAClG,MAAM,EAAE,IAAI,aAAK,CAAC,MAAM,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IACpG,MAAM,EAAE,IAAI,aAAK,CAAC,MAAM,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAEpG,IAAI,EAAE,IAAI,aAAK,CAAC,IAAI,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAChG,KAAK,EAAE,IAAI,aAAK,CAAC,KAAK,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAElG,EAAE,EAAE,IAAI,aAAK,CAAC,EAAE,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC;IAC1F,GAAG,EAAE,IAAI,aAAK,CAAC,GAAG,EAAE,4CAA4C,EAAE,EAAE,EAAE,QAAQ,EAAE,eAAe,CAAC;IAChG,KAAK,EAAE,IAAI,aAAK,CAAC,KAAK,EAAE,4CAA4C,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC;IAClG,OAAO,EAAE,IAAI,aAAK,CAAC,OAAO,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IACtG,KAAK,EAAE,IAAI,aAAK,CAAC,KAAK,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAClG,GAAG,EAAE,IAAI,aAAK,CAAC,GAAG,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAC9F,GAAG,EAAE,IAAI,aAAK,CAAC,GAAG,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAC9F,IAAI,EAAE,IAAI,aAAK,CAAC,IAAI,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAChG,GAAG,EAAE,IAAI,aAAK,CAAC,GAAG,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAC9F,KAAK,EAAE,IAAI,aAAK,CAAC,KAAK,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAClG,IAAI,EAAE,IAAI,aAAK,CAAC,IAAI,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAChG,GAAG,EAAE,IAAI,aAAK,CAAC,GAAG,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;IAC9F,KAAK,EAAE,IAAI,aAAK,CAAC,KAAK,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC;CACnG,CAAA"}
@@ -1,5 +1,5 @@
1
- export * from './addresses';
2
- export * from './chains';
3
- export * from './constants';
4
- export * from './entities';
5
- export * from './utils';
1
+ export * from './addresses';
2
+ export * from './chains';
3
+ export * from './constants';
4
+ export * from './entities';
5
+ export * from './utils';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./addresses"), exports);
5
+ tslib_1.__exportStar(require("./chains"), exports);
6
+ tslib_1.__exportStar(require("./constants"), exports);
7
+ tslib_1.__exportStar(require("./entities"), exports);
8
+ tslib_1.__exportStar(require("./utils"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B;AAC3B,mDAAwB;AACxB,sDAA2B;AAC3B,qDAA0B;AAC1B,kDAAuB"}
@@ -1,8 +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;
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/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"}
@@ -1,2 +1,2 @@
1
- import { BytesLike } from '@ethersproject/bytes';
2
- export declare function computeZksyncCreate2Address(sender: string, bytecodeHash: BytesLike, salt: BytesLike, input?: BytesLike): string;
1
+ import { BytesLike } from '@ethersproject/bytes';
2
+ export declare function computeZksyncCreate2Address(sender: string, bytecodeHash: BytesLike, salt: BytesLike, input?: BytesLike): string;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.computeZksyncCreate2Address = void 0;
4
+ const address_1 = require("@ethersproject/address");
5
+ const bytes_1 = require("@ethersproject/bytes");
6
+ const keccak256_1 = require("@ethersproject/keccak256");
7
+ const strings_1 = require("@ethersproject/strings");
8
+ function computeZksyncCreate2Address(sender, bytecodeHash, salt, input = '0x') {
9
+ const prefix = (0, keccak256_1.keccak256)((0, strings_1.toUtf8Bytes)('zksyncCreate2'));
10
+ const inputHash = (0, keccak256_1.keccak256)(input);
11
+ const addressBytes = (0, keccak256_1.keccak256)((0, bytes_1.concat)([prefix, (0, bytes_1.hexZeroPad)(sender, 32), salt, bytecodeHash, inputHash])).slice(26);
12
+ return (0, address_1.getAddress)(addressBytes);
13
+ }
14
+ exports.computeZksyncCreate2Address = computeZksyncCreate2Address;
15
+ //# sourceMappingURL=computeZksyncCreate2Address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeZksyncCreate2Address.js","sourceRoot":"","sources":["../../../../src/utils/computeZksyncCreate2Address.ts"],"names":[],"mappings":";;;AAAA,oDAAmD;AACnD,gDAAoE;AACpE,wDAAoD;AACpD,oDAAoD;AAEpD,SAAgB,2BAA2B,CACzC,MAAc,EACd,YAAuB,EACvB,IAAe,EACf,QAAmB,IAAI;IAEvB,MAAM,MAAM,GAAG,IAAA,qBAAS,EAAC,IAAA,qBAAW,EAAC,eAAe,CAAC,CAAC,CAAA;IACtD,MAAM,SAAS,GAAG,IAAA,qBAAS,EAAC,KAAK,CAAC,CAAA;IAClC,MAAM,YAAY,GAAG,IAAA,qBAAS,EAAC,IAAA,cAAM,EAAC,CAAC,MAAM,EAAE,IAAA,kBAAU,EAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACjH,OAAO,IAAA,oBAAU,EAAC,YAAY,CAAC,CAAA;AACjC,CAAC;AAVD,kEAUC"}
@@ -1,5 +1,5 @@
1
- export { computePriceImpact } from './computePriceImpact';
2
- export { computeZksyncCreate2Address } from './computeZksyncCreate2Address';
3
- export { sortedInsert } from './sortedInsert';
4
- export { sqrt } from './sqrt';
5
- export { validateAndParseAddress } from './validateAndParseAddress';
1
+ export { computePriceImpact } from './computePriceImpact';
2
+ export { computeZksyncCreate2Address } from './computeZksyncCreate2Address';
3
+ export { sortedInsert } from './sortedInsert';
4
+ export { sqrt } from './sqrt';
5
+ export { validateAndParseAddress } from './validateAndParseAddress';
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateAndParseAddress = exports.sqrt = exports.sortedInsert = exports.computeZksyncCreate2Address = 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 computeZksyncCreate2Address_1 = require("./computeZksyncCreate2Address");
7
+ Object.defineProperty(exports, "computeZksyncCreate2Address", { enumerable: true, get: function () { return computeZksyncCreate2Address_1.computeZksyncCreate2Address; } });
8
+ var sortedInsert_1 = require("./sortedInsert");
9
+ Object.defineProperty(exports, "sortedInsert", { enumerable: true, get: function () { return sortedInsert_1.sortedInsert; } });
10
+ var sqrt_1 = require("./sqrt");
11
+ Object.defineProperty(exports, "sqrt", { enumerable: true, get: function () { return sqrt_1.sqrt; } });
12
+ var validateAndParseAddress_1 = require("./validateAndParseAddress");
13
+ Object.defineProperty(exports, "validateAndParseAddress", { enumerable: true, get: function () { return validateAndParseAddress_1.validateAndParseAddress; } });
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAAhD,wHAAA,kBAAkB,OAAA;AAC3B,6EAA2E;AAAlE,0IAAA,2BAA2B,OAAA;AACpC,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AACrB,+BAA6B;AAApB,4FAAA,IAAI,OAAA;AACb,qEAAmE;AAA1D,kIAAA,uBAAuB,OAAA"}
@@ -1 +1 @@
1
- export declare function sortedInsert<T>(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null;
1
+ export declare function sortedInsert<T>(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sortedInsert = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const tiny_invariant_1 = tslib_1.__importDefault(require("tiny-invariant"));
6
+ // given an array of items sorted by `comparator`, insert an item into its sort index and constrain the size to
7
+ // `maxSize` by removing the last item
8
+ function sortedInsert(items, add, maxSize, comparator) {
9
+ (0, tiny_invariant_1.default)(maxSize > 0, 'MAX_SIZE_ZERO');
10
+ // this is an invariant because the interface cannot return multiple removed items if items.length exceeds maxSize
11
+ (0, tiny_invariant_1.default)(items.length <= maxSize, 'ITEMS_SIZE');
12
+ // short circuit first item add
13
+ if (items.length === 0) {
14
+ items.push(add);
15
+ return null;
16
+ }
17
+ else {
18
+ const isFull = items.length === maxSize;
19
+ // short circuit if full and the additional item does not come before the last item
20
+ if (isFull && comparator(items[items.length - 1], add) <= 0) {
21
+ return add;
22
+ }
23
+ let lo = 0, hi = items.length;
24
+ while (lo < hi) {
25
+ const mid = (lo + hi) >>> 1;
26
+ if (comparator(items[mid], add) <= 0) {
27
+ lo = mid + 1;
28
+ }
29
+ else {
30
+ hi = mid;
31
+ }
32
+ }
33
+ items.splice(lo, 0, add);
34
+ return isFull ? items.pop() : null;
35
+ }
36
+ }
37
+ exports.sortedInsert = sortedInsert;
38
+ //# sourceMappingURL=sortedInsert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortedInsert.js","sourceRoot":"","sources":["../../../../src/utils/sortedInsert.ts"],"names":[],"mappings":";;;;AAAA,4EAAsC;AAEtC,+GAA+G;AAC/G,sCAAsC;AACtC,SAAgB,YAAY,CAAI,KAAU,EAAE,GAAM,EAAE,OAAe,EAAE,UAAkC;IACrG,IAAA,wBAAS,EAAC,OAAO,GAAG,CAAC,EAAE,eAAe,CAAC,CAAA;IACvC,kHAAkH;IAClH,IAAA,wBAAS,EAAC,KAAK,CAAC,MAAM,IAAI,OAAO,EAAE,YAAY,CAAC,CAAA;IAEhD,+BAA+B;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,IAAI,CAAA;KACZ;SAAM;QACL,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,OAAO,CAAA;QACvC,mFAAmF;QACnF,IAAI,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;YAC3D,OAAO,GAAG,CAAA;SACX;QAED,IAAI,EAAE,GAAG,CAAC,EACR,EAAE,GAAG,KAAK,CAAC,MAAM,CAAA;QAEnB,OAAO,EAAE,GAAG,EAAE,EAAE;YACd,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;YAC3B,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;gBACpC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAA;aACb;iBAAM;gBACL,EAAE,GAAG,GAAG,CAAA;aACT;SACF;QACD,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QACxB,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAG,CAAC,CAAC,CAAC,IAAI,CAAA;KACpC;AACH,CAAC;AA9BD,oCA8BC"}
@@ -1,7 +1,7 @@
1
- import JSBI from 'jsbi';
2
- export declare const MAX_SAFE_INTEGER: JSBI;
3
- /**
4
- * Computes floor(sqrt(value))
5
- * @param value the value for which to compute the square root, rounded down
6
- */
7
- export declare function sqrt(value: JSBI): JSBI;
1
+ import JSBI from 'jsbi';
2
+ export declare const MAX_SAFE_INTEGER: JSBI;
3
+ /**
4
+ * Computes floor(sqrt(value))
5
+ * @param value the value for which to compute the square root, rounded down
6
+ */
7
+ export declare function sqrt(value: JSBI): JSBI;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sqrt = exports.MAX_SAFE_INTEGER = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jsbi_1 = tslib_1.__importDefault(require("jsbi"));
6
+ const tiny_invariant_1 = tslib_1.__importDefault(require("tiny-invariant"));
7
+ exports.MAX_SAFE_INTEGER = jsbi_1.default.BigInt(Number.MAX_SAFE_INTEGER);
8
+ const ZERO = jsbi_1.default.BigInt(0);
9
+ const ONE = jsbi_1.default.BigInt(1);
10
+ const TWO = jsbi_1.default.BigInt(2);
11
+ /**
12
+ * Computes floor(sqrt(value))
13
+ * @param value the value for which to compute the square root, rounded down
14
+ */
15
+ function sqrt(value) {
16
+ (0, tiny_invariant_1.default)(jsbi_1.default.greaterThanOrEqual(value, ZERO), 'NEGATIVE');
17
+ // rely on built in sqrt if possible
18
+ if (jsbi_1.default.lessThan(value, exports.MAX_SAFE_INTEGER)) {
19
+ return jsbi_1.default.BigInt(Math.floor(Math.sqrt(jsbi_1.default.toNumber(value))));
20
+ }
21
+ let z;
22
+ let x;
23
+ z = value;
24
+ x = jsbi_1.default.add(jsbi_1.default.divide(value, TWO), ONE);
25
+ while (jsbi_1.default.lessThan(x, z)) {
26
+ z = x;
27
+ x = jsbi_1.default.divide(jsbi_1.default.add(jsbi_1.default.divide(value, x), x), TWO);
28
+ }
29
+ return z;
30
+ }
31
+ exports.sqrt = sqrt;
32
+ //# sourceMappingURL=sqrt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqrt.js","sourceRoot":"","sources":["../../../../src/utils/sqrt.ts"],"names":[],"mappings":";;;;AAAA,wDAAuB;AACvB,4EAAsC;AAEzB,QAAA,gBAAgB,GAAG,cAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;AAEpE,MAAM,IAAI,GAAG,cAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAC3B,MAAM,GAAG,GAAG,cAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAC1B,MAAM,GAAG,GAAG,cAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAE1B;;;GAGG;AACH,SAAgB,IAAI,CAAC,KAAW;IAC9B,IAAA,wBAAS,EAAC,cAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,CAAA;IAE3D,oCAAoC;IACpC,IAAI,cAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,wBAAgB,CAAC,EAAE;QAC1C,OAAO,cAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KAChE;IAED,IAAI,CAAO,CAAA;IACX,IAAI,CAAO,CAAA;IACX,CAAC,GAAG,KAAK,CAAA;IACT,CAAC,GAAG,cAAI,CAAC,GAAG,CAAC,cAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IAC1C,OAAO,cAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC1B,CAAC,GAAG,CAAC,CAAA;QACL,CAAC,GAAG,cAAI,CAAC,MAAM,CAAC,cAAI,CAAC,GAAG,CAAC,cAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;KACzD;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAjBD,oBAiBC"}
@@ -1,10 +1,10 @@
1
- /**
2
- * Validates an address and returns the parsed (checksummed) version of that address
3
- * @param address the unchecksummed hex address
4
- */
5
- export declare function validateAndParseAddress(address: string): string;
6
- /**
7
- * Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding.
8
- * @param address the unchecksummed hex address
9
- */
10
- export declare function checkValidAddress(address: string): string;
1
+ /**
2
+ * Validates an address and returns the parsed (checksummed) version of that address
3
+ * @param address the unchecksummed hex address
4
+ */
5
+ export declare function validateAndParseAddress(address: string): string;
6
+ /**
7
+ * Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding.
8
+ * @param address the unchecksummed hex address
9
+ */
10
+ export declare function checkValidAddress(address: string): string;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkValidAddress = exports.validateAndParseAddress = void 0;
4
+ const address_1 = require("@ethersproject/address");
5
+ /**
6
+ * Validates an address and returns the parsed (checksummed) version of that address
7
+ * @param address the unchecksummed hex address
8
+ */
9
+ function validateAndParseAddress(address) {
10
+ try {
11
+ return (0, address_1.getAddress)(address);
12
+ }
13
+ catch (error) {
14
+ throw new Error(`${address} is not a valid address.`);
15
+ }
16
+ }
17
+ exports.validateAndParseAddress = validateAndParseAddress;
18
+ // Checks a string starts with 0x, is 42 characters long and contains only hex characters after 0x
19
+ const startsWith0xLen42HexRegex = /^0x[0-9a-fA-F]{40}$/;
20
+ /**
21
+ * Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding.
22
+ * @param address the unchecksummed hex address
23
+ */
24
+ function checkValidAddress(address) {
25
+ if (startsWith0xLen42HexRegex.test(address)) {
26
+ return address;
27
+ }
28
+ throw new Error(`${address} is not a valid address.`);
29
+ }
30
+ exports.checkValidAddress = checkValidAddress;
31
+ //# sourceMappingURL=validateAndParseAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAndParseAddress.js","sourceRoot":"","sources":["../../../../src/utils/validateAndParseAddress.ts"],"names":[],"mappings":";;;AAAA,oDAAmD;AAEnD;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,OAAe;IACrD,IAAI;QACF,OAAO,IAAA,oBAAU,EAAC,OAAO,CAAC,CAAA;KAC3B;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,0BAA0B,CAAC,CAAA;KACtD;AACH,CAAC;AAND,0DAMC;AAED,kGAAkG;AAClG,MAAM,yBAAyB,GAAG,qBAAqB,CAAA;AAEvD;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,OAAe;IAC/C,IAAI,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QAC3C,OAAO,OAAO,CAAA;KACf;IAED,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,0BAA0B,CAAC,CAAA;AACvD,CAAC;AAND,8CAMC"}
@@ -0,0 +1,58 @@
1
+ import { SupportedChainsType } from './chains';
2
+ type AddressMap = {
3
+ [chainId: number]: string;
4
+ };
5
+ type ChainAddresses = {
6
+ v3CoreFactoryAddress: string;
7
+ multicallAddress: string;
8
+ quoterAddress: string;
9
+ v3MigratorAddress?: string;
10
+ nonfungiblePositionManagerAddress?: string;
11
+ tickLensAddress?: string;
12
+ swapRouter02Address?: string;
13
+ mixedRouteQuoterV1Address?: string;
14
+ mixedRouteQuoterV2Address?: string;
15
+ v4PoolManagerAddress?: string;
16
+ v4PositionManagerAddress?: string;
17
+ v4StateView?: string;
18
+ v4QuoterAddress?: string;
19
+ };
20
+ export declare const UNI_ADDRESSES: AddressMap;
21
+ export declare const UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = "0x8B799381ac40b838BBA4131ffB26197C432AFe78";
22
+ /**
23
+ * @deprecated use V2_FACTORY_ADDRESSES instead
24
+ */
25
+ export declare const V2_FACTORY_ADDRESS = "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f";
26
+ export declare const V2_FACTORY_ADDRESSES: AddressMap;
27
+ /**
28
+ * @deprecated use V2_ROUTER_ADDRESSES instead
29
+ */
30
+ export declare const V2_ROUTER_ADDRESS = "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D";
31
+ export declare const V2_ROUTER_ADDRESSES: AddressMap;
32
+ export declare const CHAIN_TO_ADDRESSES_MAP: Record<SupportedChainsType, ChainAddresses>;
33
+ export declare const V3_CORE_FACTORY_ADDRESSES: AddressMap;
34
+ export declare const V3_MIGRATOR_ADDRESSES: AddressMap;
35
+ export declare const MULTICALL_ADDRESSES: AddressMap;
36
+ /**
37
+ * The oldest V0 governance address
38
+ */
39
+ export declare const GOVERNANCE_ALPHA_V0_ADDRESSES: AddressMap;
40
+ /**
41
+ * The older V1 governance address
42
+ */
43
+ export declare const GOVERNANCE_ALPHA_V1_ADDRESSES: AddressMap;
44
+ /**
45
+ * The latest governor bravo that is currently admin of timelock
46
+ */
47
+ export declare const GOVERNANCE_BRAVO_ADDRESSES: AddressMap;
48
+ export declare const TIMELOCK_ADDRESSES: AddressMap;
49
+ export declare const MERKLE_DISTRIBUTOR_ADDRESS: AddressMap;
50
+ export declare const ARGENT_WALLET_DETECTOR_ADDRESS: AddressMap;
51
+ export declare const QUOTER_ADDRESSES: AddressMap;
52
+ export declare const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap;
53
+ export declare const ENS_REGISTRAR_ADDRESSES: AddressMap;
54
+ export declare const SOCKS_CONTROLLER_ADDRESSES: AddressMap;
55
+ export declare const TICK_LENS_ADDRESSES: AddressMap;
56
+ export declare const MIXED_ROUTE_QUOTER_V1_ADDRESSES: AddressMap;
57
+ export declare const SWAP_ROUTER_02_ADDRESSES: (chainId: number) => string;
58
+ export {};