@across-protocol/sdk 4.1.63-beta.1 → 4.1.63-beta.3

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 (224) hide show
  1. package/dist/cjs/arch/evm/BlockUtils.d.ts +15 -0
  2. package/dist/cjs/arch/evm/BlockUtils.js +218 -0
  3. package/dist/cjs/arch/evm/BlockUtils.js.map +1 -0
  4. package/dist/cjs/arch/evm/index.d.ts +1 -0
  5. package/dist/cjs/arch/evm/index.js +1 -0
  6. package/dist/cjs/arch/evm/index.js.map +1 -1
  7. package/dist/cjs/arch/svm/SpokeUtils.d.ts +3 -2
  8. package/dist/cjs/arch/svm/SpokeUtils.js +42 -12
  9. package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -1
  10. package/dist/cjs/arch/svm/eventsClient.js +6 -6
  11. package/dist/cjs/arch/svm/eventsClient.js.map +1 -1
  12. package/dist/cjs/arch/svm/utils.d.ts +1 -0
  13. package/dist/cjs/arch/svm/utils.js +10 -2
  14. package/dist/cjs/arch/svm/utils.js.map +1 -1
  15. package/dist/cjs/clients/HubPoolClient.d.ts +3 -2
  16. package/dist/cjs/clients/HubPoolClient.js +2 -1
  17. package/dist/cjs/clients/HubPoolClient.js.map +1 -1
  18. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +1 -1
  19. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js +29 -2
  20. package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
  21. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +4 -3
  22. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  23. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.d.ts +33 -0
  24. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js +184 -0
  25. package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js.map +1 -0
  26. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.d.ts +30 -0
  27. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js +90 -0
  28. package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js.map +1 -0
  29. package/dist/cjs/clients/mocks/index.d.ts +2 -0
  30. package/dist/cjs/clients/mocks/index.js +2 -0
  31. package/dist/cjs/clients/mocks/index.js.map +1 -1
  32. package/dist/cjs/constants.d.ts +1 -0
  33. package/dist/cjs/constants.js +2 -1
  34. package/dist/cjs/constants.js.map +1 -1
  35. package/dist/cjs/providers/index.d.ts +1 -1
  36. package/dist/cjs/providers/index.js +1 -2
  37. package/dist/cjs/providers/index.js.map +1 -1
  38. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.d.ts +5 -0
  39. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js +21 -0
  40. package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -0
  41. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +5 -0
  42. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js +20 -0
  43. package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -0
  44. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.d.ts +13 -0
  45. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js +76 -0
  46. package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js.map +1 -0
  47. package/dist/cjs/providers/mocks/index.d.ts +4 -0
  48. package/dist/cjs/providers/mocks/index.js +8 -0
  49. package/dist/cjs/providers/mocks/index.js.map +1 -0
  50. package/dist/cjs/providers/{mockProvider.js → mocks/mockEthersProvider.js} +2 -2
  51. package/dist/cjs/providers/mocks/mockEthersProvider.js.map +1 -0
  52. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +5 -4
  53. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  54. package/dist/cjs/relayFeeCalculator/chain-queries/factory.d.ts +9 -0
  55. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js +1 -1
  56. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  57. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.d.ts +6 -0
  58. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js +69 -34
  59. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
  60. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.d.ts +11 -0
  61. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js +9 -3
  62. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  63. package/dist/cjs/utils/BlockFinder.d.ts +22 -0
  64. package/dist/cjs/utils/BlockFinder.js +10 -0
  65. package/dist/cjs/utils/BlockFinder.js.map +1 -0
  66. package/dist/cjs/utils/BlockUtils.d.ts +2 -27
  67. package/dist/cjs/utils/BlockUtils.js +2 -208
  68. package/dist/cjs/utils/BlockUtils.js.map +1 -1
  69. package/dist/cjs/utils/TokenUtils.d.ts +18 -0
  70. package/dist/cjs/utils/index.d.ts +1 -0
  71. package/dist/cjs/utils/index.js +1 -0
  72. package/dist/cjs/utils/index.js.map +1 -1
  73. package/dist/esm/arch/evm/BlockUtils.d.ts +24 -0
  74. package/dist/esm/arch/evm/BlockUtils.js +250 -0
  75. package/dist/esm/arch/evm/BlockUtils.js.map +1 -0
  76. package/dist/esm/arch/evm/index.d.ts +1 -0
  77. package/dist/esm/arch/evm/index.js +1 -0
  78. package/dist/esm/arch/evm/index.js.map +1 -1
  79. package/dist/esm/arch/svm/SpokeUtils.d.ts +37 -2
  80. package/dist/esm/arch/svm/SpokeUtils.js +80 -13
  81. package/dist/esm/arch/svm/SpokeUtils.js.map +1 -1
  82. package/dist/esm/arch/svm/eventsClient.js +6 -6
  83. package/dist/esm/arch/svm/eventsClient.js.map +1 -1
  84. package/dist/esm/arch/svm/utils.d.ts +4 -0
  85. package/dist/esm/arch/svm/utils.js +11 -1
  86. package/dist/esm/arch/svm/utils.js.map +1 -1
  87. package/dist/esm/clients/HubPoolClient.d.ts +3 -2
  88. package/dist/esm/clients/HubPoolClient.js +3 -2
  89. package/dist/esm/clients/HubPoolClient.js.map +1 -1
  90. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +1 -2
  91. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js +34 -5
  92. package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
  93. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +6 -4
  94. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  95. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.d.ts +33 -0
  96. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js +183 -0
  97. package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js.map +1 -0
  98. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.d.ts +30 -0
  99. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js +89 -0
  100. package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js.map +1 -0
  101. package/dist/esm/clients/mocks/index.d.ts +2 -0
  102. package/dist/esm/clients/mocks/index.js +2 -0
  103. package/dist/esm/clients/mocks/index.js.map +1 -1
  104. package/dist/esm/constants.d.ts +1 -0
  105. package/dist/esm/constants.js +1 -0
  106. package/dist/esm/constants.js.map +1 -1
  107. package/dist/esm/providers/index.d.ts +1 -1
  108. package/dist/esm/providers/index.js +1 -2
  109. package/dist/esm/providers/index.js.map +1 -1
  110. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.d.ts +5 -0
  111. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js +19 -0
  112. package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -0
  113. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +5 -0
  114. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js +18 -0
  115. package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -0
  116. package/dist/esm/providers/mocks/MockSolanaRpcFactory.d.ts +13 -0
  117. package/dist/esm/providers/mocks/MockSolanaRpcFactory.js +74 -0
  118. package/dist/esm/providers/mocks/MockSolanaRpcFactory.js.map +1 -0
  119. package/dist/esm/providers/mocks/index.d.ts +4 -0
  120. package/dist/esm/providers/mocks/index.js +5 -0
  121. package/dist/esm/providers/mocks/index.js.map +1 -0
  122. package/dist/esm/providers/{mockProvider.js → mocks/mockEthersProvider.js} +2 -2
  123. package/dist/esm/providers/mocks/mockEthersProvider.js.map +1 -0
  124. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +6 -5
  125. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  126. package/dist/esm/relayFeeCalculator/chain-queries/factory.d.ts +9 -0
  127. package/dist/esm/relayFeeCalculator/chain-queries/factory.js +3 -3
  128. package/dist/esm/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  129. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.d.ts +18 -0
  130. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js +83 -36
  131. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
  132. package/dist/esm/relayFeeCalculator/relayFeeCalculator.d.ts +21 -1
  133. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js +9 -4
  134. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  135. package/dist/esm/utils/BlockFinder.d.ts +22 -0
  136. package/dist/esm/utils/BlockFinder.js +7 -0
  137. package/dist/esm/utils/BlockFinder.js.map +1 -0
  138. package/dist/esm/utils/BlockUtils.d.ts +2 -36
  139. package/dist/esm/utils/BlockUtils.js +2 -243
  140. package/dist/esm/utils/BlockUtils.js.map +1 -1
  141. package/dist/esm/utils/TokenUtils.d.ts +18 -0
  142. package/dist/esm/utils/index.d.ts +1 -0
  143. package/dist/esm/utils/index.js +1 -0
  144. package/dist/esm/utils/index.js.map +1 -1
  145. package/dist/types/arch/evm/BlockUtils.d.ts +25 -0
  146. package/dist/types/arch/evm/BlockUtils.d.ts.map +1 -0
  147. package/dist/types/arch/evm/index.d.ts +1 -0
  148. package/dist/types/arch/evm/index.d.ts.map +1 -1
  149. package/dist/types/arch/svm/SpokeUtils.d.ts +37 -2
  150. package/dist/types/arch/svm/SpokeUtils.d.ts.map +1 -1
  151. package/dist/types/arch/svm/eventsClient.d.ts.map +1 -1
  152. package/dist/types/arch/svm/utils.d.ts +4 -0
  153. package/dist/types/arch/svm/utils.d.ts.map +1 -1
  154. package/dist/types/clients/HubPoolClient.d.ts +3 -2
  155. package/dist/types/clients/HubPoolClient.d.ts.map +1 -1
  156. package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +1 -2
  157. package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts.map +1 -1
  158. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -1
  159. package/dist/types/clients/mocks/MockSvmCpiEventsClient.d.ts +34 -0
  160. package/dist/types/clients/mocks/MockSvmCpiEventsClient.d.ts.map +1 -0
  161. package/dist/types/clients/mocks/MockSvmSpokePoolClient.d.ts +31 -0
  162. package/dist/types/clients/mocks/MockSvmSpokePoolClient.d.ts.map +1 -0
  163. package/dist/types/clients/mocks/index.d.ts +2 -0
  164. package/dist/types/clients/mocks/index.d.ts.map +1 -1
  165. package/dist/types/constants.d.ts +1 -0
  166. package/dist/types/constants.d.ts.map +1 -1
  167. package/dist/types/providers/index.d.ts +1 -1
  168. package/dist/types/providers/index.d.ts.map +1 -1
  169. package/dist/types/providers/mocks/MockCachedSolanaRpcFactory.d.ts +6 -0
  170. package/dist/types/providers/mocks/MockCachedSolanaRpcFactory.d.ts.map +1 -0
  171. package/dist/types/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +6 -0
  172. package/dist/types/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts.map +1 -0
  173. package/dist/types/providers/mocks/MockSolanaRpcFactory.d.ts +14 -0
  174. package/dist/types/providers/mocks/MockSolanaRpcFactory.d.ts.map +1 -0
  175. package/dist/types/providers/mocks/index.d.ts +5 -0
  176. package/dist/types/providers/mocks/index.d.ts.map +1 -0
  177. package/dist/types/providers/{mockProvider.d.ts → mocks/mockEthersProvider.d.ts} +1 -1
  178. package/dist/types/providers/mocks/mockEthersProvider.d.ts.map +1 -0
  179. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts.map +1 -1
  180. package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts +9 -0
  181. package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts.map +1 -1
  182. package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts +18 -0
  183. package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts.map +1 -1
  184. package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts +21 -1
  185. package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts.map +1 -1
  186. package/dist/types/utils/BlockFinder.d.ts +23 -0
  187. package/dist/types/utils/BlockFinder.d.ts.map +1 -0
  188. package/dist/types/utils/BlockUtils.d.ts +2 -36
  189. package/dist/types/utils/BlockUtils.d.ts.map +1 -1
  190. package/dist/types/utils/TokenUtils.d.ts +18 -0
  191. package/dist/types/utils/TokenUtils.d.ts.map +1 -1
  192. package/dist/types/utils/index.d.ts +1 -0
  193. package/dist/types/utils/index.d.ts.map +1 -1
  194. package/package.json +2 -3
  195. package/src/arch/evm/BlockUtils.ts +209 -0
  196. package/src/arch/evm/index.ts +1 -0
  197. package/src/arch/svm/SpokeUtils.ts +87 -17
  198. package/src/arch/svm/eventsClient.ts +13 -5
  199. package/src/arch/svm/utils.ts +12 -1
  200. package/src/clients/HubPoolClient.ts +3 -3
  201. package/src/clients/SpokePoolClient/SVMSpokePoolClient.ts +27 -3
  202. package/src/clients/SpokePoolClient/SpokePoolClient.ts +6 -3
  203. package/src/clients/mocks/MockSvmCpiEventsClient.ts +226 -0
  204. package/src/clients/mocks/MockSvmSpokePoolClient.ts +119 -0
  205. package/src/clients/mocks/index.ts +2 -0
  206. package/src/constants.ts +1 -0
  207. package/src/providers/index.ts +1 -1
  208. package/src/providers/mocks/MockCachedSolanaRpcFactory.ts +15 -0
  209. package/src/providers/mocks/MockRateLimitedSolanaRpcFactory.ts +14 -0
  210. package/src/providers/mocks/MockSolanaRpcFactory.ts +55 -0
  211. package/src/providers/mocks/index.ts +4 -0
  212. package/src/providers/{mockProvider.ts → mocks/mockEthersProvider.ts} +1 -1
  213. package/src/relayFeeCalculator/chain-queries/baseQuery.ts +6 -6
  214. package/src/relayFeeCalculator/chain-queries/factory.ts +3 -3
  215. package/src/relayFeeCalculator/chain-queries/svmQuery.ts +59 -27
  216. package/src/relayFeeCalculator/relayFeeCalculator.ts +15 -3
  217. package/src/utils/BlockFinder.ts +26 -0
  218. package/src/utils/BlockUtils.ts +5 -215
  219. package/src/utils/index.ts +1 -0
  220. package/dist/cjs/providers/mockProvider.js.map +0 -1
  221. package/dist/esm/providers/mockProvider.js.map +0 -1
  222. package/dist/types/providers/mockProvider.d.ts.map +0 -1
  223. /package/dist/cjs/providers/{mockProvider.d.ts → mocks/mockEthersProvider.d.ts} +0 -0
  224. /package/dist/esm/providers/{mockProvider.d.ts → mocks/mockEthersProvider.d.ts} +0 -0
