@across-protocol/sdk 4.1.44 → 4.1.45-beta.1

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 (109) hide show
  1. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +23 -14
  2. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  3. package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js +10 -1
  4. package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
  5. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.d.ts +7 -7
  6. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js +47 -36
  7. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
  8. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +1 -1
  9. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +2 -2
  10. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  11. package/dist/cjs/clients/HubPoolClient.d.ts +3 -2
  12. package/dist/cjs/clients/HubPoolClient.js +27 -15
  13. package/dist/cjs/clients/HubPoolClient.js.map +1 -1
  14. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.d.ts +1 -0
  15. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +19 -5
  16. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  17. package/dist/cjs/clients/mocks/MockHubPoolClient.d.ts +2 -0
  18. package/dist/cjs/clients/mocks/MockHubPoolClient.js +18 -0
  19. package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -1
  20. package/dist/cjs/svm/eventsClient.js +5 -12
  21. package/dist/cjs/svm/eventsClient.js.map +1 -1
  22. package/dist/cjs/svm/index.d.ts +2 -0
  23. package/dist/cjs/svm/index.js +3 -0
  24. package/dist/cjs/svm/index.js.map +1 -1
  25. package/dist/cjs/svm/utils/events.d.ts +6 -1
  26. package/dist/cjs/svm/utils/events.js +13 -4
  27. package/dist/cjs/svm/utils/events.js.map +1 -1
  28. package/dist/cjs/svm/utils/index.d.ts +1 -0
  29. package/dist/cjs/svm/utils/index.js +5 -0
  30. package/dist/cjs/svm/utils/index.js.map +1 -0
  31. package/dist/cjs/utils/DepositUtils.d.ts +1 -0
  32. package/dist/cjs/utils/DepositUtils.js +5 -1
  33. package/dist/cjs/utils/DepositUtils.js.map +1 -1
  34. package/dist/cjs/utils/common.d.ts +2 -0
  35. package/dist/cjs/utils/common.js +3 -1
  36. package/dist/cjs/utils/common.js.map +1 -1
  37. package/dist/esm/clients/BundleDataClient/BundleDataClient.js +24 -15
  38. package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  39. package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js +16 -1
  40. package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
  41. package/dist/esm/clients/BundleDataClient/utils/FillUtils.d.ts +28 -7
  42. package/dist/esm/clients/BundleDataClient/utils/FillUtils.js +83 -50
  43. package/dist/esm/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
  44. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +1 -1
  45. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +2 -2
  46. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  47. package/dist/esm/clients/HubPoolClient.d.ts +3 -16
  48. package/dist/esm/clients/HubPoolClient.js +31 -33
  49. package/dist/esm/clients/HubPoolClient.js.map +1 -1
  50. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.d.ts +1 -0
  51. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +28 -14
  52. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  53. package/dist/esm/clients/mocks/MockHubPoolClient.d.ts +2 -0
  54. package/dist/esm/clients/mocks/MockHubPoolClient.js +18 -0
  55. package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -1
  56. package/dist/esm/svm/eventsClient.js +6 -13
  57. package/dist/esm/svm/eventsClient.js.map +1 -1
  58. package/dist/esm/svm/index.d.ts +2 -0
  59. package/dist/esm/svm/index.js +3 -0
  60. package/dist/esm/svm/index.js.map +1 -1
  61. package/dist/esm/svm/utils/events.d.ts +9 -1
  62. package/dist/esm/svm/utils/events.js +15 -3
  63. package/dist/esm/svm/utils/events.js.map +1 -1
  64. package/dist/esm/svm/utils/index.d.ts +1 -0
  65. package/dist/esm/svm/utils/index.js +2 -0
  66. package/dist/esm/svm/utils/index.js.map +1 -0
  67. package/dist/esm/utils/DepositUtils.d.ts +1 -0
  68. package/dist/esm/utils/DepositUtils.js +5 -1
  69. package/dist/esm/utils/DepositUtils.js.map +1 -1
  70. package/dist/esm/utils/common.d.ts +2 -0
  71. package/dist/esm/utils/common.js +2 -0
  72. package/dist/esm/utils/common.js.map +1 -1
  73. package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
  74. package/dist/types/clients/BundleDataClient/utils/DataworkerUtils.d.ts.map +1 -1
  75. package/dist/types/clients/BundleDataClient/utils/FillUtils.d.ts +28 -7
  76. package/dist/types/clients/BundleDataClient/utils/FillUtils.d.ts.map +1 -1
  77. package/dist/types/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +1 -1
  78. package/dist/types/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts.map +1 -1
  79. package/dist/types/clients/HubPoolClient.d.ts +3 -16
  80. package/dist/types/clients/HubPoolClient.d.ts.map +1 -1
  81. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts +1 -0
  82. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -1
  83. package/dist/types/clients/mocks/MockHubPoolClient.d.ts +2 -0
  84. package/dist/types/clients/mocks/MockHubPoolClient.d.ts.map +1 -1
  85. package/dist/types/svm/eventsClient.d.ts.map +1 -1
  86. package/dist/types/svm/index.d.ts +2 -0
  87. package/dist/types/svm/index.d.ts.map +1 -1
  88. package/dist/types/svm/utils/events.d.ts +9 -1
  89. package/dist/types/svm/utils/events.d.ts.map +1 -1
  90. package/dist/types/svm/utils/index.d.ts +2 -0
  91. package/dist/types/svm/utils/index.d.ts.map +1 -0
  92. package/dist/types/utils/DepositUtils.d.ts +1 -0
  93. package/dist/types/utils/DepositUtils.d.ts.map +1 -1
  94. package/dist/types/utils/common.d.ts +2 -0
  95. package/dist/types/utils/common.d.ts.map +1 -1
  96. package/package.json +1 -1
  97. package/src/clients/BundleDataClient/BundleDataClient.ts +38 -21
  98. package/src/clients/BundleDataClient/utils/DataworkerUtils.ts +36 -1
  99. package/src/clients/BundleDataClient/utils/FillUtils.ts +133 -71
  100. package/src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts +3 -2
  101. package/src/clients/HubPoolClient.ts +41 -38
  102. package/src/clients/SpokePoolClient/SpokePoolClient.ts +54 -16
  103. package/src/clients/mocks/MockHubPoolClient.ts +16 -0
  104. package/src/svm/eventsClient.ts +6 -12
  105. package/src/svm/index.ts +2 -0
  106. package/src/svm/utils/events.ts +16 -4
  107. package/src/svm/utils/index.ts +1 -0
  108. package/src/utils/DepositUtils.ts +6 -1
  109. package/src/utils/common.ts +2 -0
