@across-protocol/sdk 4.1.41 → 4.1.43

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 (77) hide show
  1. package/dist/cjs/arch/evm/SpokeUtils.d.ts +15 -0
  2. package/dist/cjs/arch/evm/SpokeUtils.js +312 -0
  3. package/dist/cjs/arch/evm/SpokeUtils.js.map +1 -0
  4. package/dist/cjs/arch/evm/index.d.ts +1 -1
  5. package/dist/cjs/arch/evm/index.js +2 -2
  6. package/dist/cjs/arch/evm/index.js.map +1 -1
  7. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +3 -2
  8. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  9. package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +8 -8
  10. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -2
  11. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +11 -8
  12. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  13. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.d.ts +2 -1
  14. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  15. package/dist/cjs/index.d.ts +1 -0
  16. package/dist/cjs/index.js +2 -1
  17. package/dist/cjs/index.js.map +1 -1
  18. package/dist/cjs/providers/types.d.ts +2 -2
  19. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +2 -1
  20. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  21. package/dist/cjs/utils/DepositUtils.js +1 -1
  22. package/dist/cjs/utils/DepositUtils.js.map +1 -1
  23. package/dist/cjs/utils/SpokeUtils.d.ts +2 -14
  24. package/dist/cjs/utils/SpokeUtils.js +8 -313
  25. package/dist/cjs/utils/SpokeUtils.js.map +1 -1
  26. package/dist/esm/arch/evm/SpokeUtils.d.ts +58 -0
  27. package/dist/esm/arch/evm/SpokeUtils.js +345 -0
  28. package/dist/esm/arch/evm/SpokeUtils.js.map +1 -0
  29. package/dist/esm/arch/evm/index.d.ts +1 -1
  30. package/dist/esm/arch/evm/index.js +1 -1
  31. package/dist/esm/arch/evm/index.js.map +1 -1
  32. package/dist/esm/clients/BundleDataClient/BundleDataClient.js +3 -2
  33. package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  34. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +8 -8
  35. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -2
  36. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +7 -4
  37. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  38. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.d.ts +9 -1
  39. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  40. package/dist/esm/index.d.ts +1 -0
  41. package/dist/esm/index.js +2 -0
  42. package/dist/esm/index.js.map +1 -1
  43. package/dist/esm/providers/types.d.ts +2 -2
  44. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +2 -1
  45. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  46. package/dist/esm/utils/DepositUtils.js +2 -1
  47. package/dist/esm/utils/DepositUtils.js.map +1 -1
  48. package/dist/esm/utils/SpokeUtils.d.ts +5 -55
  49. package/dist/esm/utils/SpokeUtils.js +11 -348
  50. package/dist/esm/utils/SpokeUtils.js.map +1 -1
  51. package/dist/types/arch/evm/SpokeUtils.d.ts +59 -0
  52. package/dist/types/arch/evm/SpokeUtils.d.ts.map +1 -0
  53. package/dist/types/arch/evm/index.d.ts +1 -1
  54. package/dist/types/arch/evm/index.d.ts.map +1 -1
  55. package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
  56. package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +8 -8
  57. package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -2
  58. package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts.map +1 -1
  59. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts +9 -1
  60. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -1
  61. package/dist/types/index.d.ts +1 -0
  62. package/dist/types/index.d.ts.map +1 -1
  63. package/dist/types/providers/types.d.ts +2 -2
  64. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts.map +1 -1
  65. package/dist/types/utils/DepositUtils.d.ts.map +1 -1
  66. package/dist/types/utils/SpokeUtils.d.ts +5 -55
  67. package/dist/types/utils/SpokeUtils.d.ts.map +1 -1
  68. package/package.json +2 -2
  69. package/src/arch/evm/SpokeUtils.ts +324 -0
  70. package/src/arch/evm/index.ts +1 -1
  71. package/src/clients/BundleDataClient/BundleDataClient.ts +2 -3
  72. package/src/clients/SpokePoolClient/EVMSpokePoolClient.ts +27 -16
  73. package/src/clients/SpokePoolClient/SpokePoolClient.ts +13 -5
  74. package/src/index.ts +1 -0
  75. package/src/relayFeeCalculator/chain-queries/baseQuery.ts +1 -1
  76. package/src/utils/DepositUtils.ts +2 -1
  77. package/src/utils/SpokeUtils.ts +16 -314
@@ -1,25 +1,17 @@
1
- import { __assign, __awaiter, __generator } from "tslib";
2
- import assert from "assert";
1
+ import { __assign } from "tslib";
3
2
  import { utils as ethersUtils } from "ethers";
4
- import { CHAIN_IDs, MAX_SAFE_DEPOSIT_ID, ZERO_ADDRESS, ZERO_BYTES } from "../constants";
5
- import { FillStatus } from "../interfaces";
6
- import { chunk } from "./ArrayUtils";
7
- import { bnUint32Max, BigNumber, toBN, bnZero } from "./BigNumberUtils";
3
+ import { MAX_SAFE_DEPOSIT_ID, ZERO_ADDRESS, ZERO_BYTES } from "../constants";
4
+ import { toBytes32 } from "./AddressUtils";
8
5
  import { keccak256 } from "./common";
6
+ import { BigNumber } from "./BigNumberUtils";
9
7
  import { isMessageEmpty } from "./DepositUtils";
