@across-protocol/sdk 4.1.31 → 4.1.33

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 (105) hide show
  1. package/dist/cjs/arch/evm/index.d.ts +1 -0
  2. package/dist/cjs/arch/evm/index.js +5 -0
  3. package/dist/cjs/arch/evm/index.js.map +1 -0
  4. package/dist/cjs/arch/index.d.ts +2 -0
  5. package/dist/cjs/arch/index.js +7 -0
  6. package/dist/cjs/arch/index.js.map +1 -0
  7. package/dist/cjs/arch/svm/index.d.ts +1 -0
  8. package/dist/cjs/arch/svm/index.js +5 -0
  9. package/dist/cjs/arch/svm/index.js.map +1 -0
  10. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +26 -5
  11. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  12. package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +2 -2
  13. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +19 -0
  14. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +170 -0
  15. package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -0
  16. package/dist/cjs/clients/{SpokePoolClient.d.ts → SpokePoolClient/SpokePoolClient.d.ts} +17 -21
  17. package/dist/cjs/clients/{SpokePoolClient.js → SpokePoolClient/SpokePoolClient.js} +24 -171
  18. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -0
  19. package/dist/cjs/clients/SpokePoolClient/index.d.ts +5 -0
  20. package/dist/cjs/clients/SpokePoolClient/index.js +13 -0
  21. package/dist/cjs/clients/SpokePoolClient/index.js.map +1 -0
  22. package/dist/cjs/clients/index.d.ts +1 -1
  23. package/dist/cjs/clients/index.js +2 -1
  24. package/dist/cjs/clients/index.js.map +1 -1
  25. package/dist/cjs/clients/mocks/MockSpokePoolClient.d.ts +2 -2
  26. package/dist/cjs/clients/mocks/MockSpokePoolClient.js +1 -1
  27. package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -1
  28. package/dist/cjs/utils/BundleUtils.js +7 -7
  29. package/dist/cjs/utils/BundleUtils.js.map +1 -1
  30. package/dist/cjs/utils/SpokeUtils.d.ts +2 -1
  31. package/dist/cjs/utils/SpokeUtils.js +18 -3
  32. package/dist/cjs/utils/SpokeUtils.js.map +1 -1
  33. package/dist/esm/arch/evm/index.d.ts +1 -0
  34. package/dist/esm/arch/evm/index.js +2 -0
  35. package/dist/esm/arch/evm/index.js.map +1 -0
  36. package/dist/esm/arch/index.d.ts +2 -0
  37. package/dist/esm/arch/index.js +5 -0
  38. package/dist/esm/arch/index.js.map +1 -0
  39. package/dist/esm/arch/svm/index.d.ts +1 -0
  40. package/dist/esm/arch/svm/index.js +2 -0
  41. package/dist/esm/arch/svm/index.js.map +1 -0
  42. package/dist/esm/clients/BundleDataClient/BundleDataClient.js +32 -5
  43. package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  44. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +2 -2
  45. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +22 -0
  46. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +174 -0
  47. package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -0
  48. package/dist/{types/clients → esm/clients/SpokePoolClient}/SpokePoolClient.d.ts +58 -56
  49. package/dist/esm/clients/{SpokePoolClient.js → SpokePoolClient/SpokePoolClient.js} +22 -209
  50. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -0
  51. package/dist/esm/clients/SpokePoolClient/index.d.ts +10 -0
  52. package/dist/esm/clients/SpokePoolClient/index.js +12 -0
  53. package/dist/esm/clients/SpokePoolClient/index.js.map +1 -0
  54. package/dist/esm/clients/index.d.ts +1 -1
  55. package/dist/esm/clients/index.js +1 -1
  56. package/dist/esm/clients/index.js.map +1 -1
  57. package/dist/esm/clients/mocks/MockSpokePoolClient.d.ts +2 -2
  58. package/dist/esm/clients/mocks/MockSpokePoolClient.js +2 -2
  59. package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -1
  60. package/dist/esm/utils/BundleUtils.js +7 -7
  61. package/dist/esm/utils/BundleUtils.js.map +1 -1
  62. package/dist/esm/utils/SpokeUtils.d.ts +8 -2
  63. package/dist/esm/utils/SpokeUtils.js +22 -3
  64. package/dist/esm/utils/SpokeUtils.js.map +1 -1
  65. package/dist/esm/utils/abi/typechain/Multicall3.d.ts +1 -4
  66. package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.js.map +1 -1
  67. package/dist/types/arch/evm/index.d.ts +2 -0
  68. package/dist/types/arch/evm/index.d.ts.map +1 -0
  69. package/dist/types/arch/index.d.ts +3 -0
  70. package/dist/types/arch/index.d.ts.map +1 -0
  71. package/dist/types/arch/svm/index.d.ts +2 -0
  72. package/dist/types/arch/svm/index.d.ts.map +1 -0
  73. package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
  74. package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +2 -2
  75. package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +23 -0
  76. package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts.map +1 -0
  77. package/dist/{esm/clients → types/clients/SpokePoolClient}/SpokePoolClient.d.ts +59 -55
  78. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -0
  79. package/dist/types/clients/SpokePoolClient/index.d.ts +11 -0
  80. package/dist/types/clients/SpokePoolClient/index.d.ts.map +1 -0
  81. package/dist/types/clients/index.d.ts +1 -1
  82. package/dist/types/clients/index.d.ts.map +1 -1
  83. package/dist/types/clients/mocks/MockSpokePoolClient.d.ts +2 -2
  84. package/dist/types/clients/mocks/MockSpokePoolClient.d.ts.map +1 -1
  85. package/dist/types/utils/SpokeUtils.d.ts +8 -2
  86. package/dist/types/utils/SpokeUtils.d.ts.map +1 -1
  87. package/dist/types/utils/abi/typechain/Multicall3.d.ts +1 -4
  88. package/dist/types/utils/abi/typechain/Multicall3.d.ts.map +1 -1
  89. package/dist/types/utils/abi/typechain/common.d.ts.map +1 -1
  90. package/dist/types/utils/abi/typechain/factories/Multicall3__factory.d.ts.map +1 -1
  91. package/package.json +4 -3
  92. package/src/arch/evm/index.ts +1 -0
  93. package/src/arch/index.ts +2 -0
  94. package/src/arch/svm/index.ts +1 -0
  95. package/src/clients/BundleDataClient/BundleDataClient.ts +31 -3
  96. package/src/clients/SpokePoolClient/EVMSpokePoolClient.ts +206 -0
  97. package/src/clients/{SpokePoolClient.ts → SpokePoolClient/SpokePoolClient.ts} +88 -233
  98. package/src/clients/SpokePoolClient/index.ts +14 -0
  99. package/src/clients/index.ts +1 -1
  100. package/src/clients/mocks/MockSpokePoolClient.ts +2 -2
  101. package/src/utils/BundleUtils.ts +6 -6
  102. package/src/utils/SpokeUtils.ts +14 -3
  103. package/dist/cjs/clients/SpokePoolClient.js.map +0 -1
  104. package/dist/esm/clients/SpokePoolClient.js.map +0 -1
  105. package/dist/types/clients/SpokePoolClient.d.ts.map +0 -1