@@ -7,6 +7,7 @@ var coingecko_1 = require("../../coingecko");
7
7
  var constants_1 = require("../../constants");
8
8
  var gasPriceOracle_1 = require("../../gasPriceOracle");
9
9
  var utils_1 = require("../../utils");
10
+ var relayFeeCalculator_1 = require("../relayFeeCalculator");
10
11
  var svm_1 = require("../../arch/svm");
11
12
  var kit_1 = require("@solana/kit");
12
13
  var token_1 = require("@solana-program/token");
@@ -27,34 +28,87 @@ var SvmQuery = (function () {
27
28
  });
28
29
  }
29
30
  SvmQuery.prototype.getGasCosts = function (deposit, _relayer, options) {
30
- if (_relayer === void 0) { _relayer = constants_1.DEFAULT_SIMULATED_RELAYER_ADDRESS; }
31
+ if (_relayer === void 0) { _relayer = (0, relayFeeCalculator_1.getDefaultSimulatedRelayerAddress)(deposit.destinationChainId); }
31
32
  if (options === void 0) { options = {}; }
32
33
  return tslib_1.__awaiter(this, void 0, void 0, function () {
33
- var mint, owner, associatedToken, simulatedSigner, recipientCreateTokenAccountInstructions, _a, associatedTokenAccountExists, mintInfo, _b, _c, space, rent, createAccountIx, initializeMintIx, _d, createTokenAccountsIx, approveIx, fillIx, recentBlockhash, fillRelayTx, _e, computeUnitsConsumed, _gasPriceEstimate, _f, _g, _h, gasPriceEstimate, gasPrice;
34
- var _this = this;
35
- return tslib_1.__generator(this, function (_j) {
36
- switch (_j.label) {
34
+ var relayer, fillRelayTx, _a, computeUnitsConsumed, _gasPriceEstimate, _b, _c, _d, gasPriceEstimate, gasPrice;
35
+ return tslib_1.__generator(this, function (_e) {
36
+ switch (_e.label) {
37
37
  case 0:
38
+ relayer = _relayer ? (0, utils_1.toAddressType)(_relayer).forceSvmAddress() : this.simulatedRelayerAddress;
39
+ return [4, this.getFillRelayTx(deposit, relayer.toBase58())];
40
+ case 1:
41
+ fillRelayTx = _e.sent();
42
+ _c = (_b = Promise).all;
43
+ _d = utils_1.toBN;
44
+ return [4, this.computeUnitEstimator(fillRelayTx)];
45
+ case 2: return [4, _c.apply(_b, [[
46
+ _d.apply(void 0, [_e.sent()]),
47
+ (0, gasPriceOracle_1.getGasPriceEstimate)(this.provider, {
48
+ unsignedTx: fillRelayTx,
49
+ baseFeeMultiplier: options.baseFeeMultiplier,
50
+ priorityFeeMultiplier: options.priorityFeeMultiplier,
51
+ })
52
+ ]])];
53
+ case 3:
54
+ _a = _e.sent(), computeUnitsConsumed = _a[0], _gasPriceEstimate = _a[1];
55
+ gasPriceEstimate = _gasPriceEstimate;
56
+ gasPrice = gasPriceEstimate.baseFee.add(gasPriceEstimate.microLamportsPerComputeUnit.mul(computeUnitsConsumed).div((0, utils_1.toBN)(1000000)));
57
+ return [2, {
58
+ nativeGasCost: computeUnitsConsumed,
59
+ tokenGasCost: gasPrice,
60
+ gasPrice: gasPrice,
61
+ }];
62
+ }
63
+ });
64
+ });
65
+ };
66
+ SvmQuery.prototype.getNativeGasCost = function (deposit, _relayer) {
67
+ if (_relayer === void 0) { _relayer = (0, relayFeeCalculator_1.getDefaultSimulatedRelayerAddress)(deposit.destinationChainId); }
68
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
69
+ var fillRelayTx, computeUnitsConsumed, _a;
70
+ return tslib_1.__generator(this, function (_b) {
71
+ switch (_b.label) {
72
+ case 0: return [4, this.getFillRelayTx(deposit, _relayer)];
73
+ case 1:
74
+ fillRelayTx = _b.sent();
75
+ _a = utils_1.toBN;
76
+ return [4, this.computeUnitEstimator(fillRelayTx)];
77
+ case 2:
78
+ computeUnitsConsumed = _a.apply(void 0, [_b.sent()]);
79
+ return [2, computeUnitsConsumed];
80
+ }
81
+ });
82
+ });
83
+ };
84
+ SvmQuery.prototype.getFillRelayTx = function (deposit, _relayer) {
85
+ if (_relayer === void 0) { _relayer = (0, relayFeeCalculator_1.getDefaultSimulatedRelayerAddress)(deposit.destinationChainId); }
86
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
87
+ var relayer, mint, owner, associatedToken, simulatedSigner, recipientCreateTokenAccountInstructions, _a, associatedTokenAccountExists, mintInfo, _b, _c, space, rent, createAccountIx, initializeMintIx, _d, createTokenAccountsIx, approveIx, fillIx, recentBlockhash, fillRelayTx;
88
+ return tslib_1.__generator(this, function (_e) {
89
+ switch (_e.label) {
90
+ case 0:
91
+ relayer = _relayer ? (0, utils_1.toAddressType)(_relayer).forceSvmAddress() : this.simulatedRelayerAddress;
38
92
  mint = (0, utils_1.toAddressType)(deposit.outputToken).forceSvmAddress();
39
93
  owner = (0, utils_1.toAddressType)(deposit.recipient).forceSvmAddress();
40
94
  return [4, (0, svm_1.getAssociatedTokenAddress)(owner, mint)];
41
95
  case 1:
42
- associatedToken = _j.sent();
43
- simulatedSigner = (0, svm_1.SolanaVoidSigner)(this.simulatedRelayerAddress.toBase58());
96
+ associatedToken = _e.sent();
97
+ simulatedSigner = (0, svm_1.SolanaVoidSigner)(relayer.toBase58());
44
98
  recipientCreateTokenAccountInstructions = undefined;
45
99
  _c = (_b = Promise).all;
46
100
  return [4, (0, kit_1.fetchEncodedAccount)(this.provider, associatedToken)];
47
101
  case 2: return [4, _c.apply(_b, [[
48
- (_j.sent()).exists,
102
+ (_e.sent()).exists,
49
103
  (0, token_1.fetchMint)(this.provider, mint.toV2Address())
50
104
  ]])];
51
105
  case 3:
52
- _a = _j.sent(), associatedTokenAccountExists = _a[0], mintInfo = _a[1];
106
+ _a = _e.sent(), associatedTokenAccountExists = _a[0], mintInfo = _a[1];
53
107
  if (!!associatedTokenAccountExists) return [3, 5];
54
108
  space = BigInt((0, token_1.getMintSize)());
55
109
  return [4, this.provider.getMinimumBalanceForRentExemption(space).send()];
56
110
  case 4:
57
- rent = _j.sent();
111
+ rent = _e.sent();
58
112
  createAccountIx = (0, system_1.getCreateAccountInstruction)({
59
113
  payer: simulatedSigner,
60
114
  newAccount: (0, svm_1.SolanaVoidSigner)(mint.toBase58()),
@@ -68,42 +122,23 @@ var SvmQuery = (function () {
68
122
  mintAuthority: owner.toV2Address(),
69
123
  });
70
124
  recipientCreateTokenAccountInstructions = [createAccountIx, initializeMintIx];
71
- _j.label = 5;
125
+ _e.label = 5;
72
126
  case 5: return [4, Promise.all([
73
127
  (0, svm_1.createTokenAccountsInstruction)(mint, simulatedSigner),
74
128
  (0, svm_1.createApproveInstruction)(mint, deposit.outputAmount, this.simulatedRelayerAddress, this.spokePoolAddress, mintInfo.data.decimals),
75
129
  (0, svm_1.fillRelayInstruction)(this.spokePoolAddress, deposit, simulatedSigner, associatedToken),
76
130
  ])];
77
131
  case 6:
78
- _d = _j.sent(), createTokenAccountsIx = _d[0], approveIx = _d[1], fillIx = _d[2];
132
+ _d = _e.sent(), createTokenAccountsIx = _d[0], approveIx = _d[1], fillIx = _d[2];
79
133
  return [4, this.provider.getLatestBlockhash().send()];
80
134
  case 7:
81
- recentBlockhash = _j.sent();
82
- fillRelayTx = (0, functional_1.pipe)((0, kit_1.createTransactionMessage)({ version: 0 }), function (tx) { return (0, kit_1.setTransactionMessageFeePayer)(_this.simulatedRelayerAddress.toV2Address(), tx); }, function (tx) { return (0, kit_1.setTransactionMessageLifetimeUsingBlockhash)(recentBlockhash.value, tx); }, function (tx) {
135
+ recentBlockhash = _e.sent();
136
+ fillRelayTx = (0, functional_1.pipe)((0, kit_1.createTransactionMessage)({ version: 0 }), function (tx) { return (0, kit_1.setTransactionMessageFeePayer)(relayer.toV2Address(), tx); }, function (tx) { return (0, kit_1.setTransactionMessageLifetimeUsingBlockhash)(recentBlockhash.value, tx); }, function (tx) {
83
137
  return (0, utils_1.isDefined)(recipientCreateTokenAccountInstructions)
84
138
  ? (0, kit_1.appendTransactionMessageInstructions)(recipientCreateTokenAccountInstructions, tx)
85
139
  : tx;
86
140
  }, function (tx) { return (0, kit_1.appendTransactionMessageInstructions)([createTokenAccountsIx, approveIx, fillIx], tx); });
87
- _g = (_f = Promise).all;
88
- _h = utils_1.toBN;
89
- return [4, this.computeUnitEstimator(fillRelayTx)];
90
- case 8: return [4, _g.apply(_f, [[
91
- _h.apply(void 0, [_j.sent()]),
92
- (0, gasPriceOracle_1.getGasPriceEstimate)(this.provider, {
93
- unsignedTx: fillRelayTx,
94
- baseFeeMultiplier: options.baseFeeMultiplier,
95
- priorityFeeMultiplier: options.priorityFeeMultiplier,
96
- })
97
- ]])];
98
- case 9:
99
- _e = _j.sent(), computeUnitsConsumed = _e[0], _gasPriceEstimate = _e[1];
100
- gasPriceEstimate = _gasPriceEstimate;
101
- gasPrice = gasPriceEstimate.baseFee.add(gasPriceEstimate.microLamportsPerComputeUnit.mul(computeUnitsConsumed).div((0, utils_1.toBN)(1000000)));
102
- return [2, {
103
- nativeGasCost: computeUnitsConsumed,
104
- tokenGasCost: gasPrice,
105
- gasPrice: gasPrice,
106
- }];
141
+ return [2, fillRelayTx];
107
142
  }
108
143
  });
109
144
  });
@@ -1 +1 @@
1
- {"version":3,"file":"svmQuery.js","sourceRoot":"","sources":["../../../../src/relayFeeCalculator/chain-queries/svmQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"svmQuery.js","sourceRoot":"","sources":["../../../../src/relayFeeCalculator/chain-queries/svmQuery.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export interface QueryInterface {
11
11
  transport: Transport;
12
12
  }>) => Promise<TransactionCostEstimate>;
13
13
  getTokenPrice: (tokenSymbol: string) => Promise<number>;
14
+ getNativeGasCost: (deposit: Omit<Deposit, "messageHash">, relayer: string) => Promise<BigNumber>;
14
15
  }
15
16
  export declare const expectedCapitalCostsKeys: string[];
16
17
  export interface CapitalCostConfig {
@@ -73,6 +74,7 @@ export interface Logger {
73
74
  error: LoggingFunction;
74
75
  }
75
76
  export declare const DEFAULT_LOGGER: Logger;
77
+ export declare function getDefaultSimulatedRelayerAddress(chainId?: number): "0x07aE8551Be970cB1cCa11Dd7a11F47Ae82e70E67" | "FmMK62wrtWVb5SVoTZftSCGw3nEDA79hDbZNTRnC1R6t";
76
78
  export declare class RelayFeeCalculator {
77
79
  private queries;
78
80
  private gasDiscountPercent;
@@ -178,6 +180,15 @@ export declare class RelayFeeCalculator {
178
180
  };
179
181
  coingeckoId: string;
180
182
  };
183
+ ezETH: {
184
+ name: string;
185
+ symbol: string;
186
+ decimals: number;
187
+ addresses: {
188
+ [x: number]: string;
189
+ };
190
+ coingeckoId: string;
191
+ };
181
192
  GHO: {
182
193
  name: string;
183
194
  symbol: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RelayFeeCalculator = exports.DEFAULT_LOGGER = exports.expectedCapitalCostsKeys = void 0;
3
+ exports.RelayFeeCalculator = exports.getDefaultSimulatedRelayerAddress = exports.DEFAULT_LOGGER = exports.expectedCapitalCostsKeys = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var assert_1 = tslib_1.__importDefault(require("assert"));
6
6
  var constants_1 = require("../constants");
@@ -36,6 +36,12 @@ exports.DEFAULT_LOGGER = {
36
36
  return console.error(args);
37
37
  },
38
38
  };
39
+ function getDefaultSimulatedRelayerAddress(chainId) {
40
+ return (0, utils_1.isDefined)(chainId) && (0, utils_1.chainIsSvm)(chainId)
41
+ ? constants_1.DEFAULT_SIMULATED_RELAYER_ADDRESS_SVM
42
+ : constants_1.DEFAULT_SIMULATED_RELAYER_ADDRESS;
43
+ }
44
+ exports.getDefaultSimulatedRelayerAddress = getDefaultSimulatedRelayerAddress;
39
45
  var safeOutputAmount = (0, utils_1.toBN)(100);
40
46
  var RelayFeeCalculator = (function () {
41
47
  function RelayFeeCalculator(config, logger, destinationChainId) {
@@ -88,7 +94,7 @@ var RelayFeeCalculator = (function () {
88
94
  };
89
95
  RelayFeeCalculator.prototype.gasFeePercent = function (deposit, amountToRelay, simulateZeroFill, relayerAddress, _tokenPrice, tokenMapping, gasPrice, gasLimit, _tokenGasCost, transport) {
90
96
  if (simulateZeroFill === void 0) { simulateZeroFill = false; }
91
- if (relayerAddress === void 0) { relayerAddress = constants_1.DEFAULT_SIMULATED_RELAYER_ADDRESS; }
97
+ if (relayerAddress === void 0) { relayerAddress = getDefaultSimulatedRelayerAddress(deposit.destinationChainId); }
92
98
  if (tokenMapping === void 0) { tokenMapping = constants_1.TOKEN_SYMBOLS_MAP; }
93
99
  return tslib_1.__awaiter(this, void 0, void 0, function () {
94
100
  var inputToken, destinationChainId, originChainId, destinationChainTokenDetails, outputToken, outputTokenInfo, inputTokenInfo, simulatedAmount, getGasCosts, _a, tokenGasCost, tokenPrice, gasFeesInToken;
@@ -236,7 +242,7 @@ var RelayFeeCalculator = (function () {
236
242
  };
237
243
  RelayFeeCalculator.prototype.relayerFeeDetails = function (deposit, amountToRelay, simulateZeroFill, relayerAddress, _tokenPrice, gasPrice, gasUnits, tokenGasCost) {
238
244
  if (simulateZeroFill === void 0) { simulateZeroFill = false; }
239
- if (relayerAddress === void 0) { relayerAddress = constants_1.DEFAULT_SIMULATED_RELAYER_ADDRESS; }
245
+ if (relayerAddress === void 0) { relayerAddress = getDefaultSimulatedRelayerAddress(deposit.destinationChainId); }
240
246
  return tslib_1.__awaiter(this, void 0, void 0, function () {
241
247
  var inputToken, originChainId, token, gasFeePercent, gasFeeTotal, capitalFeePercent, capitalFeeTotal, relayFeePercent, relayFeeTotal, maxGasFeePercent, minDeposit, isAmountTooLow;
242
248
  return tslib_1.__generator(this, function (_a) {
@@ -1 +1 @@
1
- {"version":3,"file":"relayFeeCalculator.js","sourceRoot":"","sources":["../../../src/relayFeeCalculator/relayFeeCalculator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relayFeeCalculator.js","sourceRoot":"","sources":["../../../src/relayFeeCalculator/relayFeeCalculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export type BlockFinderOpts = {
2
+ highBlock?: number;
3
+ highBlockOffset?: number;
4
+ blockRange?: number;
5
+ };
6
+ export type BlockTimeAverage = {
7
+ average: number;
8
+ blockRange: number;
9
+ timestamp: number;
10
+ };
11
+ export interface Block {
12
+ hash: string;
13
+ number: number;
14
+ timestamp: number;
15
+ }
16
+ export type BlockFinderHints = {
17
+ lowBlock?: number;
18
+ highBlock?: number;
19
+ };
20
+ export declare abstract class BlockFinder<TBlock extends Block> {
21
+ abstract getBlockForTimestamp(timestamp: number | string, hints: BlockFinderHints): Promise<TBlock>;
22
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BlockFinder = void 0;
4
+ var BlockFinder = (function () {
5
+ function BlockFinder() {
6
+ }
7
+ return BlockFinder;
8
+ }());
9
+ exports.BlockFinder = BlockFinder;
10
+ //# sourceMappingURL=BlockFinder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockFinder.js","sourceRoot":"","sources":["../../../src/utils/BlockFinder.ts"],"names":[],"mappings":";;;AAuBA;IAAA;IAEA,CAAC;IAAD,kBAAC;AAAD,CAAC,AAFD,IAEC;AAFqB,kCAAW"}
@@ -1,28 +1,3 @@
1
- import type { Block, Provider } from "@ethersproject/abstract-provider";
2
1
  import { CachingMechanismInterface } from "../interfaces";
3
- type Opts = {
4
- highBlock?: number;
5
- highBlockOffset?: number;
6
- blockRange?: number;
7
- };
8
- type BlockTimeAverage = {
9
- average: number;
10
- blockRange: number;
11
- timestamp: number;
12
- };
13
- export declare function averageBlockTime(provider: Provider, { highBlock, highBlockOffset, blockRange }?: Opts): Promise<Pick<BlockTimeAverage, "average" | "blockRange">>;
14
- export type BlockFinderHints = {
15
- lowBlock?: number;
16
- highBlock?: number;
17
- };
18
- export declare class BlockFinder {
19
- private readonly provider;
20
- private readonly blocks;
21
- constructor(provider: Provider, blocks?: Block[]);
22
- getBlockForTimestamp(timestamp: number | string, hints?: BlockFinderHints): Promise<Block>;
23
- private getLatestBlock;
24
- private getBlock;
25
- private findBlock;
26
- }
27
- export declare function getCachedBlockForTimestamp(chainId: number, timestamp: number, blockFinder: BlockFinder, cache?: CachingMechanismInterface, hints?: BlockFinderHints): Promise<number>;
28
- export {};
2
+ import { BlockFinderHints, BlockFinder, Block } from "./BlockFinder";
3
+ export declare function getCachedBlockForTimestamp<TBlock extends Block>(chainId: number, timestamp: number, blockFinder: BlockFinder<TBlock>, cache?: CachingMechanismInterface, hints?: BlockFinderHints): Promise<number>;
@@ -1,217 +1,11 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.getCachedBlockForTimestamp = exports.BlockFinder = exports.averageBlockTime = void 0;
3
+ exports.getCachedBlockForTimestamp = void 0;
5
4
  var tslib_1 = require("tslib");
6
- var assert_1 = tslib_1.__importDefault(require("assert"));
7
- var lodash_1 = require("lodash");
8
- var NetworkUtils_1 = require("./NetworkUtils");
9
5
  var TypeGuards_1 = require("./TypeGuards");
10
6
  var TimeUtils_1 = require("./TimeUtils");
11
7
  var CachingUtils_1 = require("./CachingUtils");
12
8
  var constants_1 = require("../constants");
13
- var defaultBlockRange = 120;
14
- var defaultHighBlockOffset = 10;
15
- var cacheTTL = 60 * 15;
16
- var now = (0, TimeUtils_1.getCurrentTime)();
17
- var blockTimes = (_a = {},
18
- _a[constants_1.CHAIN_IDs.INK] = { average: 1, timestamp: now, blockRange: 1 },
19
- _a[constants_1.CHAIN_IDs.LINEA] = { average: 3, timestamp: now, blockRange: 1 },
20
- _a[constants_1.CHAIN_IDs.MAINNET] = { average: 12.5, timestamp: now, blockRange: 1 },
21
- _a[constants_1.CHAIN_IDs.OPTIMISM] = { average: 2, timestamp: now, blockRange: 1 },
22
- _a[constants_1.CHAIN_IDs.UNICHAIN] = { average: 1, timestamp: now, blockRange: 1 },
23
- _a);
24
- function averageBlockTime(provider, _a) {
25
- var _b;
26
- var _c = _a === void 0 ? {} : _a, highBlock = _c.highBlock, highBlockOffset = _c.highBlockOffset, blockRange = _c.blockRange;
27
- return tslib_1.__awaiter(this, void 0, void 0, function () {
28
- var chainId, cache, now, earliestBlockNumber, _d, firstBlock, lastBlock, average;
29
- return tslib_1.__generator(this, function (_e) {
30
- switch (_e.label) {
31
- case 0: return [4, provider.getNetwork()];
32
- case 1:
33
- chainId = (_e.sent()).chainId;
34
- cache = (_b = blockTimes[chainId]) !== null && _b !== void 0 ? _b : ((0, NetworkUtils_1.chainIsOPStack)(chainId) ? blockTimes[constants_1.CHAIN_IDs.OPTIMISM] : undefined);
35
- now = (0, TimeUtils_1.getCurrentTime)();
36
- if ((0, TypeGuards_1.isDefined)(cache) && now < cache.timestamp + cacheTTL) {
37
- return [2, { average: cache.average, blockRange: cache.blockRange }];
38
- }
39
- if (!!(0, TypeGuards_1.isDefined)(highBlock)) return [3, 3];
40
- return [4, provider.getBlockNumber()];
41
- case 2:
42
- highBlock = _e.sent();
43
- highBlock -= highBlockOffset !== null && highBlockOffset !== void 0 ? highBlockOffset : defaultHighBlockOffset;
44
- _e.label = 3;
45
- case 3:
46
- blockRange !== null && blockRange !== void 0 ? blockRange : (blockRange = defaultBlockRange);
47
- earliestBlockNumber = highBlock - blockRange;
48
- return [4, Promise.all([
49
- provider.getBlock(earliestBlockNumber),
50
- provider.getBlock(highBlock),
51
- ])];
52
- case 4:
53
- _d = _e.sent(), firstBlock = _d[0], lastBlock = _d[1];
54
- [firstBlock, lastBlock].forEach(function (block) {
55
- if (!(0, TypeGuards_1.isDefined)(block === null || block === void 0 ? void 0 : block.timestamp)) {
56
- var network = (0, NetworkUtils_1.getNetworkName)(chainId);
57
- var blockNumber = block === firstBlock ? earliestBlockNumber : highBlock;
58
- throw new Error("BlockFinder: Failed to fetch block ".concat(blockNumber, " on ").concat(network));
59
- }
60
- });
61
- average = (lastBlock.timestamp - firstBlock.timestamp) / blockRange;
62
- blockTimes[chainId] = { timestamp: now, average: average, blockRange: blockRange };
63
- return [2, { average: average, blockRange: blockRange }];
64
- }
65
- });
66
- });
67
- }
68
- exports.averageBlockTime = averageBlockTime;
69
- function estimateBlocksElapsed(seconds, cushionPercentage, provider) {
70
- if (cushionPercentage === void 0) { cushionPercentage = 0.0; }
71
- return tslib_1.__awaiter(this, void 0, void 0, function () {
72
- var cushionMultiplier, average;
73
- return tslib_1.__generator(this, function (_a) {
74
- switch (_a.label) {
75
- case 0:
76
- cushionMultiplier = cushionPercentage + 1.0;
77
- return [4, averageBlockTime(provider)];
78
- case 1:
79
- average = (_a.sent()).average;
80
- return [2, Math.floor((seconds * cushionMultiplier) / average)];
81
- }
82
- });
83
- });
84
- }
85
- var BlockFinder = (function () {
86
- function BlockFinder(provider, blocks) {
87
- if (blocks === void 0) { blocks = []; }
88
- this.provider = provider;
89
- this.blocks = blocks;
90
- }
91
- BlockFinder.prototype.getBlockForTimestamp = function (timestamp, hints) {
92
- if (hints === void 0) { hints = {}; }
93
- return tslib_1.__awaiter(this, void 0, void 0, function () {
94
- var block, initialBlock, cushion, incrementDistance, _a, _b, multiplier, distance, blockNumber, block, index;
95
- var _this = this;
96
- return tslib_1.__generator(this, function (_c) {
97
- switch (_c.label) {
98
- case 0:
99
- timestamp = Number(timestamp);
100
- (0, assert_1.default)(timestamp !== undefined && timestamp !== null, "timestamp must be provided");
101
- if (!(this.blocks.length === 0 || this.blocks[this.blocks.length - 1].timestamp < timestamp)) return [3, 2];
102
- return [4, this.getLatestBlock()];
103
- case 1:
104
- block = _c.sent();
105
- if (timestamp >= block.timestamp)
106
- return [2, block];
107
- _c.label = 2;
108
- case 2: return [4, Promise.all(Object.values(hints)
109
- .filter(function (blockNumber) { return (0, TypeGuards_1.isDefined)(blockNumber); })
110
- .map(function (blockNumber) { return _this.getBlock(blockNumber); }))];
111
- case 3:
112
- _c.sent();
113
- if (!(this.blocks[0].timestamp > timestamp)) return [3, 8];
114
- initialBlock = this.blocks[0];
115
- cushion = 1;
116
- _b = (_a = Math).max;
117
- return [4, estimateBlocksElapsed(initialBlock.timestamp - timestamp, cushion, this.provider)];
118
- case 4:
119
- incrementDistance = _b.apply(_a, [_c.sent(), 1]);
120
- multiplier = 1;
121
- _c.label = 5;
122
- case 5:
123
- distance = multiplier * incrementDistance;
124
- blockNumber = Math.max(0, initialBlock.number - distance);
125
- return [4, this.getBlock(blockNumber)];
126
- case 6:
127
- block = _c.sent();
128
- if (block.timestamp <= timestamp)
129
- return [3, 8];
130
- (0, assert_1.default)(blockNumber > 0, "timestamp is before block 0");
131
- _c.label = 7;
132
- case 7:
133
- multiplier++;
134
- return [3, 5];
135
- case 8:
136
- index = (0, lodash_1.sortedIndexBy)(this.blocks, { timestamp: timestamp }, "timestamp");
137
- return [2, this.findBlock(this.blocks[index - 1], this.blocks[index], timestamp)];
138
- }
139
- });
140
- });
141
- };
142
- BlockFinder.prototype.getLatestBlock = function () {
143
- var _a;
144
- return tslib_1.__awaiter(this, void 0, void 0, function () {
145
- var block, index;
146
- return tslib_1.__generator(this, function (_b) {
147
- switch (_b.label) {
148
- case 0: return [4, this.provider.getBlock("latest")];
149
- case 1:
150
- block = _b.sent();
151
- index = (0, lodash_1.sortedIndexBy)(this.blocks, block, "number");
152
- if (((_a = this.blocks[index]) === null || _a === void 0 ? void 0 : _a.number) !== block.number)
153
- this.blocks.splice(index, 0, block);
154
- return [2, this.blocks[index]];
155
- }
156
- });
157
- });
158
- };
159
- BlockFinder.prototype.getBlock = function (number) {
160
- var _a, _b;
161
- return tslib_1.__awaiter(this, void 0, void 0, function () {
162
- var index, block;
163
- return tslib_1.__generator(this, function (_c) {
164
- switch (_c.label) {
165
- case 0:
166
- index = (0, lodash_1.sortedIndexBy)(this.blocks, { number: number }, "number");
167
- if (((_a = this.blocks[index]) === null || _a === void 0 ? void 0 : _a.number) === number)
168
- return [2, this.blocks[index]];
169
- return [4, this.provider.getBlock(number)];
170
- case 1:
171
- block = _c.sent();
172
- index = (0, lodash_1.sortedIndexBy)(this.blocks, { number: number }, "number");
173
- if (((_b = this.blocks[index]) === null || _b === void 0 ? void 0 : _b.number) === number)
174
- return [2, this.blocks[index]];
175
- this.blocks.splice(index, 0, block);
176
- return [2, block];
177
- }
178
- });
179
- });
180
- };
181
- BlockFinder.prototype.findBlock = function (_startBlock, _endBlock, timestamp) {
182
- return tslib_1.__awaiter(this, void 0, void 0, function () {
183
- var _a, startBlock, endBlock, totalTimeDifference, totalBlockDistance, blockPercentile, estimatedBlock, newBlock;
184
- return tslib_1.__generator(this, function (_b) {
185
- switch (_b.label) {
186
- case 0:
187
- _a = [_startBlock, _endBlock], startBlock = _a[0], endBlock = _a[1];
188
- if (endBlock.timestamp === timestamp)
189
- return [2, endBlock];
190
- if (endBlock.number === startBlock.number + 1)
191
- return [2, startBlock];
192
- (0, assert_1.default)(endBlock.number !== startBlock.number, "startBlock cannot equal endBlock");
193
- (0, assert_1.default)(timestamp < endBlock.timestamp && timestamp > startBlock.timestamp, "timestamp not in between start and end blocks");
194
- totalTimeDifference = endBlock.timestamp - startBlock.timestamp;
195
- totalBlockDistance = endBlock.number - startBlock.number;
196
- blockPercentile = (timestamp - startBlock.timestamp) / totalTimeDifference;
197
- estimatedBlock = startBlock.number + Math.round(blockPercentile * totalBlockDistance);
198
- return [4, this.getBlock((0, lodash_1.clamp)(estimatedBlock, startBlock.number + 1, endBlock.number - 1))];
199
- case 1:
200
- newBlock = _b.sent();
201
- if (newBlock.timestamp < timestamp) {
202
- return [2, this.findBlock(newBlock, endBlock, timestamp)];
203
- }
204
- else {
205
- return [2, this.findBlock(startBlock, newBlock, timestamp)];
206
- }
207
- return [2];
208
- }
209
- });
210
- });
211
- };
212
- return BlockFinder;
213
- }());
214
- exports.BlockFinder = BlockFinder;
215
9
  function getCachedBlockForTimestamp(chainId, timestamp, blockFinder, cache, hints) {
216
10
  return tslib_1.__awaiter(this, void 0, void 0, function () {
217
11
  var resolver, key, result, blockNumber;
@@ -221,7 +15,7 @@ function getCachedBlockForTimestamp(chainId, timestamp, blockFinder, cache, hint
221
15
  case 0:
222
16
  resolver = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
223
17
  switch (_a.label) {
224
- case 0: return [4, blockFinder.getBlockForTimestamp(timestamp, hints)];
18
+ case 0: return [4, blockFinder.getBlockForTimestamp(timestamp, hints || {})];
225
19
  case 1: return [2, (_a.sent()).number];
226
20
  }
227
21
  }); }); };
@@ -1 +1 @@
1
- {"version":3,"file":"BlockUtils.js","sourceRoot":"","sources":["../../../src/utils/BlockUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BlockUtils.js","sourceRoot":"","sources":["../../../src/utils/BlockUtils.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AACzC,yCAA6C;AAE7C,+CAA6C;AAE7C,0CAAwD;AAWxD,SAAsB,0BAA0B,CAC9C,OAAe,EACf,SAAiB,EACjB,WAAgC,EAChC,KAAiC,EACjC,KAAwB;;;;;;;oBAIlB,QAAQ,GAAG;;oCAAa,WAAM,WAAW,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,EAAA;oCAA/D,WAAA,CAAC,SAA8D,CAAC,CAAC,MAAM,EAAA;;6BAAA,CAAC;oBAGrG,IAAI,CAAC,IAAA,sBAAS,EAAC,KAAK,CAAC,EAAE;wBACrB,WAAO,QAAQ,EAAE,EAAC;qBACnB;oBAKK,GAAG,GAAG,UAAG,OAAO,2BAAiB,SAAS,CAAE,CAAC;yBAE/C,IAAA,0BAAW,EAAC,SAAS,EAAE,IAAA,0BAAc,GAAE,EAAE,oCAAwB,CAAC,EAAlE,cAAkE;oBAErD,WAAM,KAAK,CAAC,GAAG,CAAS,GAAG,CAAC,EAAA;;oBAArC,MAAM,GAAG,SAA4B;yBAEvC,CAAA,MAAM,KAAK,IAAI,CAAA,EAAf,cAAe;oBACjB,WAAO,QAAQ,CAAC,MAAM,CAAC,EAAC;wBAIJ,WAAM,QAAQ,EAAE,EAAA;;oBAA9B,WAAW,GAAG,SAAgB;oBAEpC,WAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAA;;oBAA/D,SAA+D,CAAC;oBAChE,WAAO,WAAW,EAAC;;wBAKrB,WAAO,QAAQ,EAAE,EAAC;;;;;CAErB;AAxCD,gEAwCC"}