@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.
- package/dist/cjs/arch/evm/SpokeUtils.d.ts +15 -0
- package/dist/cjs/arch/evm/SpokeUtils.js +312 -0
- package/dist/cjs/arch/evm/SpokeUtils.js.map +1 -0
- package/dist/cjs/arch/evm/index.d.ts +1 -1
- package/dist/cjs/arch/evm/index.js +2 -2
- package/dist/cjs/arch/evm/index.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +3 -2
- package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +8 -8
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -2
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +11 -8
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.d.ts +2 -1
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/providers/types.d.ts +2 -2
- package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +2 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
- package/dist/cjs/utils/DepositUtils.js +1 -1
- package/dist/cjs/utils/DepositUtils.js.map +1 -1
- package/dist/cjs/utils/SpokeUtils.d.ts +2 -14
- package/dist/cjs/utils/SpokeUtils.js +8 -313
- package/dist/cjs/utils/SpokeUtils.js.map +1 -1
- package/dist/esm/arch/evm/SpokeUtils.d.ts +58 -0
- package/dist/esm/arch/evm/SpokeUtils.js +345 -0
- package/dist/esm/arch/evm/SpokeUtils.js.map +1 -0
- package/dist/esm/arch/evm/index.d.ts +1 -1
- package/dist/esm/arch/evm/index.js +1 -1
- package/dist/esm/arch/evm/index.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js +3 -2
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +8 -8
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -2
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +7 -4
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.d.ts +9 -1
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/providers/types.d.ts +2 -2
- package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +2 -1
- package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
- package/dist/esm/utils/DepositUtils.js +2 -1
- package/dist/esm/utils/DepositUtils.js.map +1 -1
- package/dist/esm/utils/SpokeUtils.d.ts +5 -55
- package/dist/esm/utils/SpokeUtils.js +11 -348
- package/dist/esm/utils/SpokeUtils.js.map +1 -1
- package/dist/types/arch/evm/SpokeUtils.d.ts +59 -0
- package/dist/types/arch/evm/SpokeUtils.d.ts.map +1 -0
- package/dist/types/arch/evm/index.d.ts +1 -1
- package/dist/types/arch/evm/index.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +8 -8
- package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -2
- package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts +9 -1
- package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/providers/types.d.ts +2 -2
- package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts.map +1 -1
- package/dist/types/utils/DepositUtils.d.ts.map +1 -1
- package/dist/types/utils/SpokeUtils.d.ts +5 -55
- package/dist/types/utils/SpokeUtils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/arch/evm/SpokeUtils.ts +324 -0
- package/src/arch/evm/index.ts +1 -1
- package/src/clients/BundleDataClient/BundleDataClient.ts +2 -3
- package/src/clients/SpokePoolClient/EVMSpokePoolClient.ts +27 -16
- package/src/clients/SpokePoolClient/SpokePoolClient.ts +13 -5
- package/src/index.ts +1 -0
- package/src/relayFeeCalculator/chain-queries/baseQuery.ts +1 -1
- package/src/utils/DepositUtils.ts +2 -1
- package/src/utils/SpokeUtils.ts +16 -314
|
@@ -1,25 +1,17 @@
|
|
|
1
|
-
import { __assign
|
|
2
|
-
import assert from "assert";
|
|
1
|
+
import { __assign } from "tslib";
|
|
3
2
|
import { utils as ethersUtils } from "ethers";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
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
|
-
*
|
|
16
|
-
* @param deposit
|
|
17
|
-
* @
|
|
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
|
|
21
|
-
|
|
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:
|
|
134
|
-
return
|
|
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
|
|
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,
|
|
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;
|
|
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"
|
|
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;
|
|
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"}
|