@@ -1,4 +1,3 @@
1
- import { Contract, EventFilter } from "ethers";
2
1
  import winston from "winston";
3
2
  import {
4
3
  AnyObject,
@@ -11,24 +10,21 @@ import {
11
10
  MakeOptional,
12
11
  assign,
13
12
  getRelayEventKey,
14
- InvalidFill,
15
13
  isDefined,
16
- toBN,
17
14
  getMessageHash,
18
15
  isSlowFill,
19
16
  isValidEvmAddress,
20
17
  isZeroAddress,
21
18
  toAddress,
22
19
  validateFillForDeposit,
23
- } from "../utils";
20
+ } from "../../utils";
24
21
  import {
25
22
  duplicateEvent,
26
- paginatedEventQuery,
27
23
  sortEventsAscendingInPlace,
28
24
  spreadEvent,
29
25
  spreadEventWithBlockNumber,
30
- } from "../utils/EventUtils";
31
- import { ZERO_ADDRESS } from "../constants";
26
+ } from "../../utils/EventUtils";
27
+ import { ZERO_ADDRESS } from "../../constants";
32
28
  import {
33
29
  Deposit,
34
30
  DepositWithBlock,
@@ -42,36 +38,44 @@ import {
42
38
  SlowFillRequestWithBlock,
43
39
  SpeedUpWithBlock,
44
40
  TokensBridged,
45
- } from "../interfaces";
46
- import { getNetworkName } from "../utils/NetworkUtils";
47
- import {
48
- findDepositBlock,
49
- getMaxFillDeadlineInRange as getMaxFillDeadline,
50
- getTimeAt as _getTimeAt,
51
- relayFillStatus,
52
- } from "../utils/SpokeUtils";
53
- import { BaseAbstractClient, isUpdateFailureReason, UpdateFailureReason } from "./BaseAbstractClient";
54
- import { HubPoolClient } from "./HubPoolClient";
55
- import { AcrossConfigStoreClient } from "./AcrossConfigStoreClient";
56
- import { getRepaymentChainId, forceDestinationRepayment } from "./BundleDataClient/utils/FillUtils";
57
-
58
- type SpokePoolUpdateSuccess = {
41
+ } from "../../interfaces";
42
+ import { BaseAbstractClient, UpdateFailureReason } from "../BaseAbstractClient";
43
+ import { AcrossConfigStoreClient } from "../AcrossConfigStoreClient";
44
+ import { getRepaymentChainId, forceDestinationRepayment } from "../BundleDataClient";
45
+ import { HubPoolClient } from "../HubPoolClient";
46
+
47
+ export type SpokePoolUpdateSuccess = {
59
48
  success: true;
60
49
  currentTime: number;
61
50
  events: Log[][];
62
51
  searchEndBlock: number;
63
52
  };
64
- type SpokePoolUpdateFailure = {
53
+ export type SpokePoolUpdateFailure = {
65
54
  success: false;
66
55
  reason: UpdateFailureReason;
67
56
  };
68
57
  export type SpokePoolUpdate = SpokePoolUpdateSuccess | SpokePoolUpdateFailure;
69
58
 
59
+ export const knownEventNames = [
60
+ "EnabledDepositRoute",
61
+ "TokensBridged",
62
+ "RelayedRootBundle",
63
+ "ExecutedRelayerRefundRoot",
64
+ "V3FundsDeposited",
65
+ "FundsDeposited",
66
+ "RequestedSpeedUpV3Deposit",
67
+ "RequestedSpeedUpDeposit",
68
+ "RequestedV3SlowFill",
69
+ "RequestedSlowFill",
70
+ "FilledV3Relay",
71
+ "FilledRelay",
72
+ ];
73
+
70
74
  /**
71
75
  * SpokePoolClient is a client for the SpokePool contract. It is responsible for querying the SpokePool contract
72
76
  * for events and storing them in memory. It also provides some convenience methods for querying the stored events.
73
77
  */
74
- export class SpokePoolClient extends BaseAbstractClient {
78
+ export abstract class SpokePoolClient extends BaseAbstractClient {
75
79
  protected currentTime = 0;
76
80
  protected depositHashes: { [depositHash: string]: DepositWithBlock } = {};
77
81
  protected duplicateDepositHashes: { [depositHash: string]: DepositWithBlock[] } = {};
@@ -82,7 +86,6 @@ export class SpokePoolClient extends BaseAbstractClient {
82
86
  protected tokensBridged: TokensBridged[] = [];
83
87
  protected rootBundleRelays: RootBundleRelayWithBlock[] = [];
84
88
  protected relayerRefundExecutions: RelayerRefundExecutionWithBlock[] = [];
85
- protected queryableEventNames: string[] = [];
86
89
  protected configStoreClient: AcrossConfigStoreClient | undefined;
87
90
  protected invalidFills: Set<string> = new Set();
88
91
  public fills: { [OriginChainId: number]: FillWithBlock[] } = {};
@@ -90,15 +93,13 @@ export class SpokePoolClient extends BaseAbstractClient {
90
93
  /**
91
94
  * Creates a new SpokePoolClient.
92
95
  * @param logger A logger instance.
93
- * @param spokePool The SpokePool contract instance that this client will query.
94
96
  * @param hubPoolClient An optional HubPoolClient instance. This is used to fetch spoke data that is not stored on the SpokePool contract but is stored on the HubPool contract.
95
97
  * @param chainId The chain ID of the chain that this client is querying.
96
98
  * @param deploymentBlock The block number that the SpokePool contract was deployed at.
97
99
  * @param eventSearchConfig An optional EventSearchConfig object that controls how far back in history the client will search for events. If not provided, the client will only search for events from the deployment block.
98
100
  */
99
- constructor(
101
+ protected constructor(
100
102
  readonly logger: winston.Logger,
101
- readonly spokePool: Contract,
102
103
  // Can be excluded. This disables some deposit validation.
103
104
  readonly hubPoolClient: HubPoolClient | null,
104
105
  readonly chainId: number,
@@ -108,32 +109,9 @@ export class SpokePoolClient extends BaseAbstractClient {
108
109
  super(eventSearchConfig);
109
110
  this.firstBlockToSearch = eventSearchConfig.fromBlock;
110
111
  this.latestBlockSearched = 0;
111
- this.queryableEventNames = Object.keys(this._queryableEventNames());
112
112
  this.configStoreClient = hubPoolClient?.configStoreClient;
113
113
  }
114
114
 
115
- public _queryableEventNames(): { [eventName: string]: EventFilter } {
116
- const knownEventNames = [
117
- "EnabledDepositRoute",
118
- "TokensBridged",
119
- "RelayedRootBundle",
120
- "ExecutedRelayerRefundRoot",
121
- "V3FundsDeposited",
122
- "FundsDeposited",
123
- "RequestedSpeedUpV3Deposit",
124
- "RequestedSpeedUpDeposit",
125
- "RequestedV3SlowFill",
126
- "RequestedSlowFill",
127
- "FilledV3Relay",
128
- "FilledRelay",
129
- ];
130
- return Object.fromEntries(
131
- this.spokePool.interface.fragments
132
- .filter(({ name, type }) => type === "event" && knownEventNames.includes(name))
133
- .map(({ name }) => [name, this.spokePool.filters[name]()])
134
- );
135
- }
136
-
137
115
  /**
138
116
  * Retrieves a list of unique deposits from the SpokePool contract destined for the given destination chain ID.
139
117
  * @param destinationChainId The destination chain ID.
@@ -472,96 +450,6 @@ export class SpokePoolClient extends BaseAbstractClient {
472
450
  return `${event.depositId.toString()}-${event.originChainId}`;
473
451
  }
474
452
 
475
- /**
476
- * @notice Return maximum of fill deadline buffer at start and end of block range. This is a contract
477
- * immutable state variable so we can't query other events to find its updates.
478
- * @dev V3 deposits have a fill deadline which can be set to a maximum of fillDeadlineBuffer + deposit.block.timestamp.
479
- * Therefore, we cannot evaluate a block range for expired deposits if the spoke pool client doesn't return us
480
- * deposits whose block.timestamp is within fillDeadlineBuffer of the end block time. As a conservative check,
481
- * we verify that the time between the end block timestamp and the first timestamp queried by the
482
- * spoke pool client is greater than the maximum of the fill deadline buffers at the start and end of the block
483
- * range. We assume the fill deadline buffer wasn't changed more than once within a bundle.
484
- * @param startBlock start block
485
- * @param endBlock end block
486
- * @returns maximum of fill deadline buffer at start and end block
487
- */
488
- public getMaxFillDeadlineInRange(startBlock: number, endBlock: number): Promise<number> {
489
- return getMaxFillDeadline(this.spokePool, startBlock, endBlock);
490
- }
491
-
492
- /**
493
- * Performs an update to refresh the state of this client. This will query the SpokePool contract for new events
494
- * and store them in memory. This method is the primary method for updating the state of this client.
495
- * @param eventsToQuery An optional list of events to query. If not provided, all events will be queried.
496
- * @returns A Promise that resolves to a SpokePoolUpdate object.
497
- */
498
- protected async _update(eventsToQuery: string[]): Promise<SpokePoolUpdate> {
499
- const searchConfig = await this.updateSearchConfig(this.spokePool.provider);
500
- if (isUpdateFailureReason(searchConfig)) {
501
- const reason = searchConfig;
502
- return { success: false, reason };
503
- }
504
-
505
- const eventSearchConfigs = eventsToQuery.map((eventName) => {
506
- if (!this.queryableEventNames.includes(eventName)) {
507
- throw new Error(`SpokePoolClient: Cannot query unrecognised SpokePool event name: ${eventName}`);
508
- }
509
-
510
- const _searchConfig = { ...searchConfig }; // shallow copy
511
-
512
- // By default, an event's query range is controlled by the `eventSearchConfig` passed in during instantiation.
513
- // However, certain events have special overriding requirements to their search ranges:
514
- // - EnabledDepositRoute: The full history is always required, so override the requested fromBlock.
515
- if (eventName === "EnabledDepositRoute" && !this.isUpdated) {
516
- _searchConfig.fromBlock = this.deploymentBlock;
517
- }
518
-
519
- return {
520
- filter: this._queryableEventNames()[eventName],
521
- searchConfig: _searchConfig,
522
- };
523
- });
524
-
525
- const { spokePool } = this;
526
- this.log("debug", `Updating SpokePool client for chain ${this.chainId}`, {
527
- eventsToQuery,
528
- searchConfig,
529
- spokePool: spokePool.address,
530
- });
531
-
532
- const timerStart = Date.now();
533
- const multicallFunctions = ["getCurrentTime"];
534
- const [multicallOutput, ...events] = await Promise.all([
535
- spokePool.callStatic.multicall(
536
- multicallFunctions.map((f) => spokePool.interface.encodeFunctionData(f)),
537
- { blockTag: searchConfig.toBlock }
538
- ),
539
- ...eventSearchConfigs.map((config) => paginatedEventQuery(this.spokePool, config.filter, config.searchConfig)),
540
- ]);
541
- this.log("debug", `Time to query new events from RPC for ${this.chainId}: ${Date.now() - timerStart} ms`);
542
-
543
- const [currentTime] = multicallFunctions.map(
544
- (fn, idx) => spokePool.interface.decodeFunctionResult(fn, multicallOutput[idx])[0]
545
- );
546
-
547
- if (!BigNumber.isBigNumber(currentTime) || currentTime.lt(this.currentTime)) {
548
- const errMsg = BigNumber.isBigNumber(currentTime)
549
- ? `currentTime: ${currentTime} < ${toBN(this.currentTime)}`
550
- : `currentTime is not a BigNumber: ${JSON.stringify(currentTime)}`;
551
- throw new Error(`SpokePoolClient::update: ${errMsg}`);
552
- }
553
-
554
- // Sort all events to ensure they are stored in a consistent order.
555
- events.forEach((events) => sortEventsAscendingInPlace(events));
556
-
557
- return {
558
- success: true,
559
- currentTime: currentTime.toNumber(), // uint32
560
- searchEndBlock: searchConfig.toBlock,
561
- events,
562
- };
563
- }
564
-
565
453
  /**
566
454
  * A wrapper over the `_update` method that handles errors and logs. This method additionally calls into the
567
455
  * HubPoolClient to update the state of this client with data from the HubPool contract.
@@ -570,7 +458,7 @@ export class SpokePoolClient extends BaseAbstractClient {
570
458
  * @note This method is the primary method for updating the state of this client externally.
571
459
  * @see _update
572
460
  */
573
- public async update(eventsToQuery = this.queryableEventNames): Promise<void> {
461
+ public async update(eventsToQuery = this._queryableEventNames()): Promise<void> {
574
462
  const duplicateEvents: Log[] = [];
575
463
  if (this.hubPoolClient !== null && !this.hubPoolClient.isUpdated) {
576
464
  throw new Error("HubPoolClient not updated");
@@ -843,90 +731,6 @@ export class SpokePoolClient extends BaseAbstractClient {
843
731
  return this.currentTime;
844
732
  }
845
733
 
846
- /**
847
- * Retrieves the SpokePool chain time at a particular block.
848
- * @returns The time at the specified block tag.
849
- */
850
- public getTimeAt(blockNumber: number): Promise<number> {
851
- return _getTimeAt(this.spokePool.provider, blockNumber);
852
- }
853
-
854
- /**
855
- * For a given origin chain depositId, resolve the corresponding Deposit.
856
- * Note: This method can only be used for depositIds within the non-deterministic range (0 < depositId < 2^32 - 1).
857
- * @param depositId Deposit ID of the deposit to resolve.
858
- * @returns A DepositSearchResult instance.
859
- */
860
- async findDeposit(depositId: BigNumber): Promise<DepositSearchResult> {
861
- let deposit = this.getDeposit(depositId);
862
- if (deposit) {
863
- return { found: true, deposit };
864
- }
865
-
866
- // No deposit found; revert to searching for it.
867
- const upperBound = this.latestBlockSearched || undefined; // Don't permit block 0 as the high block.
868
- const fromBlock = await findDepositBlock(this.spokePool, depositId, this.deploymentBlock, upperBound);
869
- const chain = getNetworkName(this.chainId);
870
- if (!fromBlock) {
871
- const reason =
872
- `Unable to find ${chain} depositId ${depositId}` +
873
- ` within blocks [${this.deploymentBlock}, ${upperBound ?? "latest"}].`;
874
- return { found: false, code: InvalidFill.DepositIdNotFound, reason };
875
- }
876
-
877
- const toBlock = fromBlock;
878
- const tStart = Date.now();
879
- // Check both V3FundsDeposited and FundsDeposited events to look for a specified depositId.
880
- const { maxBlockLookBack } = this.eventSearchConfig;
881
- const query = (
882
- await Promise.all([
883
- paginatedEventQuery(
884
- this.spokePool,
885
- this.spokePool.filters.V3FundsDeposited(null, null, null, null, null, depositId),
886
- { fromBlock, toBlock, maxBlockLookBack }
887
- ),
888
- paginatedEventQuery(
889
- this.spokePool,
890
- this.spokePool.filters.FundsDeposited(null, null, null, null, null, depositId),
891
- { fromBlock, toBlock, maxBlockLookBack }
892
- ),
893
- ])
894
- ).flat();
895
- const tStop = Date.now();
896
-
897
- const event = query.find(({ args }) => args["depositId"].eq(depositId));
898
- if (event === undefined) {
899
- return {
900
- found: false,
901
- code: InvalidFill.DepositIdNotFound,
902
- reason: `${chain} depositId ${depositId} not found at block ${fromBlock}.`,
903
- };
904
- }
905
-
906
- deposit = {
907
- ...spreadEventWithBlockNumber(event),
908
- originChainId: this.chainId,
909
- quoteBlockNumber: await this.getBlockNumber(Number(event.args["quoteTimestamp"])),
910
- fromLiteChain: true, // To be updated immediately afterwards.
911
- toLiteChain: true, // To be updated immediately afterwards.
912
- } as DepositWithBlock;
913
-
914
- if (isZeroAddress(deposit.outputToken)) {
915
- deposit.outputToken = this.getDestinationTokenForDeposit(deposit);
916
- }
917
- deposit.fromLiteChain = this.isOriginLiteChain(deposit);
918
- deposit.toLiteChain = this.isDestinationLiteChain(deposit);
919
-
920
- this.logger.debug({
921
- at: "SpokePoolClient#findDeposit",
922
- message: "Located V3 deposit outside of SpokePoolClient's search range",
923
- deposit,
924
- elapsedMs: tStop - tStart,
925
- });
926
-
927
- return { found: true, deposit };
928
- }
929
-
930
734
  /**
931
735
  * Determines whether a deposit originates from a lite chain.
932
736
  * @param deposit The deposit to evaluate.
@@ -949,17 +753,68 @@ export class SpokePoolClient extends BaseAbstractClient {
949
753
  );
950
754
  }
951
755
 
756
+ // ///////////////////////
757
+ // // ABSTRACT METHODS //
758
+ // ///////////////////////
759
+
952
760
  /**
953
- * Find the amount filled for a deposit at a particular block.
954
- * @param relayData Deposit information that is used to complete a fill.
955
- * @param blockTag Block tag (numeric or "latest") to query at.
956
- * @returns The amount filled for the specified deposit at the requested block (or latest).
761
+ * Returns a list of event names that are queryable for the SpokePoolClient.
762
+ * @returns A list of event names that are queryable for the SpokePoolClient.
763
+ */
764
+ public abstract _queryableEventNames(): string[];
765
+
766
+ /**
767
+ * Performs an update to refresh the state of this client. This will query the SpokePool contract for new events
768
+ * and store them in memory. This method is the primary method for updating the state of this client.
769
+ * @param eventsToQuery An optional list of events to query. If not provided, all events will be queried.
770
+ * @returns A Promise that resolves to a SpokePoolUpdate object.
957
771
  */
958
- public relayFillStatus(
772
+ protected abstract _update(eventsToQuery: string[]): Promise<SpokePoolUpdate>;
773
+
774
+ /**
775
+ * @notice Return maximum of fill deadline buffer at start and end of block range. This is a contract
776
+ * immutable state variable so we can't query other events to find its updates.
777
+ * @dev V3 deposits have a fill deadline which can be set to a maximum of fillDeadlineBuffer + deposit.block.timestamp.
778
+ * Therefore, we cannot evaluate a block range for expired deposits if the spoke pool client doesn't return us
779
+ * deposits whose block.timestamp is within fillDeadlineBuffer of the end block time. As a conservative check,
780
+ * we verify that the time between the end block timestamp and the first timestamp queried by the
781
+ * spoke pool client is greater than the maximum of the fill deadline buffers at the start and end of the block
782
+ * range. We assume the fill deadline buffer wasn't changed more than once within a bundle.
783
+ * @param startBlock start block
784
+ * @param endBlock end block
785
+ * @returns maximum of fill deadline buffer at start and end block
786
+ */
787
+ public abstract getMaxFillDeadlineInRange(startBlock: number, endBlock: number): Promise<number>;
788
+
789
+ /**
790
+ * Retrieves the timestamp for a given block number.
791
+ * @param blockTag The block number to retrieve the timestamp for.
792
+ * @returns The timestamp for the given block number.
793
+ */
794
+ public abstract getTimestampForBlock(blockTag: number): Promise<number>;
795
+
796
+ /**
797
+ * Retrieves the time from the SpokePool contract at a particular block.
798
+ * @returns The time at the specified block tag.
799
+ */
800
+ public abstract getTimeAt(blockNumber: number): Promise<number>;
801
+
802
+ /**
803
+ * For a given origin chain depositId, resolve the corresponding Deposit.
804
+ * Note: This method can only be used for depositIds within the non-deterministic range (0 < depositId < 2^32 - 1).
805
+ * @param depositId Deposit ID of the deposit to resolve.
806
+ * @returns A DepositSearchResult instance.
807
+ */
808
+ public abstract findDeposit(depositId: BigNumber): Promise<DepositSearchResult>;
809
+
810
+ /**
811
+ * Retrieves the fill status for a given relay data.
812
+ * @param relayData The relay data to retrieve the fill status for.
813
+ * @returns The fill status for the given relay data.
814
+ */
815
+ public abstract relayFillStatus(
959
816
  relayData: RelayData,
960
817
  blockTag?: number | "latest",
961
818
  destinationChainId?: number
962
- ): Promise<FillStatus> {
963
- return relayFillStatus(this.spokePool, relayData, blockTag, destinationChainId);
964
- }
819
+ ): Promise<FillStatus>;
965
820
  }
@@ -0,0 +1,14 @@
1
+ import { EVMSpokePoolClient } from "./EVMSpokePoolClient";
2
+ import { SpokePoolClient } from "./SpokePoolClient";
3
+
4
+ export { EVMSpokePoolClient } from "./EVMSpokePoolClient";
5
+ export { SpokePoolClient, SpokePoolUpdate } from "./SpokePoolClient";
6
+
7
+ /**
8
+ * Checks if a SpokePoolClient is an EVMSpokePoolClient.
9
+ * @param spokePoolClient The SpokePoolClient to check.
10
+ * @returns True if the SpokePoolClient is an EVMSpokePoolClient, false otherwise.
11
+ */
12
+ export function isEVMSpokePoolClient(spokePoolClient: SpokePoolClient): spokePoolClient is EVMSpokePoolClient {
13
+ return spokePoolClient instanceof EVMSpokePoolClient;
14
+ }
@@ -6,6 +6,6 @@ export {
6
6
  } from "./AcrossConfigStoreClient";
7
7
  export { UpdateFailureReason } from "./BaseAbstractClient";
8
8
  export { HubPoolClient, LpFeeRequest } from "./HubPoolClient";
9
- export { SpokePoolClient, SpokePoolUpdate } from "./SpokePoolClient";
9
+ export { SpokePoolClient, SpokePoolUpdate, EVMSpokePoolClient } from "./SpokePoolClient";
10
10
  export * as BundleDataClient from "./BundleDataClient";
11
11
  export * as mocks from "./mocks";
@@ -28,14 +28,14 @@ import {
28
28
  toAddress,
29
29
  toBytes32,
30
30
  } from "../../utils";
31
- import { SpokePoolClient, SpokePoolUpdate } from "../SpokePoolClient";
31
+ import { EVMSpokePoolClient, SpokePoolUpdate } from "../SpokePoolClient";
32
32
  import { HubPoolClient } from "../HubPoolClient";
33
33
  import { EventManager, EventOverrides, getEventManager } from "./MockEvents";
34
34
  import { AcrossConfigStoreClient } from "../AcrossConfigStoreClient";
35
35
 
36
36
  // This class replaces internal SpokePoolClient functionality, enabling
37
37
  // the user to bypass on-chain queries and inject Log objects directly.
38
- export class MockSpokePoolClient extends SpokePoolClient {
38
+ export class MockSpokePoolClient extends EVMSpokePoolClient {
39
39
  public eventManager: EventManager;
40
40
  private destinationTokenForChainOverride: Record<number, string> = {};
41
41
  // Allow tester to set the numberOfDeposits() returned by SpokePool at a block height.
@@ -74,15 +74,15 @@ export function getImpliedBundleBlockRanges(
74
74
 
75
75
  // Load all chain indices in order to map bundle evaluation block numbers to enabled chains list.
76
76
  const chainIdIndices = configStoreClient.getChainIdIndicesForBlock(rootBundle.blockNumber);
77
- const result = rootBundle.bundleEvaluationBlockNumbers.map((endBlock, i) => {
78
- const fromBlock = prevRootBundle?.bundleEvaluationBlockNumbers?.[i]
79
- ? prevRootBundle.bundleEvaluationBlockNumbers[i].toNumber() + 1
80
- : 0;
77
+ const result = rootBundle.bundleEvaluationBlockNumbers.map((_endBlock, i) => {
78
+ const endBlock = _endBlock.toNumber();
79
+ const bundleEndBlock = prevRootBundle?.bundleEvaluationBlockNumbers?.[i]?.toNumber() ?? 0;
80
+ const fromBlock = bundleEndBlock === endBlock ? endBlock : bundleEndBlock + 1;
81
81
  const chainId = chainIdIndices[i];
82
82
  if (!enabledChainsAtMainnetStartBlock.includes(chainId)) {
83
- return [endBlock.toNumber(), endBlock.toNumber()];
83
+ return [endBlock, endBlock];
84
84
  }
85
- return [fromBlock, endBlock.toNumber()];
85
+ return [fromBlock, endBlock];
86
86
  });
87
87
 
88
88
  // Lastly, sanity check the results to catch errors early:
@@ -3,7 +3,7 @@ import { BytesLike, Contract, PopulatedTransaction, providers, utils as ethersUt
3
3
  import { CHAIN_IDs, MAX_SAFE_DEPOSIT_ID, ZERO_ADDRESS, ZERO_BYTES } from "../constants";
4
4
  import { Deposit, FillStatus, FillWithBlock, RelayData } from "../interfaces";
5
5
  import { chunk } from "./ArrayUtils";
6
- import { BigNumber, toBN, bnZero } from "./BigNumberUtils";
6
+ import { bnUint32Max, BigNumber, toBN, bnZero } from "./BigNumberUtils";
7
7
  import { keccak256 } from "./common";
8
8
  import { isMessageEmpty } from "./DepositUtils";
9
9
  import { isDefined } from "./TypeGuards";
@@ -59,10 +59,21 @@ export function populateV3Relay(
59
59
  }
60
60
 
61
61
  /**
62
- * Retrieves the chain time at a particular block.
62
+ * Retrieves the time from the SpokePool contract at a particular block.
63
63
  * @returns The time at the specified block tag.
64
64
  */
65
- export async function getTimeAt(provider: providers.Provider, blockNumber: number): Promise<number> {
65
+ export async function getTimeAt(spokePool: Contract, blockNumber: number): Promise<number> {
66
+ const currentTime = await spokePool.getCurrentTime({ blockTag: blockNumber });
67
+ assert(BigNumber.isBigNumber(currentTime) && currentTime.lt(bnUint32Max));
68
+ return currentTime.toNumber();
69
+ }
70
+
71
+ /**
72
+ * Retrieves the chain time at a particular block.
73
+ * @note This should be the same as getTimeAt() but can differ in test. These two functions should be consolidated.
74
+ * @returns The chain time at the specified block tag.
75
+ */
76
+ export async function getTimestampForBlock(provider: providers.Provider, blockNumber: number): Promise<number> {
66
77
  const block = await provider.getBlock(blockNumber);
67
78
  return block.timestamp;
68
79
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpokePoolClient.js","sourceRoot":"","sources":["../../../src/clients/SpokePoolClient.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpokePoolClient.js","sourceRoot":"","sources":["../../../src/clients/SpokePoolClient.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpokePoolClient.d.ts","sourceRoot":"","sources":["../../../src/clients/SpokePoolClient.ts"],"names":[],"mappings":"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"}