10
- import { isDefined } from "./TypeGuards";
11
- import { getNetworkName } from "./NetworkUtils";
12
- import { paginatedEventQuery, spreadEventWithBlockNumber } from "./EventUtils";
13
- import { toBytes32 } from "./AddressUtils";
14
8
  /**
15
- * @param spokePool SpokePool Contract instance.
16
- * @param deposit V3Deopsit instance.
17
- * @param repaymentChainId Optional repaymentChainId (defaults to destinationChainId).
18
- * @returns An Ethers UnsignedTransaction instance.
9
+ * Produce the RelayData for a Deposit.
10
+ * @param deposit Deposit instance.
11
+ * @returns The corresponding RelayData object.
19
12
  */
20
- export function populateV3Relay(spokePool, deposit, relayer, repaymentChainId) {
21
- if (repaymentChainId === void 0) { repaymentChainId = deposit.destinationChainId; }
22
- var v3RelayData = {
13
+ export function getDepositRelayData(deposit) {
14
+ return {
23
15
  depositor: toBytes32(deposit.depositor),
24
16
  recipient: toBytes32(deposit.recipient),
25
17
  exclusiveRelayer: toBytes32(deposit.exclusiveRelayer),
@@ -33,95 +25,6 @@ export function populateV3Relay(spokePool, deposit, relayer, repaymentChainId) {
33
25
  exclusivityDeadline: deposit.exclusivityDeadline,
34
26
  message: deposit.message,
35
27
  };
36
- if (isDefined(deposit.speedUpSignature)) {
37
- assert(isDefined(deposit.updatedRecipient) && !isZeroAddress(deposit.updatedRecipient));
38
- assert(isDefined(deposit.updatedOutputAmount));
39
- assert(isDefined(deposit.updatedMessage));
40
- return spokePool.populateTransaction.fillRelayWithUpdatedDeposit(v3RelayData, repaymentChainId, toBytes32(relayer), deposit.updatedOutputAmount, toBytes32(deposit.updatedRecipient), deposit.updatedMessage, deposit.speedUpSignature, { from: relayer });
41
- }
42
- return spokePool.populateTransaction.fillRelay(v3RelayData, repaymentChainId, toBytes32(relayer), { from: relayer });
43
- }
44
- /**
45
- * Retrieves the time from the SpokePool contract at a particular block.
46
- * @returns The time at the specified block tag.
47
- */
48
- export function getTimeAt(spokePool, blockNumber) {
49
- return __awaiter(this, void 0, void 0, function () {
50
- var currentTime;
51
- return __generator(this, function (_a) {
52
- switch (_a.label) {
53
- case 0: return [4 /*yield*/, spokePool.getCurrentTime({ blockTag: blockNumber })];
54
- case 1:
55
- currentTime = _a.sent();
56
- assert(BigNumber.isBigNumber(currentTime) && currentTime.lt(bnUint32Max));
57
- return [2 /*return*/, currentTime.toNumber()];
58
- }
59
- });
60
- });
61
- }
62
- /**
63
- * Retrieves the chain time at a particular block.
64
- * @note This should be the same as getTimeAt() but can differ in test. These two functions should be consolidated.
65
- * @returns The chain time at the specified block tag.
66
- */
67
- export function getTimestampForBlock(provider, blockNumber) {
68
- return __awaiter(this, void 0, void 0, function () {
69
- var block;
70
- return __generator(this, function (_a) {
71
- switch (_a.label) {
72
- case 0: return [4 /*yield*/, provider.getBlock(blockNumber)];
73
- case 1:
74
- block = _a.sent();
75
- return [2 /*return*/, block.timestamp];
76
- }
77
- });
78
- });
79
- }
80
- /**
81
- * Return maximum of fill deadline buffer at start and end of block range.
82
- * @param spokePool SpokePool contract instance
83
- * @param startBlock start block
84
- * @param endBlock end block
85
- * @returns maximum of fill deadline buffer at start and end block
86
- */
87
- export function getMaxFillDeadlineInRange(spokePool, startBlock, endBlock) {
88
- return __awaiter(this, void 0, void 0, function () {
89
- var fillDeadlineBuffers;
90
- return __generator(this, function (_a) {
91
- switch (_a.label) {
92
- case 0: return [4 /*yield*/, Promise.all([
93
- spokePool.fillDeadlineBuffer({ blockTag: startBlock }),
94
- spokePool.fillDeadlineBuffer({ blockTag: endBlock }),
95
- ])];
96
- case 1:
97
- fillDeadlineBuffers = _a.sent();
98
- return [2 /*return*/, Math.max(fillDeadlineBuffers[0], fillDeadlineBuffers[1])];
99
- }
100
- });
101
- });
102
- }
103
- /**
104
- * Finds the deposit id at a specific block number.
105
- * @param blockTag The block number to search for the deposit ID at.
106
- * @returns The deposit ID.
107
- */
108
- export function getDepositIdAtBlock(contract, blockTag) {
109
- return __awaiter(this, void 0, void 0, function () {
110
- var _depositIdAtBlock, depositIdAtBlock;
111
- return __generator(this, function (_a) {
112
- switch (_a.label) {
113
- case 0: return [4 /*yield*/, contract.numberOfDeposits({ blockTag: blockTag })];
114
- case 1:
115
- _depositIdAtBlock = _a.sent();
116
- depositIdAtBlock = toBN(_depositIdAtBlock);
117
- // Sanity check to ensure that the deposit ID is greater than or equal to zero.
118
- if (depositIdAtBlock.lt(bnZero)) {
119
- throw new Error("Invalid deposit count");
120
- }
121
- return [2 /*return*/, depositIdAtBlock];
122
- }
123
- });
124
- });
125
28
  }
126
29
  /**
127
30
  * Compute the RelayData hash for a fill. This can be used to determine the fill status.
@@ -130,8 +33,8 @@ export function getDepositIdAtBlock(contract, blockTag) {
130
33
  * @returns The corresponding RelayData hash.
131
34
  */
132
35
  export function getRelayDataHash(relayData, destinationChainId) {
133
- var _relayData = __assign(__assign({}, relayData), { depositor: ethersUtils.hexZeroPad(relayData.depositor, 32), recipient: ethersUtils.hexZeroPad(relayData.recipient, 32), inputToken: ethersUtils.hexZeroPad(relayData.inputToken, 32), outputToken: ethersUtils.hexZeroPad(relayData.outputToken, 32), exclusiveRelayer: ethersUtils.hexZeroPad(relayData.exclusiveRelayer, 32) });
134
- return ethersUtils.keccak256(ethersUtils.defaultAbiCoder.encode([
36
+ var _relayData = __assign(__assign({}, relayData), { depositor: toBytes32(relayData.depositor), recipient: toBytes32(relayData.recipient), inputToken: toBytes32(relayData.inputToken), outputToken: toBytes32(relayData.outputToken), exclusiveRelayer: toBytes32(relayData.exclusiveRelayer) });
37
+ return keccak256(ethersUtils.defaultAbiCoder.encode([
135
38
  "tuple(" +
136
39
  "bytes32 depositor," +
137
40
  "bytes32 recipient," +
@@ -152,57 +55,6 @@ export function getRelayDataHash(relayData, destinationChainId) {
152
55
  export function getRelayHashFromEvent(e) {
153
56
  return getRelayDataHash(e, e.destinationChainId);
154
57
  }
155
- export function findDepositBlock(spokePool, depositId, lowBlock, highBlock) {
156
- return __awaiter(this, void 0, void 0, function () {
157
- var _a, _b, nDepositsLow, nDepositsHigh, midBlock, nDeposits, _c;
158
- return __generator(this, function (_d) {
159
- switch (_d.label) {
160
- case 0:
161
- // We can only perform this search when we have a safe deposit ID.
162
- if (isUnsafeDepositId(depositId)) {
163
- throw new Error("Cannot binary search for depositId ".concat(depositId));
164
- }
165
- if (!(highBlock !== null && highBlock !== void 0)) return [3 /*break*/, 1];
166
- _a = highBlock;
167
- return [3 /*break*/, 3];
168
- case 1: return [4 /*yield*/, spokePool.provider.getBlockNumber()];
169
- case 2:
170
- _a = (highBlock = _d.sent());
171
- _d.label = 3;
172
- case 3:
173
- _a;
174
- assert(highBlock > lowBlock, "Block numbers out of range (".concat(lowBlock, " >= ").concat(highBlock, ")"));
175
- return [4 /*yield*/, Promise.all([
176
- spokePool.numberOfDeposits({ blockTag: lowBlock }),
177
- spokePool.numberOfDeposits({ blockTag: highBlock }),
178
- ])];
179
- case 4:
180
- _b = (_d.sent()).map(function (n) { return toBN(n); }), nDepositsLow = _b[0], nDepositsHigh = _b[1];
181
- if (nDepositsLow.gt(depositId) || nDepositsHigh.lte(depositId)) {
182
- return [2 /*return*/, undefined]; // Deposit did not occur within the specified block range.
183
- }
184
- _d.label = 5;
185
- case 5:
186
- midBlock = Math.floor((highBlock + lowBlock) / 2);
187
- _c = toBN;
188
- return [4 /*yield*/, spokePool.numberOfDeposits({ blockTag: midBlock })];
189
- case 6:
190
- nDeposits = _c.apply(void 0, [_d.sent()]);
191
- if (nDeposits.gt(depositId)) {
192
- highBlock = midBlock; // depositId occurred at or earlier than midBlock.
193
- }
194
- else {
195
- lowBlock = midBlock + 1; // depositId occurred later than midBlock.
196
- }
197
- _d.label = 7;
198
- case 7:
199
- if (lowBlock < highBlock) return [3 /*break*/, 5];
200
- _d.label = 8;
201
- case 8: return [2 /*return*/, lowBlock];
202
- }
203
- });
204
- });
205
- }
206
58
  export function isUnsafeDepositId(depositId) {
207
59
  // SpokePool.unsafeDepositV3() produces a uint256 depositId by hashing the msg.sender, depositor and input
208
60
  // uint256 depositNonce. There is a possibility that this resultant uint256 is less than the maxSafeDepositId (i.e.
@@ -212,195 +64,6 @@ export function isUnsafeDepositId(depositId) {
212
64
  var maxSafeDepositId = BigNumber.from(MAX_SAFE_DEPOSIT_ID);
213
65
  return maxSafeDepositId.lt(depositId);
214
66
  }
215
- /**
216
- * Find the amount filled for a deposit at a particular block.
217
- * @param spokePool SpokePool contract instance.
218
- * @param relayData Deposit information that is used to complete a fill.
219
- * @param blockTag Block tag (numeric or "latest") to query at.
220
- * @returns The amount filled for the specified deposit at the requested block (or latest).
221
- */
222
- export function relayFillStatus(spokePool, relayData, blockTag, destinationChainId) {
223
- return __awaiter(this, void 0, void 0, function () {
224
- var _a, hash, _fillStatus, fillStatus, originChainId, depositId;
225
- return __generator(this, function (_b) {
226
- switch (_b.label) {
227
- case 0:
228
- if (!(destinationChainId !== null && destinationChainId !== void 0)) return [3 /*break*/, 1];
229
- _a = destinationChainId;
230
- return [3 /*break*/, 3];
231
- case 1: return [4 /*yield*/, spokePool.chainId()];
232
- case 2:
233
- _a = (destinationChainId = _b.sent());
234
- _b.label = 3;
235
- case 3:
236
- _a;
237
- assert(isDefined(destinationChainId));
238
- hash = getRelayDataHash(relayData, destinationChainId);
239
- return [4 /*yield*/, spokePool.fillStatuses(hash, { blockTag: blockTag })];
240
- case 4:
241
- _fillStatus = _b.sent();
242
- fillStatus = Number(_fillStatus);
243
- if (![FillStatus.Unfilled, FillStatus.RequestedSlowFill, FillStatus.Filled].includes(fillStatus)) {
244
- originChainId = relayData.originChainId, depositId = relayData.depositId;
245
- throw new Error("relayFillStatus: Unexpected fillStatus for ".concat(originChainId, " deposit ").concat(depositId.toString(), " (").concat(fillStatus, ")"));
246
- }
247
- return [2 /*return*/, fillStatus];
248
- }
249
- });
250
- });
251
- }
252
- export function fillStatusArray(spokePool, relayData, blockTag) {
253
- if (blockTag === void 0) { blockTag = "latest"; }
254
- return __awaiter(this, void 0, void 0, function () {
255
- var fillStatuses, destinationChainId, queries, chunkSize, chunkedQueries, multicalls, status, bnUnfilled, bnFilled;
256
- return __generator(this, function (_a) {
257
- switch (_a.label) {
258
- case 0:
259
- fillStatuses = "fillStatuses";
260
- return [4 /*yield*/, spokePool.chainId()];
261
- case 1:
262
- destinationChainId = _a.sent();
263
- queries = relayData.map(function (relayData) {
264
- var hash = getRelayDataHash(relayData, destinationChainId);
265
- return spokePool.interface.encodeFunctionData(fillStatuses, [hash]);
266
- });
267
- chunkSize = 250;
268
- chunkedQueries = chunk(queries, chunkSize);
269
- return [4 /*yield*/, Promise.all(chunkedQueries.map(function (queries) { return spokePool.callStatic.multicall(queries, { blockTag: blockTag }); }))];
270
- case 2:
271
- multicalls = _a.sent();
272
- status = multicalls
273
- .map(function (multicall) {
274
- return multicall.map(function (result) { return spokePool.interface.decodeFunctionResult(fillStatuses, result)[0]; });
275
- })
276
- .flat();
277
- bnUnfilled = toBN(FillStatus.Unfilled);
278
- bnFilled = toBN(FillStatus.Filled);
279
- return [2 /*return*/, status.map(function (status) {
280
- return BigNumber.isBigNumber(status) && status.gte(bnUnfilled) && status.lte(bnFilled)
281
- ? status.toNumber()
282
- : undefined;
283
- })];
284
- }
285
- });
286
- });
287
- }
288
- /**
289
- * Find the block at which a fill was completed.
290
- * @todo After SpokePool upgrade, this function can be simplified to use the FillStatus enum.
291
- * @param spokePool SpokePool contract instance.
292
- * @param relayData Deposit information that is used to complete a fill.
293
- * @param lowBlockNumber The lower bound of the search. Must be bounded by SpokePool deployment.
294
- * @param highBlocknumber Optional upper bound for the search.
295
- * @returns The block number at which the relay was completed, or undefined.
296
- */
297
- export function findFillBlock(spokePool, relayData, lowBlockNumber, highBlockNumber) {
298
- return __awaiter(this, void 0, void 0, function () {
299
- var provider, _a, destinationChainId, _b, _c, _d, initialFillStatus, finalFillStatus, depositId, originChainId, _e, srcChain, dstChain, midBlockNumber, fillStatus;
300
- return __generator(this, function (_f) {
301
- switch (_f.label) {
302
- case 0:
303
- provider = spokePool.provider;
304
- if (!(highBlockNumber !== null && highBlockNumber !== void 0)) return [3 /*break*/, 1];
305
- _a = highBlockNumber;
306
- return [3 /*break*/, 3];
307
- case 1: return [4 /*yield*/, provider.getBlockNumber()];
308
- case 2:
309
- _a = (highBlockNumber = _f.sent());
310
- _f.label = 3;
311
- case 3:
312
- _a;
313
- assert(highBlockNumber > lowBlockNumber, "Block numbers out of range (".concat(lowBlockNumber, " >= ").concat(highBlockNumber, ")"));
314
- if (!Object.values(CHAIN_IDs).includes(relayData.originChainId)) return [3 /*break*/, 5];
315
- return [4 /*yield*/, provider.getNetwork()];
316
- case 4:
317
- _b = (_f.sent()).chainId;
318
- return [3 /*break*/, 7];
319
- case 5:
320
- _c = Number;
321
- return [4 /*yield*/, spokePool.chainId()];
322
- case 6:
323
- _b = _c.apply(void 0, [_f.sent()]);
324
- _f.label = 7;
325
- case 7:
326
- destinationChainId = _b;
327
- assert(relayData.originChainId !== destinationChainId, "Origin & destination chain IDs must not be equal (".concat(destinationChainId, ")"));
328
- return [4 /*yield*/, Promise.all([
329
- relayFillStatus(spokePool, relayData, lowBlockNumber, destinationChainId),
330
- relayFillStatus(spokePool, relayData, highBlockNumber, destinationChainId),
331
- ])];
332
- case 8:
333
- _d = (_f.sent()).map(Number), initialFillStatus = _d[0], finalFillStatus = _d[1];
334
- if (finalFillStatus !== FillStatus.Filled) {
335
- return [2 /*return*/, undefined]; // Wasn't filled within the specified block range.
336
- }
337
- // Was filled earlier than the specified lowBlock. This is an error by the caller.
338
- if (initialFillStatus === FillStatus.Filled) {
339
- depositId = relayData.depositId, originChainId = relayData.originChainId;
340
- _e = [getNetworkName(originChainId), getNetworkName(destinationChainId)], srcChain = _e[0], dstChain = _e[1];
341
- throw new Error("".concat(srcChain, " deposit ").concat(depositId.toString(), " filled on ").concat(dstChain, " before block ").concat(lowBlockNumber));
342
- }
343
- _f.label = 9;
344
- case 9:
345
- midBlockNumber = Math.floor((highBlockNumber + lowBlockNumber) / 2);
346
- return [4 /*yield*/, relayFillStatus(spokePool, relayData, midBlockNumber, destinationChainId)];
347
- case 10:
348
- fillStatus = _f.sent();
349
- if (fillStatus === FillStatus.Filled) {
350
- highBlockNumber = midBlockNumber;
351
- }
352
- else {
353
- lowBlockNumber = midBlockNumber + 1;
354
- }
355
- _f.label = 11;
356
- case 11:
357
- if (lowBlockNumber < highBlockNumber) return [3 /*break*/, 9];
358
- _f.label = 12;
359
- case 12: return [2 /*return*/, lowBlockNumber];
360
- }
361
- });
362
- });
363
- }
364
- export function findFillEvent(spokePool, relayData, lowBlockNumber, highBlockNumber) {
365
- return __awaiter(this, void 0, void 0, function () {
366
- var blockNumber, maxBlockLookBack, _a, fromBlock, toBlock, query, event, destinationChainId, _b, _c, fill;
367
- return __generator(this, function (_d) {
368
- switch (_d.label) {
369
- case 0: return [4 /*yield*/, findFillBlock(spokePool, relayData, lowBlockNumber, highBlockNumber)];
370
- case 1:
371
- blockNumber = _d.sent();
372
- if (!blockNumber)
373
- return [2 /*return*/, undefined];
374
- maxBlockLookBack = 0;
375
- _a = [blockNumber, blockNumber], fromBlock = _a[0], toBlock = _a[1];
376
- return [4 /*yield*/, Promise.all([
377
- paginatedEventQuery(spokePool, spokePool.filters.FilledRelay(null, null, null, null, null, relayData.originChainId, relayData.depositId), { fromBlock: fromBlock, toBlock: toBlock, maxBlockLookBack: maxBlockLookBack }),
378
- paginatedEventQuery(spokePool, spokePool.filters.FilledV3Relay(null, null, null, null, null, relayData.originChainId, relayData.depositId), { fromBlock: fromBlock, toBlock: toBlock, maxBlockLookBack: maxBlockLookBack }),
379
- ])];
380
- case 2:
381
- query = (_d.sent()).flat();
382
- if (query.length === 0)
383
- throw new Error("Failed to find fill event at block ".concat(blockNumber));
384
- event = query[0];
385
- if (!Object.values(CHAIN_IDs).includes(relayData.originChainId)) return [3 /*break*/, 4];
386
- return [4 /*yield*/, spokePool.provider.getNetwork()];
387
- case 3:
388
- _b = (_d.sent()).chainId;
389
- return [3 /*break*/, 6];
390
- case 4:
391
- _c = Number;
392
- return [4 /*yield*/, spokePool.chainId()];
393
- case 5:
394
- _b = _c.apply(void 0, [_d.sent()]);
395
- _d.label = 6;
396
- case 6:
397
- destinationChainId = _b;
398
- fill = __assign(__assign({}, spreadEventWithBlockNumber(event)), { destinationChainId: destinationChainId, messageHash: getMessageHash(event.args.message) });
399
- return [2 /*return*/, fill];
400
- }
401
- });
402
- });
403
- }
404
67
  // Determines if the input address (either a bytes32 or bytes20) is the zero address.
405
68
  export function isZeroAddress(address) {
406
69
  return address === ZERO_ADDRESS || address === ZERO_BYTES;
@@ -1 +1 @@
1
- {"version":3,"file":"SpokeUtils.js","sourceRoot":"","sources":["../../../src/utils/SpokeUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpokeUtils.js","sourceRoot":"","sources":["../../../src/utils/SpokeUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { Contract, PopulatedTransaction, providers } from "ethers";
2
+ import { Deposit, FillStatus, FillWithBlock, RelayData } from "../../interfaces";
3
+ import { BigNumber } from "../../utils";
4
+ type BlockTag = providers.BlockTag;
5
+ /**
6
+ * @param spokePool SpokePool Contract instance.
7
+ * @param deposit V3Deopsit instance.
8
+ * @param repaymentChainId Optional repaymentChainId (defaults to destinationChainId).
9
+ * @returns An Ethers UnsignedTransaction instance.
10
+ */
11
+ export declare function populateV3Relay(spokePool: Contract, deposit: Omit<Deposit, "messageHash">, relayer: string, repaymentChainId?: number): Promise<PopulatedTransaction>;
12
+ /**
13
+ * Retrieves the time from the SpokePool contract at a particular block.
14
+ * @returns The time at the specified block tag.
15
+ */
16
+ export declare function getTimeAt(spokePool: Contract, blockNumber: number): Promise<number>;
17
+ /**
18
+ * Retrieves the chain time at a particular block.
19
+ * @note This should be the same as getTimeAt() but can differ in test. These two functions should be consolidated.
20
+ * @returns The chain time at the specified block tag.
21
+ */
22
+ export declare function getTimestampForBlock(provider: providers.Provider, blockNumber: number): Promise<number>;
23
+ /**
24
+ * Return maximum of fill deadline buffer at start and end of block range.
25
+ * @param spokePool SpokePool contract instance
26
+ * @param startBlock start block
27
+ * @param endBlock end block
28
+ * @returns maximum of fill deadline buffer at start and end block
29
+ */
30
+ export declare function getMaxFillDeadlineInRange(spokePool: Contract, startBlock: number, endBlock: number): Promise<number>;
31
+ /**
32
+ * Finds the deposit id at a specific block number.
33
+ * @param blockTag The block number to search for the deposit ID at.
34
+ * @returns The deposit ID.
35
+ */
36
+ export declare function getDepositIdAtBlock(contract: Contract, blockTag: number): Promise<BigNumber>;
37
+ export declare function findDepositBlock(spokePool: Contract, depositId: BigNumber, lowBlock: number, highBlock?: number): Promise<number | undefined>;
38
+ /**
39
+ * Find the amount filled for a deposit at a particular block.
40
+ * @param spokePool SpokePool contract instance.
41
+ * @param relayData Deposit information that is used to complete a fill.
42
+ * @param blockTag Block tag (numeric or "latest") to query at.
43
+ * @returns The amount filled for the specified deposit at the requested block (or latest).
44
+ */
45
+ export declare function relayFillStatus(spokePool: Contract, relayData: RelayData, blockTag?: number | "latest", destinationChainId?: number): Promise<FillStatus>;
46
+ export declare function fillStatusArray(spokePool: Contract, relayData: RelayData[], blockTag?: BlockTag): Promise<(FillStatus | undefined)[]>;
47
+ /**
48
+ * Find the block at which a fill was completed.
49
+ * @todo After SpokePool upgrade, this function can be simplified to use the FillStatus enum.
50
+ * @param spokePool SpokePool contract instance.
51
+ * @param relayData Deposit information that is used to complete a fill.
52
+ * @param lowBlockNumber The lower bound of the search. Must be bounded by SpokePool deployment.
53
+ * @param highBlocknumber Optional upper bound for the search.
54
+ * @returns The block number at which the relay was completed, or undefined.
55
+ */
56
+ export declare function findFillBlock(spokePool: Contract, relayData: RelayData, lowBlockNumber: number, highBlockNumber?: number): Promise<number | undefined>;
57
+ export declare function findFillEvent(spokePool: Contract, relayData: RelayData, lowBlockNumber: number, highBlockNumber?: number): Promise<FillWithBlock | undefined>;
58
+ export {};
59
+ //# sourceMappingURL=SpokeUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpokeUtils.d.ts","sourceRoot":"","sources":["../../../../src/arch/evm/SpokeUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,QAAQ,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE9E,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAEL,SAAS,EAcV,MAAM,aAAa,CAAC;AAErB,KAAK,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AAEnC;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EACrC,OAAO,EAAE,MAAM,EACf,gBAAgB,SAA6B,GAC5C,OAAO,CAAC,oBAAoB,CAAC,CAoB/B;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIzF;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7G;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,QAAQ,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAQlG;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkC7B;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,SAAS,EACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,EAC5B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,UAAU,CAAC,CAgBrB;AAED,wBAAsB,eAAe,CACnC,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,SAAS,EAAE,EACtB,QAAQ,GAAE,QAAmB,GAC5B,OAAO,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC,CA8BrC;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgD7B;AAED,wBAAsB,aAAa,CACjC,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAoCpC"}
@@ -1,2 +1,2 @@
1
- export declare const platform = "evm";
1
+ export * from "./SpokeUtils";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/arch/evm/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/arch/evm/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BundleDataClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/BundleDataClient/BundleDataClient.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAElB,uBAAuB,EAGvB,mBAAmB,EAOnB,OAAO,EACP,eAAe,EACf,aAAa,EAEb,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EACL,SAAS,EAqBV,MAAM,aAAa,CAAC;AACrB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EACL,UAAU,EAWX,MAAM,SAAS,CAAC;AAKjB,eAAO,MAAM,sBAAsB,WAAc,CAAC;AAkGlD,qBAAa,gBAAgB;IAQzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,QAAQ,CAAC,gBAAgB,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAAA;KAAE;IACjE,QAAQ,CAAC,0CAA0C,EAAE,MAAM,EAAE;IAC7D,QAAQ,CAAC,wBAAwB,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAXlE,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,gBAAgB,CAAgE;IAExF,OAAO,CAAC,oBAAoB,CAAuD;gBAIxE,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAAA;KAAE,EACxD,0CAA0C,EAAE,MAAM,EAAE,EACpD,wBAAwB,GAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAO;IAKvE,UAAU,IAAI,IAAI;YAIJ,iBAAiB;IAM/B,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE;IAOtF,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI;IAI1F,MAAM,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM;IAQpE,OAAO,CAAC,6BAA6B;IAMrC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,GAAG,eAAe,CAAC,GAAG,IAAI;YA6B3E,4BAA4B;IAyDpC,iCAAiC,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAiB/D,2BAA2B,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IA0CjF,kCAAkC,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAqE/G,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,SAAS;IAkB5F,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAmFxD,kBAAkB,CAChB,eAAe,EAAE,eAAe,EAChC,iBAAiB,EAAE,MAAM,GACxB;QACD,CAAC,YAAY,EAAE,MAAM,GAAG;YACtB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;SAC9B,CAAC;KACH;IAuCD,OAAO,CAAC,qBAAqB;IAkC7B,aAAa,CAAC,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;IAQzG,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS;YAM9F,eAAe;IAavB,QAAQ,CACZ,oBAAoB,EAAE,MAAM,EAAE,EAAE,EAChC,gBAAgB,EAAE,uBAAuB,EACzC,kBAAkB,UAAQ,GACzB,OAAO,CAAC,mBAAmB,CAAC;YAqBjB,mBAAmB;cAy2BjB,qBAAqB,CACnC,OAAO,EAAE,gBAAgB,EACzB,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAa/B,wBAAwB,CAC5B,QAAQ,EAAE,MAAM,EAAE,EAClB,oBAAoB,EAAE,MAAM,EAAE,EAAE,EAChC,gBAAgB,EAAE,uBAAuB,GACxC,OAAO,CAAC;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;CAkD5C"}
1
+ {"version":3,"file":"BundleDataClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/BundleDataClient/BundleDataClient.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,11 @@ import { Infer } from "superstruct";
2
2
  import { BigNumber } from "../../../utils";
3
3
  export declare const BundleDataSS: import("superstruct").Struct<{
4
4
  bundleDepositsV3: Record<string, Record<string, {
5
+ message: string;
5
6
  blockNumber: number;
6
7
  transactionIndex: number;
7
8
  logIndex: number;
8
9
  transactionHash: string;
9
- message: string;
10
10
  originChainId: number;
11
11
  inputToken: string;
12
12
  inputAmount: BigNumber;
@@ -67,11 +67,11 @@ export declare const BundleDataSS: import("superstruct").Struct<{
67
67
  totalRefundAmount: BigNumber;
68
68
  }>>;
69
69
  bundleSlowFillsV3: Record<string, Record<string, {
70
+ message: string;
70
71
  blockNumber: number;
71
72
  transactionIndex: number;
72
73
  logIndex: number;
73
74
  transactionHash: string;
74
- message: string;
75
75
  originChainId: number;
76
76
  inputToken: string;
77
77
  inputAmount: BigNumber;
@@ -97,11 +97,11 @@ export declare const BundleDataSS: import("superstruct").Struct<{
97
97
  relayerFeePct?: BigNumber | undefined;
98
98
  }[]>>;
99
99
  expiredDepositsToRefundV3: Record<string, Record<string, {
100
+ message: string;
100
101
  blockNumber: number;
101
102
  transactionIndex: number;
102
103
  logIndex: number;
103
104
  transactionHash: string;
104
- message: string;
105
105
  originChainId: number;
106
106
  inputToken: string;
107
107
  inputAmount: BigNumber;
@@ -126,11 +126,11 @@ export declare const BundleDataSS: import("superstruct").Struct<{
126
126
  relayerFeePct?: BigNumber | undefined;
127
127
  }[]>>;
128
128
  unexecutableSlowFills: Record<string, Record<string, {
129
+ message: string;
129
130
  blockNumber: number;
130
131
  transactionIndex: number;
131
132
  logIndex: number;
132
133
  transactionHash: string;
133
- message: string;
134
134
  originChainId: number;
135
135
  inputToken: string;
136
136
  inputAmount: BigNumber;
@@ -157,11 +157,11 @@ export declare const BundleDataSS: import("superstruct").Struct<{
157
157
  }[]>>;
158
158
  }, {
159
159
  bundleDepositsV3: import("superstruct").Struct<Record<string, Record<string, {
160
+ message: string;
160
161
  blockNumber: number;
161
162
  transactionIndex: number;
162
163
  logIndex: number;
163
164
  transactionHash: string;
164
- message: string;
165
165
  originChainId: number;
166
166
  inputToken: string;
167
167
  inputAmount: BigNumber;
@@ -186,11 +186,11 @@ export declare const BundleDataSS: import("superstruct").Struct<{
186
186
  relayerFeePct?: BigNumber | undefined;
187
187
  }[]>>, null>;
188
188
  expiredDepositsToRefundV3: import("superstruct").Struct<Record<string, Record<string, {
189
+ message: string;
189
190
  blockNumber: number;
190
191
  transactionIndex: number;
191
192
  logIndex: number;
192
193
  transactionHash: string;
193
- message: string;
194
194
  originChainId: number;
195
195
  inputToken: string;
196
196
  inputAmount: BigNumber;
@@ -215,11 +215,11 @@ export declare const BundleDataSS: import("superstruct").Struct<{
215
215
  relayerFeePct?: BigNumber | undefined;
216
216
  }[]>>, null>;
217
217
  unexecutableSlowFills: import("superstruct").Struct<Record<string, Record<string, {
218
+ message: string;
218
219
  blockNumber: number;
219
220
  transactionIndex: number;
220
221
  logIndex: number;
221
222
  transactionHash: string;
222
- message: string;
223
223
  originChainId: number;
224
224
  inputToken: string;
225
225
  inputAmount: BigNumber;
@@ -245,11 +245,11 @@ export declare const BundleDataSS: import("superstruct").Struct<{
245
245
  relayerFeePct?: BigNumber | undefined;
246
246
  }[]>>, null>;
247
247
  bundleSlowFillsV3: import("superstruct").Struct<Record<string, Record<string, {
248
+ message: string;
248
249
  blockNumber: number;
249
250
  transactionIndex: number;
250
251
  logIndex: number;
251
252
  transactionHash: string;
252
- message: string;
253
253
  originChainId: number;
254
254
  inputToken: string;
255
255
  inputAmount: BigNumber;
@@ -1,17 +1,18 @@
1
1
  import { Contract } from "ethers";
2
+ import { FillStatus, RelayData } from "../../interfaces";
2
3
  import { BigNumber, DepositSearchResult, MakeOptional } from "../../utils";
3
4
  import { EventSearchConfig } from "../../utils/EventUtils";
4
5
  import { SpokePoolClient, SpokePoolUpdate } from "./SpokePoolClient";
5
6
  import winston from "winston";
6
7
  import { HubPoolClient } from "../HubPoolClient";
7
- import { FillStatus, RelayData } from "../../interfaces";
8
8
  /**
9
9
  * An EVM-specific SpokePoolClient.
10
10
  */
11
11
  export declare class EVMSpokePoolClient extends SpokePoolClient {
12
12
  readonly spokePool: Contract;
13
13
  constructor(logger: winston.Logger, spokePool: Contract, hubPoolClient: HubPoolClient | null, chainId: number, deploymentBlock: number, eventSearchConfig?: MakeOptional<EventSearchConfig, "toBlock">);
14
- relayFillStatus(relayData: RelayData, blockTag?: number | "latest", destinationChainId?: number): Promise<FillStatus>;
14
+ relayFillStatus(relayData: RelayData, blockTag?: number | "latest"): Promise<FillStatus>;
15
+ fillStatusArray(relayData: RelayData[], blockTag?: number | "latest"): Promise<(FillStatus | undefined)[]>;
15
16
  getMaxFillDeadlineInRange(startBlock: number, endBlock: number): Promise<number>;
16
17
  private _availableEventsOnSpoke;
17
18
  _queryableEventNames(): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"EVMSpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/EVMSpokePoolClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAA+B,YAAY,EAAQ,MAAM,aAAa,CAAC;AAC9G,OAAO,EACL,iBAAiB,EAIlB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAmB,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AASjD,OAAO,EAAoB,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE3E;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;aAGnC,SAAS,EAAE,QAAQ;gBADnC,MAAM,EAAE,OAAO,CAAC,MAAM,EACN,SAAS,EAAE,QAAQ,EACnC,aAAa,EAAE,aAAa,GAAG,IAAI,EACnC,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,iBAAiB,GAAE,YAAY,CAAC,iBAAiB,EAAE,SAAS,CAAyC;IAKvF,eAAe,CAC7B,SAAS,EAAE,SAAS,EACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,EAC5B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,UAAU,CAAC;IAIN,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhG,OAAO,CAAC,uBAAuB;IAQf,oBAAoB,IAAI,MAAM,EAAE;cAIvB,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAmEnE,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzC,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAsErE,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG3E"}
1
+ {"version":3,"file":"EVMSpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/EVMSpokePoolClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,MAAM,QAAQ,CAAC;AAS/C,OAAO,EAAoB,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EACL,SAAS,EACT,mBAAmB,EAInB,YAAY,EAEb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EAIlB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAmB,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;aAGnC,SAAS,EAAE,QAAQ;gBADnC,MAAM,EAAE,OAAO,CAAC,MAAM,EACN,SAAS,EAAE,QAAQ,EACnC,aAAa,EAAE,aAAa,GAAG,IAAI,EACnC,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,iBAAiB,GAAE,YAAY,CAAC,iBAAiB,EAAE,SAAS,CAAyC;IAKvF,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAIxF,eAAe,CAC7B,SAAS,EAAE,SAAS,EAAE,EACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAC3B,OAAO,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC;IAItB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhG,OAAO,CAAC,uBAAuB;IAQf,oBAAoB,IAAI,MAAM,EAAE;cAIvB,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAmEnE,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzC,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAsErE,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG3E"}