@@ -1,66 +1,55 @@
1
- import { __awaiter, __generator } from "tslib";
1
+ import { __assign, __awaiter, __generator } from "tslib";
2
2
  import _ from "lodash";
3
- import { getBlockRangeForChain, isSlowFill, isValidEvmAddress, isDefined, chainIsEvm } from "../../../utils";
4
- export function getRefundInformationFromFill(fill, hubPoolClient, blockRangesForChains, chainIdListForBundleEvaluationBlockNumbers, fromLiteChain) {
5
- // Handle slow relay where repaymentChainId = 0. Slow relays always pay recipient on destination chain.
6
- // So, save the slow fill under the destination chain, and save the fast fill under its repayment chain.
7
- var chainToSendRefundTo = isSlowFill(fill) ? fill.destinationChainId : fill.repaymentChainId;
8
- // If the fill is for a deposit originating from the lite chain, the repayment chain is the origin chain
9
- // regardless of whether it is a slow or fast fill (we ignore slow fills but this is for posterity).
10
- // @note fill.repaymentChainId should already be set to originChainId but reset it to be safe.
11
- if (fromLiteChain) {
12
- chainToSendRefundTo = fill.originChainId;
3
+ import assert from "assert";
4
+ import { isSlowFill, isValidEvmAddress, isDefined, chainIsEvm } from "../../../utils";
5
+ /**
6
+ * @notice Return repayment chain and repayment token for a fill, but does not verify if the returned
7
+ * repayment information is valid for the desired repayment address.
8
+ * @dev The passed in fill should be verified first via verifyFillRepayment().
9
+ * @param fill The fill to get the repayment information for.
10
+ * @return The chain to send the refund to and the token to use for the refund.
11
+ */
12
+ export function getRefundInformationFromFill(relayData, hubPoolClient, bundleEndBlockForMainnet) {
13
+ var chainToSendRefundTo = _getRepaymentChainId(relayData, hubPoolClient, bundleEndBlockForMainnet);
14
+ if (chainToSendRefundTo === relayData.originChainId) {
15
+ return {
16
+ chainToSendRefundTo: chainToSendRefundTo,
17
+ repaymentToken: relayData.inputToken,
18
+ };
13
19
  }
14
- // Save fill data and associate with repayment chain and L2 token refund should be denominated in.
15
- var endBlockForMainnet = getBlockRangeForChain(blockRangesForChains, hubPoolClient.chainId, chainIdListForBundleEvaluationBlockNumbers)[1];
16
- var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(fill.inputToken, fill.originChainId, endBlockForMainnet);
17
- var repaymentToken = hubPoolClient.getL2TokenForL1TokenAtBlock(l1TokenCounterpart, chainToSendRefundTo, endBlockForMainnet);
20
+ // Now figure out the equivalent L2 token for the repayment token. If the inputToken doesn't have a
21
+ // PoolRebalanceRoute, then the repayment chain would have been the originChainId after the getRepaymentChainId()
22
+ // call and we would have returned already, so the following call should always succeed.
23
+ var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet);
24
+ var repaymentToken = hubPoolClient.getL2TokenForL1TokenAtBlock(l1TokenCounterpart, chainToSendRefundTo, bundleEndBlockForMainnet);
18
25
  return {
19
26
  chainToSendRefundTo: chainToSendRefundTo,
20
27
  repaymentToken: repaymentToken,
21
28
  };
22
29
  }
23
- export function getRepaymentChainId(fill, matchedDeposit) {
24
- // Lite chain deposits force repayment on origin chain.
25
- return matchedDeposit.fromLiteChain ? matchedDeposit.originChainId : fill.repaymentChainId;
26
- }
27
- export function forceDestinationRepayment(repaymentChainId, matchedDeposit, hubPoolClient) {
28
- if (!matchedDeposit.fromLiteChain) {
29
- try {
30
- var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(matchedDeposit.inputToken, matchedDeposit.originChainId, matchedDeposit.quoteBlockNumber);
31
- hubPoolClient.getL2TokenForL1TokenAtBlock(l1TokenCounterpart, repaymentChainId, matchedDeposit.quoteBlockNumber);
32
- // Repayment token could be found, this is a valid repayment chain.
33
- return false;
34
- }
35
- catch (_a) {
36
- // Repayment token doesn't exist on repayment chain via PoolRebalanceRoutes, impossible to repay filler there.
37
- return true;
38
- }
39
- }
40
- else {
41
- return false;
42
- }
43
- }
44
- // Verify that a fill sent to an EVM chain has a 20 byte address. If the fill does not, then attempt
45
- // to repay the `msg.sender` of the relay transaction. Otherwise, return undefined.
46
- export function verifyFillRepayment(_fill, destinationChainProvider, matchedDeposit, hubPoolClient) {
30
+ /**
31
+ * @notice Verifies that the fill can be repaid. If the repayment address is not
32
+ * valid for the requested repayment chain, then this function will attempt to change the fill's repayment chain
33
+ * to the destination chain and its repayment address to the msg.sender and if this is possible,
34
+ * return the fill. Otherwise, return undefined.
35
+ * @param _fill Fill with a requested repayment chain and address
36
+ * @return Fill with the applied repayment chain (depends on the validity of the requested repayment address)
37
+ * and applied repayment address, or undefined if the applied repayment address is not valid for the
38
+ * applied repayment chain.
39
+ */
40
+ export function verifyFillRepayment(_fill, destinationChainProvider, matchedDeposit, hubPoolClient, bundleEndBlockForMainnet) {
47
41
  return __awaiter(this, void 0, void 0, function () {
48
42
  var fill, repaymentChainId, fillTransaction, destinationRelayer;
49
43
  return __generator(this, function (_a) {
50
44
  switch (_a.label) {
51
45
  case 0:
52
- fill = _.cloneDeep(_fill);
46
+ fill = __assign(__assign({}, _.cloneDeep(_fill)), { fromLiteChain: matchedDeposit.fromLiteChain });
53
47
  // Slow fills don't result in repayments so they're always valid.
54
48
  if (isSlowFill(fill)) {
55
49
  return [2 /*return*/, fill];
56
50
  }
57
- repaymentChainId = getRepaymentChainId(fill, matchedDeposit);
58
- // If repayment chain doesn't have a Pool Rebalance Route for the input token, then change the repayment
59
- // chain to the destination chain.
60
- if (forceDestinationRepayment(repaymentChainId, matchedDeposit, hubPoolClient)) {
61
- repaymentChainId = fill.destinationChainId;
62
- }
63
- if (!!isValidEvmAddress(fill.relayer)) return [3 /*break*/, 2];
51
+ repaymentChainId = _getRepaymentChainId(fill, hubPoolClient, bundleEndBlockForMainnet);
52
+ if (!_repaymentAddressNeedsToBeOverwritten(fill)) return [3 /*break*/, 2];
64
53
  return [4 /*yield*/, destinationChainProvider.getTransaction(fill.transactionHash)];
65
54
  case 1:
66
55
  fillTransaction = _a.sent();
@@ -69,12 +58,17 @@ export function verifyFillRepayment(_fill, destinationChainProvider, matchedDepo
69
58
  if (!isDefined(destinationRelayer) || !isValidEvmAddress(destinationRelayer)) {
70
59
  return [2 /*return*/, undefined];
71
60
  }
72
- if (!matchedDeposit.fromLiteChain) {
61
+ // If we can switch the repayment chain to the destination chain, then do so. We should only switch if the
62
+ // destination chain has a valid repayment token that is equivalent to the deposited input token. This would
63
+ // also be the same mapping as the repayment token on the repayment chain.
64
+ if (!matchedDeposit.fromLiteChain &&
65
+ hubPoolClient.areTokensEquivalent(fill.inputToken, fill.originChainId, fill.outputToken, fill.destinationChainId)) {
73
66
  repaymentChainId = fill.destinationChainId;
74
67
  }
68
+ // If we can't switch the chain, then we need to verify that the msg.sender is a valid address on the repayment chain.
69
+ // Because we already checked that the `destinationRelayer` was a valid EVM address above, we only need to check
70
+ // that the repayment chain is an EVM chain.
75
71
  else {
76
- // We can't switch repayment chain for a lite chain deposit so just check whether the repayment chain,
77
- // which should be the origin chain, is an EVM chain.
78
72
  if (!chainIsEvm(repaymentChainId)) {
79
73
  return [2 /*return*/, undefined];
80
74
  }
@@ -90,4 +84,43 @@ export function verifyFillRepayment(_fill, destinationChainProvider, matchedDepo
90
84
  });
91
85
  });
92
86
  }
87
+ function _getRepaymentChainId(relayData, hubPoolClient, bundleEndBlockForMainnet) {
88
+ if (relayData.fromLiteChain) {
89
+ assert(!isSlowFill(relayData), "getRepaymentChainId: fromLiteChain and slow fill are mutually exclusive");
90
+ return relayData.originChainId;
91
+ }
92
+ // Handle slow relay where FilledRelay.repaymentChainId = 0, as hardcoded in the SpokePool contract.
93
+ // Slow relays always pay recipient on destination chain.
94
+ if (isSlowFill(relayData)) {
95
+ return relayData.destinationChainId;
96
+ }
97
+ // Repayment chain is valid if the input token and repayment chain are mapped to the same PoolRebalanceRoute.
98
+ var repaymentTokenIsValid = _repaymentChainTokenIsValid(relayData, hubPoolClient, bundleEndBlockForMainnet);
99
+ if (repaymentTokenIsValid) {
100
+ return relayData.repaymentChainId;
101
+ }
102
+ // If repayment chain is not valid, default to origin chain since we always know the input token can be refunded.
103
+ return relayData.originChainId;
104
+ }
105
+ function _repaymentChainTokenIsValid(relayData, hubPoolClient, bundleEndBlockForMainnet) {
106
+ if (!hubPoolClient.l2TokenHasPoolRebalanceRoute(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet)) {
107
+ return false;
108
+ }
109
+ var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet);
110
+ if (!hubPoolClient.l2TokenEnabledForL1TokenAtBlock(l1TokenCounterpart, relayData.repaymentChainId, bundleEndBlockForMainnet)) {
111
+ return false;
112
+ }
113
+ return true;
114
+ }
115
+ function _repaymentAddressNeedsToBeOverwritten(fill) {
116
+ // Slow fills don't result in repayments so they're always valid.
117
+ if (isSlowFill(fill)) {
118
+ return false;
119
+ }
120
+ // @todo add Solana logic here:
121
+ // - i.e. If chainIsSvm && !isValidSvmAddress(fill.relayer) then return false
122
+ // If chainIsEvm && !isValidEvmAddress(fill.relayer) then return false
123
+ // If chainIsEvm && isValidEvmAddress(fill.relayer) then return true
124
+ return !isValidEvmAddress(fill.relayer);
125
+ }
93
126
  //# sourceMappingURL=FillUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FillUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/FillUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FillUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/FillUtils.ts"],"names":[],"mappings":"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"}
@@ -20,5 +20,5 @@ export declare function getNetSendAmountForL1Token(spokePoolTargetBalance: Spoke
20
20
  export declare function getRunningBalanceForL1Token(spokePoolTargetBalance: SpokePoolTargetBalance, runningBalance: BigNumber): BigNumber;
21
21
  export declare function updateRunningBalance(runningBalances: RunningBalances, l2ChainId: number, l1Token: string, updateAmount: BigNumber): void;
22
22
  export declare function addLastRunningBalance(latestMainnetBlock: number, runningBalances: RunningBalances, hubPoolClient: HubPoolClient): void;
23
- export declare function updateRunningBalanceForDeposit(runningBalances: RunningBalances, hubPoolClient: HubPoolClient, deposit: V3DepositWithBlock, updateAmount: BigNumber): void;
23
+ export declare function updateRunningBalanceForDeposit(runningBalances: RunningBalances, hubPoolClient: HubPoolClient, deposit: V3DepositWithBlock, updateAmount: BigNumber, mainnetBundleEndBlock: number): void;
24
24
  export declare function constructPoolRebalanceLeaves(latestMainnetBlock: number, runningBalances: RunningBalances, realizedLpFees: RunningBalances, configStoreClient: AcrossConfigStoreClient, maxL1TokenCount?: number): PoolRebalanceLeaf[];
@@ -98,8 +98,8 @@ export function addLastRunningBalance(latestMainnetBlock, runningBalances, hubPo
98
98
  });
99
99
  });
100
100
  }
101
- export function updateRunningBalanceForDeposit(runningBalances, hubPoolClient, deposit, updateAmount) {
102
- var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(deposit.inputToken, deposit.originChainId, deposit.quoteBlockNumber);
101
+ export function updateRunningBalanceForDeposit(runningBalances, hubPoolClient, deposit, updateAmount, mainnetBundleEndBlock) {
102
+ var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(deposit.inputToken, deposit.originChainId, mainnetBundleEndBlock);
103
103
  updateRunningBalance(runningBalances, deposit.originChainId, l1TokenCounterpart, updateAmount);
104
104
  }
105
105
  export function constructPoolRebalanceLeaves(latestMainnetBlock, runningBalances, realizedLpFees, configStoreClient, maxL1TokenCount) {
@@ -1 +1 @@
1
- {"version":3,"file":"PoolRebalanceUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PoolRebalanceUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts"],"names":[],"mappings":"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"}
@@ -72,23 +72,10 @@ export declare class HubPoolClient extends BaseAbstractClient {
72
72
  getSpokePoolActivationBlock(chain: number, spokePool: string): number | undefined;
73
73
  getL2TokenForL1TokenAtBlock(l1Token: string, destinationChainId: number, latestHubBlock?: number): string;
74
74
  getL1TokenForL2TokenAtBlock(l2Token: string, destinationChainId: number, latestHubBlock?: number): string;
75
- /**
76
- * Returns the L1 token that should be used for an L2 Bridge event. This function is
77
- * designed to be used by the caller to associate the L2 token with its mapped L1 token
78
- * at the HubPool equivalent block number of the L2 event.
79
- * @param deposit Deposit event
80
- * @param returns string L1 token counterpart for Deposit
81
- */
82
- getL1TokenForDeposit(deposit: Pick<DepositWithBlock, "originChainId" | "inputToken" | "quoteBlockNumber">): string;
83
- /**
84
- * Returns the L2 token that should be used as a counterpart to a deposit event. For example, the caller
85
- * might want to know what the refund token will be on l2ChainId for the deposit event.
86
- * @param l2ChainId Chain where caller wants to get L2 token counterpart for
87
- * @param event Deposit event
88
- * @returns string L2 token counterpart on l2ChainId
89
- */
90
- getL2TokenForDeposit(deposit: Pick<DepositWithBlock, "originChainId" | "destinationChainId" | "inputToken" | "quoteBlockNumber">, l2ChainId?: number): string;
75
+ protected getL1TokenForDeposit(deposit: Pick<DepositWithBlock, "originChainId" | "inputToken" | "quoteBlockNumber">): string;
91
76
  l2TokenEnabledForL1Token(l1Token: string, destinationChainId: number): boolean;
77
+ l2TokenEnabledForL1TokenAtBlock(l1Token: string, destinationChainId: number, hubBlockNumber: number): boolean;
78
+ l2TokenHasPoolRebalanceRoute(l2Token: string, l2ChainId: number, hubPoolBlock?: number): boolean;
92
79
  /**
93
80
  * @dev If tokenAddress + chain do not exist in TOKEN_SYMBOLS_MAP then this will throw.
94
81
  * @param tokenAddress Token address on `chain`
@@ -128,36 +128,35 @@ var HubPoolClient = /** @class */ (function (_super) {
128
128
  // Find the last mapping published before the target block.
129
129
  return sortEventsDescending(l2Tokens)[0].l1Token;
130
130
  };
131
- /**
132
- * Returns the L1 token that should be used for an L2 Bridge event. This function is
133
- * designed to be used by the caller to associate the L2 token with its mapped L1 token
134
- * at the HubPool equivalent block number of the L2 event.
135
- * @param deposit Deposit event
136
- * @param returns string L1 token counterpart for Deposit
137
- */
138
131
  HubPoolClient.prototype.getL1TokenForDeposit = function (deposit) {
139
132
  // L1-->L2 token mappings are set via PoolRebalanceRoutes which occur on mainnet,
140
133
  // so we use the latest token mapping. This way if a very old deposit is filled, the relayer can use the
141
134
  // latest L2 token mapping to find the L1 token counterpart.
142
135
  return this.getL1TokenForL2TokenAtBlock(deposit.inputToken, deposit.originChainId, deposit.quoteBlockNumber);
143
136
  };
144
- /**
145
- * Returns the L2 token that should be used as a counterpart to a deposit event. For example, the caller
146
- * might want to know what the refund token will be on l2ChainId for the deposit event.
147
- * @param l2ChainId Chain where caller wants to get L2 token counterpart for
148
- * @param event Deposit event
149
- * @returns string L2 token counterpart on l2ChainId
150
- */
151
- HubPoolClient.prototype.getL2TokenForDeposit = function (deposit, l2ChainId) {
152
- if (l2ChainId === void 0) { l2ChainId = deposit.destinationChainId; }
153
- var l1Token = this.getL1TokenForDeposit(deposit);
154
- // Use the latest hub block number to find the L2 token counterpart.
155
- return this.getL2TokenForL1TokenAtBlock(l1Token, l2ChainId, deposit.quoteBlockNumber);
156
- };
157
137
  HubPoolClient.prototype.l2TokenEnabledForL1Token = function (l1Token, destinationChainId) {
158
138
  var _a, _b;
159
139
  return ((_b = (_a = this.l1TokensToDestinationTokens) === null || _a === void 0 ? void 0 : _a[l1Token]) === null || _b === void 0 ? void 0 : _b[destinationChainId]) != undefined;
160
140
  };
141
+ HubPoolClient.prototype.l2TokenEnabledForL1TokenAtBlock = function (l1Token, destinationChainId, hubBlockNumber) {
142
+ var _a, _b, _c;
143
+ // Find the last mapping published before the target block.
144
+ var l2Token = sortEventsDescending((_c = (_b = (_a = this.l1TokensToDestinationTokensWithBlock) === null || _a === void 0 ? void 0 : _a[l1Token]) === null || _b === void 0 ? void 0 : _b[destinationChainId]) !== null && _c !== void 0 ? _c : []).find(function (mapping) { return mapping.blockNumber <= hubBlockNumber; });
145
+ return l2Token !== undefined;
146
+ };
147
+ HubPoolClient.prototype.l2TokenHasPoolRebalanceRoute = function (l2Token, l2ChainId, hubPoolBlock) {
148
+ if (hubPoolBlock === void 0) { hubPoolBlock = this.latestBlockSearched; }
149
+ return Object.values(this.l1TokensToDestinationTokensWithBlock).some(function (destinationTokenMapping) {
150
+ return Object.entries(destinationTokenMapping).some(function (_a) {
151
+ var _l2ChainId = _a[0], setPoolRebalanceRouteEvents = _a[1];
152
+ return setPoolRebalanceRouteEvents.some(function (e) {
153
+ return (e.blockNumber <= hubPoolBlock &&
154
+ compareAddressesSimple(e.l2Token, l2Token) &&
155
+ Number(_l2ChainId) === l2ChainId);
156
+ });
157
+ });
158
+ });
159
+ };
161
160
  /**
162
161
  * @dev If tokenAddress + chain do not exist in TOKEN_SYMBOLS_MAP then this will throw.
163
162
  * @param tokenAddress Token address on `chain`
@@ -457,21 +456,20 @@ var HubPoolClient = /** @class */ (function (_super) {
457
456
  };
458
457
  HubPoolClient.prototype.areTokensEquivalent = function (tokenA, chainIdA, tokenB, chainIdB, hubPoolBlock) {
459
458
  if (hubPoolBlock === void 0) { hubPoolBlock = this.latestBlockSearched; }
460
- try {
461
- // Resolve both SpokePool tokens back to their respective HubPool tokens and verify that they match.
462
- var l1TokenA = this.getL1TokenForL2TokenAtBlock(tokenA, chainIdA, hubPoolBlock);
463
- var l1TokenB = this.getL1TokenForL2TokenAtBlock(tokenB, chainIdB, hubPoolBlock);
464
- if (l1TokenA !== l1TokenB) {
465
- return false;
466
- }
467
- // Resolve both HubPool tokens back to a current SpokePool token and verify that they match.
468
- var _tokenA = this.getL2TokenForL1TokenAtBlock(l1TokenA, chainIdA, hubPoolBlock);
469
- var _tokenB = this.getL2TokenForL1TokenAtBlock(l1TokenB, chainIdB, hubPoolBlock);
470
- return tokenA === _tokenA && tokenB === _tokenB;
459
+ if (!this.l2TokenHasPoolRebalanceRoute(tokenA, chainIdA, hubPoolBlock) ||
460
+ !this.l2TokenHasPoolRebalanceRoute(tokenB, chainIdB, hubPoolBlock)) {
461
+ return false;
471
462
  }
472
- catch (_a) {
473
- return false; // One or both input tokens were not recognised.
463
+ // Resolve both SpokePool tokens back to their respective HubPool tokens and verify that they match.
464
+ var l1TokenA = this.getL1TokenForL2TokenAtBlock(tokenA, chainIdA, hubPoolBlock);
465
+ var l1TokenB = this.getL1TokenForL2TokenAtBlock(tokenB, chainIdB, hubPoolBlock);
466
+ if (l1TokenA !== l1TokenB) {
467
+ return false;
474
468
  }
469
+ // Resolve both HubPool tokens back to a current SpokePool token and verify that they match.
470
+ var _tokenA = this.getL2TokenForL1TokenAtBlock(l1TokenA, chainIdA, hubPoolBlock);
471
+ var _tokenB = this.getL2TokenForL1TokenAtBlock(l1TokenB, chainIdB, hubPoolBlock);
472
+ return tokenA === _tokenA && tokenB === _tokenB;
475
473
  };
476
474
  HubPoolClient.prototype.getSpokeActivationBlockForChain = function (chainId) {
477
475
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"HubPoolClient.js","sourceRoot":"","sources":["../../../src/clients/HubPoolClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HubPoolClient.js","sourceRoot":"","sources":["../../../src/clients/HubPoolClient.ts"],"names":[],"mappings":"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"}
@@ -218,6 +218,7 @@ export declare abstract class SpokePoolClient extends BaseAbstractClient {
218
218
  depositId: BigNumber;
219
219
  originChainId: number;
220
220
  }): string;
221
+ protected canResolveZeroAddressOutputToken(deposit: DepositWithBlock): boolean;
221
222
  /**
222
223
  * A wrapper over the `_update` method that handles errors and logs. This method additionally calls into the
223
224
  * HubPoolClient to update the state of this client with data from the HubPool contract.
@@ -1,9 +1,9 @@
1
1
  import { __assign, __awaiter, __extends, __generator } from "tslib";
2
- import { bnZero, MAX_BIG_INT, assign, getRelayEventKey, isDefined, getMessageHash, isSlowFill, isValidEvmAddress, isZeroAddress, toAddress, validateFillForDeposit, } from "../../utils";
2
+ import { bnZero, MAX_BIG_INT, assign, getRelayEventKey, isDefined, getMessageHash, isSlowFill, isValidEvmAddress, isZeroAddress, toAddress, validateFillForDeposit, chainIsEvm, } from "../../utils";
3
3
  import { duplicateEvent, sortEventsAscendingInPlace, spreadEvent, spreadEventWithBlockNumber, } from "../../utils/EventUtils";
4
4
  import { ZERO_ADDRESS } from "../../constants";
5
5
  import { BaseAbstractClient } from "../BaseAbstractClient";
6
- import { getRepaymentChainId, forceDestinationRepayment } from "../BundleDataClient";
6
+ import { getRefundInformationFromFill } from "../BundleDataClient";
7
7
  export var knownEventNames = [
8
8
  "EnabledDepositRoute",
9
9
  "TokensBridged",
@@ -279,17 +279,17 @@ var SpokePoolClient = /** @class */ (function (_super) {
279
279
  }
280
280
  var _a = fillsForDeposit.reduce(function (groupedFills, fill) {
281
281
  if (validateFillForDeposit(fill, deposit).valid) {
282
- var repaymentChainId = getRepaymentChainId(fill, deposit);
283
- // In order to keep this function sync, we can't call verifyFillRepayment so we'll log any fills that
284
- // we'll have to overwrite repayment information for. This includes fills for lite chains where the
285
- // repayment address is invalid, and fills for non-lite chains where the repayment address is valid or
286
- // the repayment chain is invalid. We don't check that the origin chain is a valid EVM chain for
287
- // lite chain deposits yet because only EVM chains are supported on Across...for now. This means
288
- // this logic will have to be revisited when we add SVM to log properly.
282
+ var fillRepaymentData = __assign(__assign({}, fill), { fromLiteChain: deposit.fromLiteChain });
283
+ var repaymentChainId = getRefundInformationFromFill(fillRepaymentData, _this.hubPoolClient, _this.hubPoolClient.latestBlockSearched).chainToSendRefundTo;
284
+ // In order to keep this function sync, we can't call verifyFillRepayment so we'll log any fills where
285
+ // the filler-specified repayment chain and repayment address is not a valid repayment upon
286
+ // first glance. In other words, the repayment address is not a valid EVM address or the repayment chain
287
+ // is not a valid EVM chain. In the case where the repayment address is not a valid EVM address, the dataworker
288
+ // might be able to overwrite the repayment address to the msg.sender on the fill txn, but to keep this
289
+ // functioon synchronous, we can't make that decision now. So this function might log some false positives.
289
290
  if (_this.hubPoolClient &&
290
291
  !isSlowFill(fill) &&
291
- (!isValidEvmAddress(fill.relayer) ||
292
- forceDestinationRepayment(repaymentChainId, __assign(__assign({}, deposit), { quoteBlockNumber: _this.hubPoolClient.latestBlockSearched }), _this.hubPoolClient))) {
292
+ (!chainIsEvm(repaymentChainId) || !isValidEvmAddress(fill.relayer))) {
293
293
  groupedFills.unrepayableFills.push(fill);
294
294
  }
295
295
  // This fill is still valid and means that the deposit cannot be filled on-chain anymore, but it
@@ -352,6 +352,16 @@ var SpokePoolClient = /** @class */ (function (_super) {
352
352
  SpokePoolClient.prototype.getDepositHash = function (event) {
353
353
  return "".concat(event.depositId.toString(), "-").concat(event.originChainId);
354
354
  };
355
+ SpokePoolClient.prototype.canResolveZeroAddressOutputToken = function (deposit) {
356
+ var _a, _b;
357
+ if (!((_a = this.hubPoolClient) === null || _a === void 0 ? void 0 : _a.l2TokenHasPoolRebalanceRoute(deposit.inputToken, deposit.originChainId, deposit.quoteBlockNumber))) {
358
+ return false;
359
+ }
360
+ else {
361
+ var l1Token = (_b = this.hubPoolClient) === null || _b === void 0 ? void 0 : _b.getL1TokenForL2TokenAtBlock(deposit.inputToken, deposit.originChainId, deposit.quoteBlockNumber);
362
+ return this.hubPoolClient.l2TokenEnabledForL1TokenAtBlock(l1Token, deposit.destinationChainId, deposit.quoteBlockNumber);
363
+ }
364
+ };
355
365
  /**
356
366
  * A wrapper over the `_update` method that handles errors and logs. This method additionally calls into the
357
367
  * HubPoolClient to update the state of this client with data from the HubPool contract.
@@ -600,9 +610,13 @@ var SpokePoolClient = /** @class */ (function (_super) {
600
610
  * @returns The destination token.
601
611
  */
602
612
  SpokePoolClient.prototype.getDestinationTokenForDeposit = function (deposit) {
603
- var _a, _b;
604
- // If there is no rate model client return address(0).
605
- return (_b = (_a = this.hubPoolClient) === null || _a === void 0 ? void 0 : _a.getL2TokenForDeposit(deposit)) !== null && _b !== void 0 ? _b : ZERO_ADDRESS;
613
+ var _a;
614
+ if (!this.canResolveZeroAddressOutputToken(deposit)) {
615
+ return ZERO_ADDRESS;
616
+ }
617
+ // L1 token should be resolved if we get here:
618
+ var l1Token = this.hubPoolClient.getL1TokenForL2TokenAtBlock(deposit.inputToken, deposit.originChainId, deposit.quoteBlockNumber);
619
+ return ((_a = this.hubPoolClient.getL2TokenForL1TokenAtBlock(l1Token, deposit.destinationChainId, deposit.quoteBlockNumber)) !== null && _a !== void 0 ? _a : ZERO_ADDRESS);
606
620
  };
607
621
  /**
608
622
  * Performs a log for a specific level, message and data.