@across-protocol/sdk 4.0.2 → 4.0.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.
- package/dist/cjs/clients/BundleDataClient/BundleDataClient.d.ts +3 -3
- package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +38 -18
- package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/FillUtils.d.ts +3 -0
- package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js +20 -10
- package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +14 -2
- package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.js +4 -1
- package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient.js +155 -88
- package/dist/cjs/clients/SpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/mocks/MockSpokePoolClient.d.ts +20 -6
- package/dist/cjs/clients/mocks/MockSpokePoolClient.js +77 -35
- package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -1
- package/dist/cjs/constants.d.ts +2 -1
- package/dist/cjs/constants.js +3 -2
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/interfaces/SpokePool.d.ts +6 -2
- package/dist/cjs/interfaces/SpokePool.js.map +1 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.d.ts +3 -3
- package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
- package/dist/cjs/relayFeeCalculator/relayFeeCalculator.d.ts +1 -1
- package/dist/cjs/utils/AddressUtils.d.ts +1 -0
- package/dist/cjs/utils/AddressUtils.js +5 -1
- package/dist/cjs/utils/AddressUtils.js.map +1 -1
- package/dist/cjs/utils/CachingUtils.js +1 -1
- package/dist/cjs/utils/CachingUtils.js.map +1 -1
- package/dist/cjs/utils/DepositUtils.d.ts +1 -1
- package/dist/cjs/utils/DepositUtils.js +11 -8
- package/dist/cjs/utils/DepositUtils.js.map +1 -1
- package/dist/cjs/utils/FlowUtils.d.ts +4 -3
- package/dist/cjs/utils/FlowUtils.js +5 -1
- package/dist/cjs/utils/FlowUtils.js.map +1 -1
- package/dist/cjs/utils/SpokeUtils.d.ts +9 -3
- package/dist/cjs/utils/SpokeUtils.js +22 -2
- package/dist/cjs/utils/SpokeUtils.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/BundleDataClient.d.ts +3 -3
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js +42 -24
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/FillUtils.d.ts +3 -0
- package/dist/esm/clients/BundleDataClient/utils/FillUtils.js +20 -11
- package/dist/esm/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +14 -2
- package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.js +4 -1
- package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient.js +172 -92
- package/dist/esm/clients/SpokePoolClient.js.map +1 -1
- package/dist/esm/clients/mocks/MockSpokePoolClient.d.ts +20 -6
- package/dist/esm/clients/mocks/MockSpokePoolClient.js +79 -37
- package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -1
- package/dist/esm/constants.d.ts +2 -1
- package/dist/esm/constants.js +6 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/interfaces/SpokePool.d.ts +6 -2
- package/dist/esm/interfaces/SpokePool.js.map +1 -1
- package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.d.ts +3 -3
- package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
- package/dist/esm/relayFeeCalculator/relayFeeCalculator.d.ts +1 -1
- package/dist/esm/utils/AddressUtils.d.ts +1 -0
- package/dist/esm/utils/AddressUtils.js +7 -4
- package/dist/esm/utils/AddressUtils.js.map +1 -1
- package/dist/esm/utils/CachingUtils.js +2 -2
- package/dist/esm/utils/CachingUtils.js.map +1 -1
- package/dist/esm/utils/DepositUtils.d.ts +1 -1
- package/dist/esm/utils/DepositUtils.js +12 -9
- package/dist/esm/utils/DepositUtils.js.map +1 -1
- package/dist/esm/utils/FlowUtils.d.ts +4 -3
- package/dist/esm/utils/FlowUtils.js +6 -1
- package/dist/esm/utils/FlowUtils.js.map +1 -1
- package/dist/esm/utils/SpokeUtils.d.ts +16 -3
- package/dist/esm/utils/SpokeUtils.js +27 -1
- package/dist/esm/utils/SpokeUtils.js.map +1 -1
- package/dist/esm/utils/abi/typechain/Multicall3.d.ts +4 -1
- package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.js.map +1 -1
- package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts +3 -3
- package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/utils/FillUtils.d.ts +3 -0
- package/dist/types/clients/BundleDataClient/utils/FillUtils.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +14 -2
- package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/mocks/MockSpokePoolClient.d.ts +20 -6
- package/dist/types/clients/mocks/MockSpokePoolClient.d.ts.map +1 -1
- package/dist/types/constants.d.ts +2 -1
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/interfaces/SpokePool.d.ts +6 -2
- package/dist/types/interfaces/SpokePool.d.ts.map +1 -1
- package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts +3 -3
- package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts.map +1 -1
- package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts +1 -1
- package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts.map +1 -1
- package/dist/types/utils/AddressUtils.d.ts +1 -0
- package/dist/types/utils/AddressUtils.d.ts.map +1 -1
- package/dist/types/utils/DepositUtils.d.ts +1 -1
- package/dist/types/utils/DepositUtils.d.ts.map +1 -1
- package/dist/types/utils/FlowUtils.d.ts +4 -3
- package/dist/types/utils/FlowUtils.d.ts.map +1 -1
- package/dist/types/utils/SpokeUtils.d.ts +16 -3
- package/dist/types/utils/SpokeUtils.d.ts.map +1 -1
- package/dist/types/utils/abi/typechain/Multicall3.d.ts +4 -1
- package/dist/types/utils/abi/typechain/Multicall3.d.ts.map +1 -1
- package/dist/types/utils/abi/typechain/common.d.ts.map +1 -1
- package/dist/types/utils/abi/typechain/factories/Multicall3__factory.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/clients/BundleDataClient/BundleDataClient.ts +47 -30
- package/src/clients/BundleDataClient/utils/FillUtils.ts +26 -13
- package/src/clients/BundleDataClient/utils/SuperstructUtils.ts +7 -1
- package/src/clients/SpokePoolClient.ts +119 -41
- package/src/clients/mocks/MockSpokePoolClient.ts +134 -36
- package/src/constants.ts +6 -1
- package/src/interfaces/SpokePool.ts +6 -2
- package/src/relayFeeCalculator/chain-queries/baseQuery.ts +6 -3
- package/src/relayFeeCalculator/relayFeeCalculator.ts +1 -1
- package/src/utils/AddressUtils.ts +8 -4
- package/src/utils/CachingUtils.ts +2 -2
- package/src/utils/DepositUtils.ts +8 -3
- package/src/utils/FlowUtils.ts +10 -4
- package/src/utils/SpokeUtils.ts +33 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FillUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/FillUtils.ts"],"names":[],"mappings":";AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAGvB,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG7G,MAAM,UAAU,4BAA4B,CAC1C,IAAU,EACV,aAA4B,EAC5B,oBAAgC,EAChC,0CAAoD,EACpD,aAAsB;IAKtB,uGAAuG;IACvG,wGAAwG;IACxG,IAAI,mBAAmB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAC7F,wGAAwG;IACxG,oGAAoG;IACpG,8FAA8F;IAC9F,IAAI,aAAa,EAAE;QACjB,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC;KAC1C;IAED,kGAAkG;IAClG,IAAM,kBAAkB,GAAG,qBAAqB,CAC9C,oBAAoB,EACpB,aAAa,CAAC,OAAO,EACrB,0CAA0C,CAC3C,CAAC,CAAC,CAAC,CAAC;IAEL,IAAM,kBAAkB,GAAG,aAAa,CAAC,2BAA2B,CAClE,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,aAAa,EAClB,kBAAkB,CACnB,CAAC;IAEF,IAAM,cAAc,GAAG,aAAa,CAAC,2BAA2B,CAC9D,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,CACnB,CAAC;IACF,OAAO;QACL,mBAAmB,qBAAA;QACnB,cAAc,gBAAA;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAU,EAAE,cAAuB;IACrE,uDAAuD;IACvD,OAAO,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC7F,CAAC;AAED,oGAAoG;AACpG,mFAAmF;AACnF,MAAM,UAAgB,mBAAmB,CACvC,KAAoB,EACpB,wBAA4C,EAC5C,cAAgC,EAChC,aAA4B;;;;;;oBAEtB,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAEhC,iEAAiE;oBACjE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;wBACpB,sBAAO,IAAI,EAAC;qBACb;oBAEG,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;oBAEjE,wGAAwG;oBACxG,kCAAkC;oBAClC,IAAI,
|
|
1
|
+
{"version":3,"file":"FillUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/FillUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Infer } from "superstruct";
|
|
1
2
|
import { BigNumber } from "../../../utils";
|
|
2
3
|
export declare const BundleDataSS: import("superstruct").Struct<{
|
|
3
4
|
bundleDepositsV3: Record<string, Record<string, {
|
|
@@ -10,6 +11,7 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
10
11
|
inputToken: string;
|
|
11
12
|
inputAmount: BigNumber;
|
|
12
13
|
quoteTimestamp: number;
|
|
14
|
+
messageHash: string;
|
|
13
15
|
destinationChainId: number;
|
|
14
16
|
fromLiteChain: boolean;
|
|
15
17
|
toLiteChain: boolean;
|
|
@@ -39,6 +41,7 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
39
41
|
inputToken: string;
|
|
40
42
|
inputAmount: BigNumber;
|
|
41
43
|
quoteTimestamp: number;
|
|
44
|
+
messageHash: string;
|
|
42
45
|
destinationChainId: number;
|
|
43
46
|
depositor: string;
|
|
44
47
|
recipient: string;
|
|
@@ -55,9 +58,9 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
55
58
|
updatedOutputAmount: BigNumber;
|
|
56
59
|
updatedMessage: string;
|
|
57
60
|
fillType: number;
|
|
61
|
+
updatedMessageHash: string;
|
|
58
62
|
};
|
|
59
63
|
lpFeePct: BigNumber;
|
|
60
|
-
messageHash?: string | undefined;
|
|
61
64
|
}[];
|
|
62
65
|
refunds: Record<string, BigNumber>;
|
|
63
66
|
realizedLpFees: BigNumber;
|
|
@@ -73,6 +76,7 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
73
76
|
inputToken: string;
|
|
74
77
|
inputAmount: BigNumber;
|
|
75
78
|
quoteTimestamp: number;
|
|
79
|
+
messageHash: string;
|
|
76
80
|
destinationChainId: number;
|
|
77
81
|
fromLiteChain: boolean;
|
|
78
82
|
toLiteChain: boolean;
|
|
@@ -102,6 +106,7 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
102
106
|
inputToken: string;
|
|
103
107
|
inputAmount: BigNumber;
|
|
104
108
|
quoteTimestamp: number;
|
|
109
|
+
messageHash: string;
|
|
105
110
|
destinationChainId: number;
|
|
106
111
|
fromLiteChain: boolean;
|
|
107
112
|
toLiteChain: boolean;
|
|
@@ -130,6 +135,7 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
130
135
|
inputToken: string;
|
|
131
136
|
inputAmount: BigNumber;
|
|
132
137
|
quoteTimestamp: number;
|
|
138
|
+
messageHash: string;
|
|
133
139
|
destinationChainId: number;
|
|
134
140
|
fromLiteChain: boolean;
|
|
135
141
|
toLiteChain: boolean;
|
|
@@ -160,6 +166,7 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
160
166
|
inputToken: string;
|
|
161
167
|
inputAmount: BigNumber;
|
|
162
168
|
quoteTimestamp: number;
|
|
169
|
+
messageHash: string;
|
|
163
170
|
destinationChainId: number;
|
|
164
171
|
fromLiteChain: boolean;
|
|
165
172
|
toLiteChain: boolean;
|
|
@@ -188,6 +195,7 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
188
195
|
inputToken: string;
|
|
189
196
|
inputAmount: BigNumber;
|
|
190
197
|
quoteTimestamp: number;
|
|
198
|
+
messageHash: string;
|
|
191
199
|
destinationChainId: number;
|
|
192
200
|
fromLiteChain: boolean;
|
|
193
201
|
toLiteChain: boolean;
|
|
@@ -216,6 +224,7 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
216
224
|
inputToken: string;
|
|
217
225
|
inputAmount: BigNumber;
|
|
218
226
|
quoteTimestamp: number;
|
|
227
|
+
messageHash: string;
|
|
219
228
|
destinationChainId: number;
|
|
220
229
|
fromLiteChain: boolean;
|
|
221
230
|
toLiteChain: boolean;
|
|
@@ -245,6 +254,7 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
245
254
|
inputToken: string;
|
|
246
255
|
inputAmount: BigNumber;
|
|
247
256
|
quoteTimestamp: number;
|
|
257
|
+
messageHash: string;
|
|
248
258
|
destinationChainId: number;
|
|
249
259
|
fromLiteChain: boolean;
|
|
250
260
|
toLiteChain: boolean;
|
|
@@ -275,6 +285,7 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
275
285
|
inputToken: string;
|
|
276
286
|
inputAmount: BigNumber;
|
|
277
287
|
quoteTimestamp: number;
|
|
288
|
+
messageHash: string;
|
|
278
289
|
destinationChainId: number;
|
|
279
290
|
depositor: string;
|
|
280
291
|
recipient: string;
|
|
@@ -291,12 +302,13 @@ export declare const BundleDataSS: import("superstruct").Struct<{
|
|
|
291
302
|
updatedOutputAmount: BigNumber;
|
|
292
303
|
updatedMessage: string;
|
|
293
304
|
fillType: number;
|
|
305
|
+
updatedMessageHash: string;
|
|
294
306
|
};
|
|
295
307
|
lpFeePct: BigNumber;
|
|
296
|
-
messageHash?: string | undefined;
|
|
297
308
|
}[];
|
|
298
309
|
refunds: Record<string, BigNumber>;
|
|
299
310
|
realizedLpFees: BigNumber;
|
|
300
311
|
totalRefundAmount: BigNumber;
|
|
301
312
|
}>>, null>;
|
|
302
313
|
}>;
|
|
314
|
+
export type BundleData = Infer<typeof BundleDataSS>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { __assign } from "tslib";
|
|
2
2
|
import { object, number, optional, string, array, record, coerce, instance, pattern, boolean, defaulted, union, type, } from "superstruct";
|
|
3
|
+
import { UNDEFINED_MESSAGE_HASH } from "../../../constants";
|
|
3
4
|
import { BigNumber } from "../../../utils";
|
|
4
5
|
var PositiveIntegerStringSS = pattern(string(), /\d+/);
|
|
5
6
|
var Web3AddressSS = pattern(string(), /^0x[a-fA-F0-9]{40}$/);
|
|
@@ -36,6 +37,7 @@ var SortableEventSS = {
|
|
|
36
37
|
transactionHash: string(),
|
|
37
38
|
};
|
|
38
39
|
var V3DepositSS = {
|
|
40
|
+
messageHash: defaulted(string(), UNDEFINED_MESSAGE_HASH),
|
|
39
41
|
fromLiteChain: defaulted(boolean(), false),
|
|
40
42
|
toLiteChain: defaulted(boolean(), false),
|
|
41
43
|
destinationChainId: number(),
|
|
@@ -54,8 +56,9 @@ var V3RelayExecutionEventInfoSS = object({
|
|
|
54
56
|
fillType: FillTypeSS,
|
|
55
57
|
updatedRecipient: string(),
|
|
56
58
|
updatedMessage: string(),
|
|
59
|
+
updatedMessageHash: defaulted(string(), UNDEFINED_MESSAGE_HASH),
|
|
57
60
|
});
|
|
58
|
-
var V3FillSS = __assign(__assign({}, V3RelayDataSS), { destinationChainId: number(), relayer: string(), repaymentChainId: number(), relayExecutionInfo: V3RelayExecutionEventInfoSS, quoteTimestamp: number()
|
|
61
|
+
var V3FillSS = __assign(__assign({}, V3RelayDataSS), { messageHash: defaulted(string(), UNDEFINED_MESSAGE_HASH), destinationChainId: number(), relayer: string(), repaymentChainId: number(), relayExecutionInfo: V3RelayExecutionEventInfoSS, quoteTimestamp: number() });
|
|
59
62
|
var V3FillWithBlockSS = __assign(__assign({}, SortableEventSS), V3FillSS);
|
|
60
63
|
var BundleFillV3SS = object(__assign(__assign({}, V3FillWithBlockSS), { lpFeePct: BigNumberType }));
|
|
61
64
|
var nestedV3DepositRecordSS = record(PositiveIntegerStringSS, record(Web3AddressSS, array(V3DepositWithBlockSS)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SuperstructUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/SuperstructUtils.ts"],"names":[],"mappings":";AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"SuperstructUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/SuperstructUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { __assign, __awaiter, __extends, __generator, __spreadArray } from "tslib";
|
|
2
|
-
import { BigNumber, bnZero, MAX_BIG_INT, assign,
|
|
2
|
+
import { BigNumber, bnZero, MAX_BIG_INT, assign, getRelayEventKey, isDefined, toBN, bnOne, getMessageHash, isUnsafeDepositId, isSlowFill, isValidEvmAddress, isZeroAddress, } from "../utils";
|
|
3
3
|
import { paginatedEventQuery, sortEventsAscendingInPlace, spreadEvent, spreadEventWithBlockNumber, } from "../utils/EventUtils";
|
|
4
4
|
import { validateFillForDeposit } from "../utils/FlowUtils";
|
|
5
5
|
import { ZERO_ADDRESS } from "../constants";
|
|
6
6
|
import { getNetworkName } from "../utils/NetworkUtils";
|
|
7
7
|
import { getBlockRangeForDepositId, getDepositIdAtBlock, relayFillStatus } from "../utils/SpokeUtils";
|
|
8
8
|
import { BaseAbstractClient, isUpdateFailureReason } from "./BaseAbstractClient";
|
|
9
|
+
import { getRepaymentChainId, forceDestinationRepayment } from "./BundleDataClient/utils/FillUtils";
|
|
9
10
|
/**
|
|
10
11
|
* SpokePoolClient is a client for the SpokePool contract. It is responsible for querying the SpokePool contract
|
|
11
12
|
* for events and storing them in memory. It also provides some convenience methods for querying the stored events.
|
|
@@ -93,7 +94,7 @@ var SpokePoolClient = /** @class */ (function (_super) {
|
|
|
93
94
|
*/
|
|
94
95
|
SpokePoolClient.prototype._getDuplicateDeposits = function (deposit) {
|
|
95
96
|
var _a;
|
|
96
|
-
var depositHash =
|
|
97
|
+
var depositHash = getRelayEventKey(deposit);
|
|
97
98
|
return (_a = this.duplicateDepositHashes[depositHash]) !== null && _a !== void 0 ? _a : [];
|
|
98
99
|
};
|
|
99
100
|
/**
|
|
@@ -229,8 +230,10 @@ var SpokePoolClient = /** @class */ (function (_super) {
|
|
|
229
230
|
* @returns The corresponding deposit if found, undefined otherwise.
|
|
230
231
|
*/
|
|
231
232
|
SpokePoolClient.prototype.getDeposit = function (depositId) {
|
|
232
|
-
|
|
233
|
-
|
|
233
|
+
return Object.values(this.depositHashes).find(function (_a) {
|
|
234
|
+
var _depositId = _a.depositId;
|
|
235
|
+
return _depositId.eq(depositId);
|
|
236
|
+
});
|
|
234
237
|
};
|
|
235
238
|
/**
|
|
236
239
|
* Find a SlowFillRequested event based on its deposit RelayData.
|
|
@@ -238,7 +241,8 @@ var SpokePoolClient = /** @class */ (function (_super) {
|
|
|
238
241
|
* @returns The corresponding SlowFIllRequest event if found, otherwise undefined.
|
|
239
242
|
*/
|
|
240
243
|
SpokePoolClient.prototype.getSlowFillRequest = function (relayData) {
|
|
241
|
-
var
|
|
244
|
+
var messageHash = getMessageHash(relayData.message);
|
|
245
|
+
var hash = getRelayEventKey(__assign(__assign({}, relayData), { messageHash: messageHash, destinationChainId: this.chainId }));
|
|
242
246
|
return this.slowFillRequests[hash];
|
|
243
247
|
};
|
|
244
248
|
/**
|
|
@@ -262,7 +266,7 @@ var SpokePoolClient = /** @class */ (function (_super) {
|
|
|
262
266
|
* @returns The corresponding deposit if found, undefined otherwise.
|
|
263
267
|
*/
|
|
264
268
|
SpokePoolClient.prototype.getDepositForFill = function (fill) {
|
|
265
|
-
var deposit = this.depositHashes[
|
|
269
|
+
var deposit = this.depositHashes[getRelayEventKey(fill)];
|
|
266
270
|
var match = validateFillForDeposit(fill, deposit);
|
|
267
271
|
if (match.valid) {
|
|
268
272
|
return deposit;
|
|
@@ -282,7 +286,7 @@ var SpokePoolClient = /** @class */ (function (_super) {
|
|
|
282
286
|
* @returns A valid fill for the deposit, or undefined.
|
|
283
287
|
*/
|
|
284
288
|
SpokePoolClient.prototype.getFillForDeposit = function (deposit) {
|
|
285
|
-
var fills = this.depositHashesToFills[
|
|
289
|
+
var fills = this.depositHashesToFills[getRelayEventKey(deposit)];
|
|
286
290
|
return fills === null || fills === void 0 ? void 0 : fills.find(function (fill) { return validateFillForDeposit(fill, deposit); });
|
|
287
291
|
};
|
|
288
292
|
/**
|
|
@@ -293,21 +297,37 @@ var SpokePoolClient = /** @class */ (function (_super) {
|
|
|
293
297
|
* @returns The unfilled amount.
|
|
294
298
|
*/
|
|
295
299
|
SpokePoolClient.prototype.getValidUnfilledAmountForDeposit = function (deposit) {
|
|
300
|
+
var _this = this;
|
|
296
301
|
var outputAmount = deposit.outputAmount;
|
|
297
|
-
var fillsForDeposit = this.depositHashesToFills[
|
|
302
|
+
var fillsForDeposit = this.depositHashesToFills[getRelayEventKey(deposit)];
|
|
298
303
|
// If no fills then the full amount is remaining.
|
|
299
304
|
if (fillsForDeposit === undefined || fillsForDeposit.length === 0) {
|
|
300
305
|
return { unfilledAmount: outputAmount, fillCount: 0, invalidFills: [] };
|
|
301
306
|
}
|
|
302
307
|
var _a = fillsForDeposit.reduce(function (groupedFills, fill) {
|
|
303
308
|
if (validateFillForDeposit(fill, deposit).valid) {
|
|
309
|
+
var repaymentChainId = getRepaymentChainId(fill, deposit);
|
|
310
|
+
// In order to keep this function sync, we can't call verifyFillRepayment so we'll log any fills that
|
|
311
|
+
// we'll have to overwrite repayment information for. This includes fills for lite chains where the
|
|
312
|
+
// repayment address is invalid, and fills for non-lite chains where the repayment address is valid or
|
|
313
|
+
// the repayment chain is invalid. We don't check that the origin chain is a valid EVM chain for
|
|
314
|
+
// lite chain deposits yet because only EVM chains are supported on Across...for now. This means
|
|
315
|
+
// this logic will have to be revisited when we add SVM to log properly.
|
|
316
|
+
if (_this.hubPoolClient &&
|
|
317
|
+
!isSlowFill(fill) &&
|
|
318
|
+
(!isValidEvmAddress(fill.relayer) ||
|
|
319
|
+
forceDestinationRepayment(repaymentChainId, __assign(__assign({}, deposit), { quoteBlockNumber: _this.hubPoolClient.latestBlockSearched }), _this.hubPoolClient))) {
|
|
320
|
+
groupedFills.unrepayableFills.push(fill);
|
|
321
|
+
}
|
|
322
|
+
// This fill is still valid and means that the deposit cannot be filled on-chain anymore, but it
|
|
323
|
+
// also can be unrepayable which we should want to log.
|
|
304
324
|
groupedFills.validFills.push(fill);
|
|
305
325
|
}
|
|
306
326
|
else {
|
|
307
327
|
groupedFills.invalidFills.push(fill);
|
|
308
328
|
}
|
|
309
329
|
return groupedFills;
|
|
310
|
-
}, { validFills: [], invalidFills: [] }), validFills = _a.validFills, invalidFills = _a.invalidFills;
|
|
330
|
+
}, { validFills: [], invalidFills: [], unrepayableFills: [] }), validFills = _a.validFills, invalidFills = _a.invalidFills, unrepayableFills = _a.unrepayableFills;
|
|
311
331
|
// Log any invalid deposits with same deposit id but different params.
|
|
312
332
|
var invalidFillsForDeposit = invalidFills.filter(function (x) { return x.depositId.eq(deposit.depositId); });
|
|
313
333
|
if (invalidFillsForDeposit.length > 0) {
|
|
@@ -320,6 +340,17 @@ var SpokePoolClient = /** @class */ (function (_super) {
|
|
|
320
340
|
notificationPath: "across-invalid-fills",
|
|
321
341
|
});
|
|
322
342
|
}
|
|
343
|
+
var unrepayableFillsForDeposit = unrepayableFills.filter(function (x) { return x.depositId.eq(deposit.depositId); });
|
|
344
|
+
if (unrepayableFillsForDeposit.length > 0) {
|
|
345
|
+
this.logger.warn({
|
|
346
|
+
at: "SpokePoolClient",
|
|
347
|
+
chainId: this.chainId,
|
|
348
|
+
message: "Unrepayable fills found where we need to switch repayment address and or chain",
|
|
349
|
+
deposit: deposit,
|
|
350
|
+
unrepayableFills: Object.fromEntries(unrepayableFillsForDeposit.map(function (x) { return [x.relayer, x]; })),
|
|
351
|
+
notificationPath: "across-unrepayable-fills",
|
|
352
|
+
});
|
|
353
|
+
}
|
|
323
354
|
// If all fills are invalid we can consider this unfilled.
|
|
324
355
|
if (validFills.length === 0) {
|
|
325
356
|
return { unfilledAmount: outputAmount, fillCount: 0, invalidFills: invalidFills };
|
|
@@ -470,129 +501,178 @@ var SpokePoolClient = /** @class */ (function (_super) {
|
|
|
470
501
|
* @see _update
|
|
471
502
|
*/
|
|
472
503
|
SpokePoolClient.prototype.update = function (eventsToQuery) {
|
|
473
|
-
var _a, _b, _c;
|
|
474
504
|
if (eventsToQuery === void 0) { eventsToQuery = this.queryableEventNames; }
|
|
475
505
|
return __awaiter(this, void 0, void 0, function () {
|
|
476
|
-
var update, queryResults, currentTime, oldestTime, searchEndBlock, _i,
|
|
477
|
-
|
|
478
|
-
|
|
506
|
+
var update, queryResults, currentTime, oldestTime, searchEndBlock, _i, _a, event_1, queryDepositEvents, _b, _c, event_2, querySpeedUpDepositEvents, queryRequestedSlowFillEvents, queryFilledRelayEvents, enableDepositsEvents, _d, enableDepositsEvents_1, event_3, enableDeposit, relayedRootBundleEvents, _e, relayedRootBundleEvents_1, event_4, refundEvents, _f, refundEvents_1, event_5, executedRefund;
|
|
507
|
+
var _this = this;
|
|
508
|
+
return __generator(this, function (_g) {
|
|
509
|
+
switch (_g.label) {
|
|
479
510
|
case 0:
|
|
480
511
|
if (this.hubPoolClient !== null && !this.hubPoolClient.isUpdated) {
|
|
481
512
|
throw new Error("HubPoolClient not updated");
|
|
482
513
|
}
|
|
483
514
|
return [4 /*yield*/, this._update(eventsToQuery)];
|
|
484
515
|
case 1:
|
|
485
|
-
update =
|
|
516
|
+
update = _g.sent();
|
|
486
517
|
if (!update.success) {
|
|
487
518
|
return [2 /*return*/];
|
|
488
519
|
}
|
|
489
520
|
queryResults = update.events, currentTime = update.currentTime, oldestTime = update.oldestTime, searchEndBlock = update.searchEndBlock;
|
|
490
521
|
if (eventsToQuery.includes("TokensBridged")) {
|
|
491
|
-
for (_i = 0,
|
|
492
|
-
event_1 =
|
|
522
|
+
for (_i = 0, _a = queryResults[eventsToQuery.indexOf("TokensBridged")]; _i < _a.length; _i++) {
|
|
523
|
+
event_1 = _a[_i];
|
|
493
524
|
this.tokensBridged.push(spreadEventWithBlockNumber(event_1));
|
|
494
525
|
}
|
|
495
526
|
}
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
527
|
+
queryDepositEvents = function (eventName) { return __awaiter(_this, void 0, void 0, function () {
|
|
528
|
+
var depositEvents, quoteBlockNumbers, _i, depositEvents_1, event_6, quoteBlockNumber, deposit;
|
|
529
|
+
var _a;
|
|
530
|
+
return __generator(this, function (_b) {
|
|
531
|
+
switch (_b.label) {
|
|
532
|
+
case 0:
|
|
533
|
+
depositEvents = (_a = queryResults[eventsToQuery.indexOf(eventName)]) !== null && _a !== void 0 ? _a : [];
|
|
534
|
+
if (depositEvents.length > 0) {
|
|
535
|
+
this.log("debug", "Using ".concat(depositEvents.length, " newly queried ").concat(eventName, " deposit events for chain ").concat(this.chainId), {
|
|
536
|
+
earliestEvent: depositEvents[0].blockNumber,
|
|
537
|
+
});
|
|
538
|
+
}
|
|
539
|
+
return [4 /*yield*/, this.getBlockNumbers(depositEvents.map(function (_a) {
|
|
540
|
+
var args = _a.args;
|
|
541
|
+
return Number(args["quoteTimestamp"]);
|
|
542
|
+
}))];
|
|
543
|
+
case 1:
|
|
544
|
+
quoteBlockNumbers = _b.sent();
|
|
545
|
+
for (_i = 0, depositEvents_1 = depositEvents; _i < depositEvents_1.length; _i++) {
|
|
546
|
+
event_6 = depositEvents_1[_i];
|
|
547
|
+
quoteBlockNumber = quoteBlockNumbers[Number(event_6.args["quoteTimestamp"])];
|
|
548
|
+
deposit = __assign(__assign({}, spreadEventWithBlockNumber(event_6)), { messageHash: getMessageHash(event_6.args.message), quoteBlockNumber: quoteBlockNumber, originChainId: this.chainId,
|
|
549
|
+
// The following properties are placeholders to be updated immediately.
|
|
550
|
+
fromLiteChain: true, toLiteChain: true });
|
|
551
|
+
deposit.fromLiteChain = this.isOriginLiteChain(deposit);
|
|
552
|
+
deposit.toLiteChain = this.isDestinationLiteChain(deposit);
|
|
553
|
+
if (isZeroAddress(deposit.outputToken)) {
|
|
554
|
+
deposit.outputToken = this.getDestinationTokenForDeposit(deposit);
|
|
555
|
+
}
|
|
556
|
+
if (this.depositHashes[getRelayEventKey(deposit)] !== undefined) {
|
|
557
|
+
assign(this.duplicateDepositHashes, [getRelayEventKey(deposit)], [deposit]);
|
|
558
|
+
continue;
|
|
559
|
+
}
|
|
560
|
+
assign(this.depositHashes, [getRelayEventKey(deposit)], deposit);
|
|
561
|
+
if (deposit.depositId.lt(this.earliestDepositIdQueried) && !isUnsafeDepositId(deposit.depositId)) {
|
|
562
|
+
this.earliestDepositIdQueried = deposit.depositId;
|
|
563
|
+
}
|
|
564
|
+
if (deposit.depositId.gt(this.latestDepositIdQueried) && !isUnsafeDepositId(deposit.depositId)) {
|
|
565
|
+
this.latestDepositIdQueried = deposit.depositId;
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
return [2 /*return*/];
|
|
569
|
+
}
|
|
501
570
|
});
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
return Number(args["quoteTimestamp"]);
|
|
506
|
-
}))];
|
|
571
|
+
}); };
|
|
572
|
+
_b = 0, _c = ["V3FundsDeposited", "FundsDeposited"];
|
|
573
|
+
_g.label = 2;
|
|
507
574
|
case 2:
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
deposit = __assign(__assign({}, spreadEventWithBlockNumber(event_2)), { quoteBlockNumber: quoteBlockNumber, originChainId: this.chainId,
|
|
513
|
-
// The following properties are placeholders to be updated immediately.
|
|
514
|
-
fromLiteChain: true, toLiteChain: true });
|
|
515
|
-
deposit.fromLiteChain = this.isOriginLiteChain(deposit);
|
|
516
|
-
deposit.toLiteChain = this.isDestinationLiteChain(deposit);
|
|
517
|
-
if (deposit.outputToken === ZERO_ADDRESS) {
|
|
518
|
-
deposit.outputToken = this.getDestinationTokenForDeposit(deposit);
|
|
519
|
-
}
|
|
520
|
-
if (this.depositHashes[this.getDepositHash(deposit)] !== undefined) {
|
|
521
|
-
assign(this.duplicateDepositHashes, [this.getDepositHash(deposit)], [deposit]);
|
|
522
|
-
continue;
|
|
523
|
-
}
|
|
524
|
-
assign(this.depositHashes, [this.getDepositHash(deposit)], deposit);
|
|
525
|
-
if (deposit.depositId.lt(this.earliestDepositIdQueried) && !isUnsafeDepositId(deposit.depositId)) {
|
|
526
|
-
this.earliestDepositIdQueried = deposit.depositId;
|
|
527
|
-
}
|
|
528
|
-
if (deposit.depositId.gt(this.latestDepositIdQueried) && !isUnsafeDepositId(deposit.depositId)) {
|
|
529
|
-
this.latestDepositIdQueried = deposit.depositId;
|
|
530
|
-
}
|
|
531
|
-
}
|
|
532
|
-
_m.label = 3;
|
|
575
|
+
if (!(_b < _c.length)) return [3 /*break*/, 5];
|
|
576
|
+
event_2 = _c[_b];
|
|
577
|
+
if (!eventsToQuery.includes(event_2)) return [3 /*break*/, 4];
|
|
578
|
+
return [4 /*yield*/, queryDepositEvents(event_2)];
|
|
533
579
|
case 3:
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
580
|
+
_g.sent();
|
|
581
|
+
_g.label = 4;
|
|
582
|
+
case 4:
|
|
583
|
+
_b++;
|
|
584
|
+
return [3 /*break*/, 2];
|
|
585
|
+
case 5:
|
|
586
|
+
querySpeedUpDepositEvents = function (eventName) {
|
|
587
|
+
var _a;
|
|
588
|
+
var speedUpEvents = (_a = queryResults[eventsToQuery.indexOf(eventName)]) !== null && _a !== void 0 ? _a : [];
|
|
589
|
+
for (var _i = 0, speedUpEvents_1 = speedUpEvents; _i < speedUpEvents_1.length; _i++) {
|
|
590
|
+
var event_7 = speedUpEvents_1[_i];
|
|
591
|
+
var speedUp = __assign(__assign({}, spreadEventWithBlockNumber(event_7)), { originChainId: _this.chainId });
|
|
592
|
+
assign(_this.speedUps, [speedUp.depositor, speedUp.depositId.toString()], [speedUp]);
|
|
593
|
+
// Find deposit hash matching this speed up event and update the deposit data associated with the hash,
|
|
594
|
+
// if the hash+data exists.
|
|
595
|
+
var deposit = _this.getDeposit(speedUp.depositId);
|
|
596
|
+
// We can assume all deposits in this lookback window are loaded in-memory already so if the depositHash
|
|
597
|
+
// is not mapped to a deposit, then we can throw away the speedup as it can't be applied to anything.
|
|
598
|
+
if (isDefined(deposit)) {
|
|
599
|
+
var eventKey = getRelayEventKey(deposit);
|
|
600
|
+
_this.depositHashes[eventKey] = _this.appendMaxSpeedUpSignatureToDeposit(deposit);
|
|
545
601
|
}
|
|
546
602
|
}
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
603
|
+
};
|
|
604
|
+
// Update deposits with speed up requests from depositor.
|
|
605
|
+
["RequestedSpeedUpV3Deposit", "RequestedSpeedUpDeposit"].forEach(function (event) {
|
|
606
|
+
if (eventsToQuery.includes(event)) {
|
|
607
|
+
querySpeedUpDepositEvents(event);
|
|
608
|
+
}
|
|
609
|
+
});
|
|
610
|
+
queryRequestedSlowFillEvents = function (eventName) {
|
|
611
|
+
var _a;
|
|
612
|
+
var _b;
|
|
613
|
+
var slowFillRequests = queryResults[eventsToQuery.indexOf(eventName)];
|
|
614
|
+
for (var _i = 0, slowFillRequests_1 = slowFillRequests; _i < slowFillRequests_1.length; _i++) {
|
|
615
|
+
var event_8 = slowFillRequests_1[_i];
|
|
616
|
+
var slowFillRequest = __assign(__assign({}, spreadEventWithBlockNumber(event_8)), { destinationChainId: _this.chainId });
|
|
617
|
+
if (eventName === "RequestedV3SlowFill") {
|
|
618
|
+
slowFillRequest.messageHash = getMessageHash(slowFillRequest.message);
|
|
556
619
|
}
|
|
557
|
-
|
|
620
|
+
var depositHash = getRelayEventKey(__assign(__assign({}, slowFillRequest), { destinationChainId: _this.chainId }));
|
|
621
|
+
(_a = (_b = _this.slowFillRequests)[depositHash]) !== null && _a !== void 0 ? _a : (_b[depositHash] = slowFillRequest);
|
|
558
622
|
}
|
|
559
|
-
}
|
|
560
|
-
|
|
561
|
-
|
|
623
|
+
};
|
|
624
|
+
["RequestedV3SlowFill", "RequestedSlowFill"].forEach(function (event) {
|
|
625
|
+
if (eventsToQuery.includes(event)) {
|
|
626
|
+
queryRequestedSlowFillEvents(event);
|
|
627
|
+
}
|
|
628
|
+
});
|
|
629
|
+
queryFilledRelayEvents = function (eventName) {
|
|
630
|
+
var _a;
|
|
631
|
+
var fillEvents = (_a = queryResults[eventsToQuery.indexOf(eventName)]) !== null && _a !== void 0 ? _a : [];
|
|
562
632
|
if (fillEvents.length > 0) {
|
|
563
|
-
|
|
633
|
+
_this.log("debug", "Using ".concat(fillEvents.length, " newly queried ").concat(eventName, " events for chain ").concat(_this.chainId), {
|
|
564
634
|
earliestEvent: fillEvents[0].blockNumber,
|
|
565
635
|
});
|
|
566
636
|
}
|
|
567
637
|
// @note The type assertions here suppress errors that might arise due to incomplete types. For now, verify via
|
|
568
638
|
// test that the types are complete. A broader change in strategy for safely unpacking events will be introduced.
|
|
569
|
-
for (
|
|
570
|
-
|
|
571
|
-
fill = __assign(__assign({}, spreadEventWithBlockNumber(
|
|
572
|
-
|
|
573
|
-
|
|
639
|
+
for (var _i = 0, fillEvents_1 = fillEvents; _i < fillEvents_1.length; _i++) {
|
|
640
|
+
var event_9 = fillEvents_1[_i];
|
|
641
|
+
var fill = __assign(__assign({}, spreadEventWithBlockNumber(event_9)), { messageHash: getMessageHash(event_9.args["message"]), destinationChainId: _this.chainId });
|
|
642
|
+
if (eventName === "FilledV3Relay") {
|
|
643
|
+
fill.messageHash = getMessageHash(event_9.args.message);
|
|
644
|
+
fill.relayExecutionInfo.updatedMessageHash = getMessageHash(event_9.args.relayExecutionInfo.updatedMessage);
|
|
645
|
+
}
|
|
646
|
+
assign(_this.fills, [fill.originChainId], [fill]);
|
|
647
|
+
assign(_this.depositHashesToFills, [getRelayEventKey(fill)], [fill]);
|
|
574
648
|
}
|
|
575
|
-
}
|
|
649
|
+
};
|
|
650
|
+
// Update observed fills with ingested event data.
|
|
651
|
+
["FilledV3Relay", "FilledRelay"].forEach(function (event) {
|
|
652
|
+
if (eventsToQuery.includes(event)) {
|
|
653
|
+
queryFilledRelayEvents(event);
|
|
654
|
+
}
|
|
655
|
+
});
|
|
576
656
|
if (eventsToQuery.includes("EnabledDepositRoute")) {
|
|
577
657
|
enableDepositsEvents = queryResults[eventsToQuery.indexOf("EnabledDepositRoute")];
|
|
578
|
-
for (
|
|
579
|
-
|
|
580
|
-
enableDeposit = spreadEvent(
|
|
658
|
+
for (_d = 0, enableDepositsEvents_1 = enableDepositsEvents; _d < enableDepositsEvents_1.length; _d++) {
|
|
659
|
+
event_3 = enableDepositsEvents_1[_d];
|
|
660
|
+
enableDeposit = spreadEvent(event_3.args);
|
|
581
661
|
assign(this.depositRoutes, [enableDeposit.originToken, enableDeposit.destinationChainId], enableDeposit.enabled);
|
|
582
662
|
}
|
|
583
663
|
}
|
|
584
664
|
if (eventsToQuery.includes("RelayedRootBundle")) {
|
|
585
665
|
relayedRootBundleEvents = queryResults[eventsToQuery.indexOf("RelayedRootBundle")];
|
|
586
|
-
for (
|
|
587
|
-
|
|
588
|
-
this.rootBundleRelays.push(spreadEventWithBlockNumber(
|
|
666
|
+
for (_e = 0, relayedRootBundleEvents_1 = relayedRootBundleEvents; _e < relayedRootBundleEvents_1.length; _e++) {
|
|
667
|
+
event_4 = relayedRootBundleEvents_1[_e];
|
|
668
|
+
this.rootBundleRelays.push(spreadEventWithBlockNumber(event_4));
|
|
589
669
|
}
|
|
590
670
|
}
|
|
591
671
|
if (eventsToQuery.includes("ExecutedRelayerRefundRoot")) {
|
|
592
672
|
refundEvents = queryResults[eventsToQuery.indexOf("ExecutedRelayerRefundRoot")];
|
|
593
|
-
for (
|
|
594
|
-
|
|
595
|
-
executedRefund = spreadEventWithBlockNumber(
|
|
673
|
+
for (_f = 0, refundEvents_1 = refundEvents; _f < refundEvents_1.length; _f++) {
|
|
674
|
+
event_5 = refundEvents_1[_f];
|
|
675
|
+
executedRefund = spreadEventWithBlockNumber(event_5);
|
|
596
676
|
executedRefund.l2TokenAddress = SpokePoolClient.getExecutedRefundLeafL2Token(executedRefund.chainId, executedRefund.l2TokenAddress);
|
|
597
677
|
this.relayerRefundExecutions.push(executedRefund);
|
|
598
678
|
}
|
|
@@ -724,7 +804,7 @@ var SpokePoolClient = /** @class */ (function (_super) {
|
|
|
724
804
|
return [4 /*yield*/, this.getBlockNumber(Number(event.args["quoteTimestamp"]))];
|
|
725
805
|
case 3:
|
|
726
806
|
deposit = __assign.apply(void 0, _a.concat([(_b.quoteBlockNumber = _c.sent(), _b.fromLiteChain = true, _b.toLiteChain = true, _b)]));
|
|
727
|
-
if (deposit.outputToken
|
|
807
|
+
if (isZeroAddress(deposit.outputToken)) {
|
|
728
808
|
deposit.outputToken = this.getDestinationTokenForDeposit(deposit);
|
|
729
809
|
}
|
|
730
810
|
deposit.fromLiteChain = this.isOriginLiteChain(deposit);
|