@across-protocol/sdk 3.1.0 → 3.1.2

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 (45) hide show
  1. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +4 -2
  2. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +15 -1
  3. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
  4. package/dist/cjs/clients/SpokePoolClient.d.ts +3 -2
  5. package/dist/cjs/clients/SpokePoolClient.js +7 -7
  6. package/dist/cjs/clients/SpokePoolClient.js.map +1 -1
  7. package/dist/cjs/clients/mocks/MockSpokePoolClient.d.ts +2 -0
  8. package/dist/cjs/clients/mocks/MockSpokePoolClient.js +3 -0
  9. package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -1
  10. package/dist/cjs/interfaces/ConfigStore.d.ts +3 -0
  11. package/dist/cjs/interfaces/SpokePool.d.ts +1 -0
  12. package/dist/cjs/interfaces/SpokePool.js.map +1 -1
  13. package/dist/cjs/utils/BlockUtils.js +8 -7
  14. package/dist/cjs/utils/BlockUtils.js.map +1 -1
  15. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +16 -2
  16. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +30 -1
  17. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
  18. package/dist/esm/clients/SpokePoolClient.d.ts +9 -12
  19. package/dist/esm/clients/SpokePoolClient.js +13 -17
  20. package/dist/esm/clients/SpokePoolClient.js.map +1 -1
  21. package/dist/esm/clients/mocks/MockSpokePoolClient.d.ts +2 -0
  22. package/dist/esm/clients/mocks/MockSpokePoolClient.js +3 -0
  23. package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -1
  24. package/dist/esm/interfaces/ConfigStore.d.ts +3 -0
  25. package/dist/esm/interfaces/SpokePool.d.ts +1 -0
  26. package/dist/esm/interfaces/SpokePool.js.map +1 -1
  27. package/dist/esm/utils/BlockUtils.js +9 -8
  28. package/dist/esm/utils/BlockUtils.js.map +1 -1
  29. package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +16 -2
  30. package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts.map +1 -1
  31. package/dist/types/clients/SpokePoolClient.d.ts +9 -12
  32. package/dist/types/clients/SpokePoolClient.d.ts.map +1 -1
  33. package/dist/types/clients/mocks/MockSpokePoolClient.d.ts +2 -0
  34. package/dist/types/clients/mocks/MockSpokePoolClient.d.ts.map +1 -1
  35. package/dist/types/interfaces/ConfigStore.d.ts +3 -0
  36. package/dist/types/interfaces/ConfigStore.d.ts.map +1 -1
  37. package/dist/types/interfaces/SpokePool.d.ts +1 -0
  38. package/dist/types/interfaces/SpokePool.d.ts.map +1 -1
  39. package/package.json +1 -1
  40. package/src/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.ts +33 -2
  41. package/src/clients/SpokePoolClient.ts +16 -18
  42. package/src/clients/mocks/MockSpokePoolClient.ts +5 -0
  43. package/src/interfaces/ConfigStore.ts +4 -0
  44. package/src/interfaces/SpokePool.ts +1 -0
  45. package/src/utils/BlockUtils.ts +6 -6
@@ -4,6 +4,7 @@ import { DepositWithBlock, V3FundsDepositedEvent, RealizedLpFee, RelayerRefundEx
4
4
  import { SpokePoolClient, SpokePoolUpdate } from "../SpokePoolClient";
5
5
  import { HubPoolClient } from "../HubPoolClient";
6
6
  import { EventManager, EventOverrides } from "./MockEvents";
7
+ import { AcrossConfigStoreClient } from "../AcrossConfigStoreClient";
7
8
  type Block = providers.Block;
8
9
  export declare class MockSpokePoolClient extends SpokePoolClient {
9
10
  eventManager: EventManager;
@@ -17,6 +18,7 @@ export declare class MockSpokePoolClient extends SpokePoolClient {
17
18
  hubPoolClient: HubPoolClient | null;
18
19
  });
19
20
  setDefaultRealizedLpFeePct(fee: BigNumber): void;
21
+ setConfigStoreClient(configStore?: AcrossConfigStoreClient): void;
20
22
  clearDefaultRealizedLpFeePct(): void;
21
23
  computeRealizedLpFeePct(depositEvent: V3FundsDepositedEvent): Promise<RealizedLpFee>;
22
24
  batchComputeRealizedLpFeePct(depositEvents: V3FundsDepositedEvent[]): Promise<RealizedLpFee[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"MockSpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/mocks/MockSpokePoolClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE/D,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EACL,gBAAgB,EAEhB,qBAAqB,EACrB,aAAa,EACb,+BAA+B,EAC/B,wBAAwB,EAExB,aAAa,EACb,YAAY,EACZ,OAAO,EACR,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAmB,MAAM,cAAc,CAAC;AAE7E,KAAK,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;AAI7B,qBAAa,mBAAoB,SAAQ,eAAe;IAC/C,YAAY,EAAE,YAAY,CAAC;IAClC,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,gCAAgC,CAA8B;IAE/D,gBAAgB,EAAE,MAAM,EAAE,CAAM;IAChC,gBAAgB,SAAK;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAM;gBAGxC,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,IAAI,GAAE;QAAE,aAAa,EAAE,aAAa,GAAG,IAAI,CAAA;KAA4B;IAOzE,0BAA0B,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAKhD,4BAA4B,IAAI,IAAI;IAI9B,uBAAuB,CAAC,YAAY,EAAE,qBAAqB;IAQ3D,4BAA4B,CAAC,aAAa,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IASpG,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjE,6BAA6B,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM;IAIhE,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI/C,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI;IAc1C,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIjD,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAsChE,SAAgB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIrD;IAEF,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,KAAK;IA8C3C,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,KAAK;IAkDvC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK;IAazC,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK;IAmB3D,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK;IAiBjD,wBAAwB,CAAC,MAAM,EAAE,+BAA+B,GAAG,KAAK;IA2BxE,cAAc,CACZ,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,cAAmB,GAC7B,KAAK;CAcT"}
1
+ {"version":3,"file":"MockSpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/mocks/MockSpokePoolClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE/D,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EACL,gBAAgB,EAEhB,qBAAqB,EACrB,aAAa,EACb,+BAA+B,EAC/B,wBAAwB,EAExB,aAAa,EACb,YAAY,EACZ,OAAO,EACR,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAmB,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE,KAAK,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;AAI7B,qBAAa,mBAAoB,SAAQ,eAAe;IAC/C,YAAY,EAAE,YAAY,CAAC;IAClC,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,gCAAgC,CAA8B;IAE/D,gBAAgB,EAAE,MAAM,EAAE,CAAM;IAChC,gBAAgB,SAAK;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAM;gBAGxC,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,IAAI,GAAE;QAAE,aAAa,EAAE,aAAa,GAAG,IAAI,CAAA;KAA4B;IAOzE,0BAA0B,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAKhD,oBAAoB,CAAC,WAAW,CAAC,EAAE,uBAAuB,GAAG,IAAI;IAIjE,4BAA4B,IAAI,IAAI;IAI9B,uBAAuB,CAAC,YAAY,EAAE,qBAAqB;IAQ3D,4BAA4B,CAAC,aAAa,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IASpG,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjE,6BAA6B,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM;IAIhE,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI/C,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI;IAc1C,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIjD,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAsChE,SAAgB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIrD;IAEF,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,KAAK;IA8C3C,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,KAAK;IAkDvC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK;IAazC,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,KAAK;IAmB3D,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK;IAiBjD,wBAAwB,CAAC,MAAM,EAAE,+BAA+B,GAAG,KAAK;IA2BxE,cAAc,CACZ,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,cAAmB,GAC7B,KAAK;CAcT"}
@@ -53,6 +53,9 @@ export interface ConfigStoreVersionUpdate<ValueStore = number> extends GlobalCon
53
53
  export interface DisabledChainsUpdate extends SortableEvent {
54
54
  chainIds: number[];
55
55
  }
56
+ export interface LiteChainsIdListUpdate<ValueStore = number[]> extends GlobalConfigUpdate<ValueStore> {
57
+ timestamp: number;
58
+ }
56
59
  /**
57
60
  * A generic type of a dictionary that has string keys and values of type T. This
58
61
  * record is enforced to have a default entry within the "default" key.
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigStore.d.ts","sourceRoot":"","sources":["../../../src/interfaces/ConfigStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigStore.d.ts","sourceRoot":"","sources":["../../../src/interfaces/ConfigStore.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,7 @@ export interface Deposit extends RelayData {
25
25
  updatedRecipient?: string;
26
26
  updatedOutputAmount?: BigNumber;
27
27
  updatedMessage?: string;
28
+ originatesFromLiteChain: boolean;
28
29
  }
29
30
  export interface DepositWithBlock extends Deposit, SortableEvent {
30
31
  quoteBlockNumber: number;
@@ -1 +1 @@
1
- {"version":3,"file":"SpokePool.d.ts","sourceRoot":"","sources":["../../../src/interfaces/SpokePool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpokePool.d.ts","sourceRoot":"","sources":["../../../src/interfaces/SpokePool.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@across-protocol/sdk",
3
3
  "author": "UMA Team",
4
- "version": "3.1.0",
4
+ "version": "3.1.2",
5
5
  "license": "AGPL-3.0",
6
6
  "homepage": "https://docs.across.to/reference/sdk",
7
7
  "files": [
@@ -24,6 +24,7 @@ import {
24
24
  ConfigStoreVersionUpdate,
25
25
  DisabledChainsUpdate,
26
26
  GlobalConfigUpdate,
27
+ LiteChainsIdListUpdate,
27
28
  ParsedTokenConfig,
28
29
  RouteRateModelUpdate,
29
30
  SpokePoolTargetBalance,
@@ -68,7 +69,7 @@ export class AcrossConfigStoreClient extends BaseAbstractClient {
68
69
  public cumulativeMaxRefundCountUpdates: GlobalConfigUpdate[] = [];
69
70
  public cumulativeMaxL1TokenCountUpdates: GlobalConfigUpdate[] = [];
70
71
  public chainIdIndicesUpdates: GlobalConfigUpdate<number[]>[] = [];
71
- public liteChainIndicesUpdates: GlobalConfigUpdate<number[]>[] = [];
72
+ public liteChainIndicesUpdates: LiteChainsIdListUpdate[] = [];
72
73
  public cumulativeSpokeTargetBalanceUpdates: SpokeTargetBalanceUpdate[] = [];
73
74
  public cumulativeConfigStoreVersionUpdates: ConfigStoreVersionUpdate[] = [];
74
75
  public cumulativeDisabledChainUpdates: DisabledChainsUpdate[] = [];
@@ -166,6 +167,27 @@ export class AcrossConfigStoreClient extends BaseAbstractClient {
166
167
  return liteChainIdList.find((update) => update.blockNumber <= blockNumber)?.value ?? [];
167
168
  }
168
169
 
170
+ /**
171
+ * Resolves the lite chain ids that were available to the protocol at a given timestamp.
172
+ * @param timestamp Timestamp to search for. Defaults to latest time - in seconds.
173
+ * @returns List of lite chain IDs that were available to the protocol at the given timestamp.
174
+ * @note This dynamic functionality has been added after the launch of Across.
175
+ */
176
+ getLiteChainIdIndicesForTimestamp(timestamp: number = Number.MAX_SAFE_INTEGER): number[] {
177
+ const liteChainIdList = sortEventsDescending(this.liteChainIndicesUpdates);
178
+ return liteChainIdList.find((update) => update.timestamp <= timestamp)?.value ?? [];
179
+ }
180
+
181
+ /**
182
+ * Checks if a chain ID was a lite chain at a given timestamp.
183
+ * @param chainId The chain ID to check.
184
+ * @param timestamp The timestamp to check. Defaults to latest time - in seconds.
185
+ * @returns True if the chain ID was a lite chain at the given timestamp. False otherwise.
186
+ */
187
+ isChainLiteChainAtTimestamp(chainId: number, timestamp: number = Number.MAX_SAFE_INTEGER): boolean {
188
+ return this.getLiteChainIdIndicesForTimestamp(timestamp).includes(chainId);
189
+ }
190
+
169
191
  getSpokeTargetBalancesForBlock(
170
192
  l1Token: string,
171
193
  chainId: number,
@@ -425,6 +447,15 @@ export class AcrossConfigStoreClient extends BaseAbstractClient {
425
447
  // the on-chain string has quotes around the array, which will parse our JSON as a
426
448
  // string instead of an array. We need to remove these quotes before parsing.
427
449
  // To be sure, we can check for single quotes, double quotes, and spaces.
450
+
451
+ // Use a regular expression to check if the string is a valid array. We need to check for
452
+ // leading and trailing quotes, as well as leading and trailing whitespace. We also need to
453
+ // check for commas between the numbers. Alternatively, this can be an empty array.
454
+ if (!/^\s*["']?\[(\d+(,\d+)*)?\]["']?\s*$/.test(args.value)) {
455
+ this.logger.warn({ at: "ConfigStore", message: `The lite chain indices array ${args.value} is invalid.` });
456
+ // If not a valid array, skip.
457
+ continue;
458
+ }
428
459
  const chainIndices = JSON.parse(args.value.replace(/['"\s]/g, ""));
429
460
  // Check that the array is valid and that every element is a number.
430
461
  if (!isArrayOf<number>(chainIndices, isPositiveInteger)) {
@@ -442,7 +473,7 @@ export class AcrossConfigStoreClient extends BaseAbstractClient {
442
473
  continue;
443
474
  }
444
475
  // If all else passes, we can add this update.
445
- this.liteChainIndicesUpdates.push({ ...args, value: chainIndices });
476
+ this.liteChainIndicesUpdates.push({ ...args, value: chainIndices, timestamp: globalConfigUpdateTimes[i] });
446
477
  } else if (args.key === utf8ToHex(GLOBAL_CONFIG_STORE_KEYS.CHAIN_ID_INDICES)) {
447
478
  try {
448
479
  // We need to parse the chain ID indices array from the stringified JSON. However,
@@ -41,6 +41,7 @@ import { getNetworkName } from "../utils/NetworkUtils";
41
41
  import { getBlockRangeForDepositId, getDepositIdAtBlock } from "../utils/SpokeUtils";
42
42
  import { BaseAbstractClient, isUpdateFailureReason, UpdateFailureReason } from "./BaseAbstractClient";
43
43
  import { HubPoolClient } from "./HubPoolClient";
44
+ import { AcrossConfigStoreClient } from "./AcrossConfigStoreClient";
44
45
 
45
46
  type SpokePoolUpdateSuccess = {
46
47
  success: true;
@@ -73,6 +74,7 @@ export class SpokePoolClient extends BaseAbstractClient {
73
74
  protected rootBundleRelays: RootBundleRelayWithBlock[] = [];
74
75
  protected relayerRefundExecutions: RelayerRefundExecutionWithBlock[] = [];
75
76
  protected queryableEventNames: string[] = [];
77
+ protected configStoreClient: AcrossConfigStoreClient | undefined;
76
78
  public earliestDepositIdQueried = Number.MAX_SAFE_INTEGER;
77
79
  public latestDepositIdQueried = 0;
78
80
  public firstDepositIdForSpokePool = Number.MAX_SAFE_INTEGER;
@@ -101,6 +103,7 @@ export class SpokePoolClient extends BaseAbstractClient {
101
103
  this.firstBlockToSearch = eventSearchConfig.fromBlock;
102
104
  this.latestBlockSearched = 0;
103
105
  this.queryableEventNames = Object.keys(this._queryableEventNames());
106
+ this.configStoreClient = hubPoolClient?.configStoreClient;
104
107
  }
105
108
 
106
109
  public _queryableEventNames(): { [eventName: string]: EventFilter } {
@@ -161,24 +164,6 @@ export class SpokePoolClient extends BaseAbstractClient {
161
164
  return this.depositRoutes;
162
165
  }
163
166
 
164
- /**
165
- * Determines whether a deposit route is enabled for the given origin token and destination chain ID.
166
- * @param originToken The origin token address.
167
- * @param destinationChainId The destination chain ID.
168
- * @returns True if the deposit route is enabled, false otherwise.
169
- */
170
- public isDepositRouteEnabled(originToken: string, destinationChainId: number): boolean {
171
- return this.depositRoutes[originToken]?.[destinationChainId] ?? false;
172
- }
173
-
174
- /**
175
- * Retrieves a list of all the available origin tokens that can be bridged.
176
- * @returns A list of origin tokens.
177
- */
178
- public getAllOriginTokens(): string[] {
179
- return Object.keys(this.depositRoutes);
180
- }
181
-
182
167
  /**
183
168
  * Retrieves a list of fills from the SpokePool contract.
184
169
  * @returns A list of fills.
@@ -561,6 +546,7 @@ export class SpokePoolClient extends BaseAbstractClient {
561
546
  // Derive and append the common properties that are not part of the onchain event.
562
547
  const { quoteBlock: quoteBlockNumber } = dataForQuoteTime[index];
563
548
  const deposit = { ...(rawDeposit as DepositWithBlock), originChainId: this.chainId, quoteBlockNumber };
549
+ deposit.originatesFromLiteChain = this.doesDepositOriginateFromLiteChain(deposit);
564
550
  if (deposit.outputToken === ZERO_ADDRESS) {
565
551
  deposit.outputToken = this.getDestinationTokenForDeposit(deposit);
566
552
  }
@@ -634,6 +620,7 @@ export class SpokePoolClient extends BaseAbstractClient {
634
620
  ...(spreadEventWithBlockNumber(event) as FillWithBlock),
635
621
  destinationChainId: this.chainId,
636
622
  };
623
+
637
624
  assign(this.fills, [fill.originChainId], [fill]);
638
625
  assign(this.depositHashesToFills, [this.getDepositHash(fill)], [fill]);
639
626
  }
@@ -856,6 +843,7 @@ export class SpokePoolClient extends BaseAbstractClient {
856
843
  ? this.getDestinationTokenForDeposit({ ...partialDeposit, originChainId: this.chainId })
857
844
  : partialDeposit.outputToken,
858
845
  };
846
+ deposit.originatesFromLiteChain = this.doesDepositOriginateFromLiteChain(deposit);
859
847
 
860
848
  this.logger.debug({
861
849
  at: "SpokePoolClient#findDeposit",
@@ -866,4 +854,14 @@ export class SpokePoolClient extends BaseAbstractClient {
866
854
 
867
855
  return deposit;
868
856
  }
857
+
858
+ /**
859
+ * Determines whether a deposit originates from a lite chain.
860
+ * @param deposit The deposit to evaluate.
861
+ * @returns True if the deposit originates from a lite chain, false otherwise. If the hub pool client is not defined,
862
+ * this method will return false.
863
+ */
864
+ protected doesDepositOriginateFromLiteChain(deposit: DepositWithBlock): boolean {
865
+ return this.configStoreClient?.isChainLiteChainAtTimestamp(deposit.originChainId, deposit.quoteTimestamp) ?? false;
866
+ }
869
867
  }
@@ -19,6 +19,7 @@ import { bnZero, toBN, toBNWei, forEachAsync, getCurrentTime, randomAddress } fr
19
19
  import { SpokePoolClient, SpokePoolUpdate } from "../SpokePoolClient";
20
20
  import { HubPoolClient } from "../HubPoolClient";
21
21
  import { EventManager, EventOverrides, getEventManager } from "./MockEvents";
22
+ import { AcrossConfigStoreClient } from "../AcrossConfigStoreClient";
22
23
 
23
24
  type Block = providers.Block;
24
25
 
@@ -51,6 +52,10 @@ export class MockSpokePoolClient extends SpokePoolClient {
51
52
  this.realizedLpFeePctOverride = true;
52
53
  }
53
54
 
55
+ setConfigStoreClient(configStore?: AcrossConfigStoreClient): void {
56
+ this.configStoreClient = configStore;
57
+ }
58
+
54
59
  clearDefaultRealizedLpFeePct(): void {
55
60
  this.realizedLpFeePctOverride = false;
56
61
  }
@@ -64,6 +64,10 @@ export interface DisabledChainsUpdate extends SortableEvent {
64
64
  chainIds: number[];
65
65
  }
66
66
 
67
+ export interface LiteChainsIdListUpdate<ValueStore = number[]> extends GlobalConfigUpdate<ValueStore> {
68
+ timestamp: number;
69
+ }
70
+
67
71
  /**
68
72
  * A generic type of a dictionary that has string keys and values of type T. This
69
73
  * record is enforced to have a default entry within the "default" key.
@@ -28,6 +28,7 @@ export interface Deposit extends RelayData {
28
28
  updatedRecipient?: string;
29
29
  updatedOutputAmount?: BigNumber;
30
30
  updatedMessage?: string;
31
+ originatesFromLiteChain: boolean;
31
32
  }
32
33
 
33
34
  export interface DepositWithBlock extends Deposit, SortableEvent {
@@ -6,7 +6,7 @@ import { isDefined } from "./TypeGuards";
6
6
  import { getCurrentTime } from "./TimeUtils";
7
7
  import { CachingMechanismInterface } from "../interfaces";
8
8
  import { shouldCache } from "./CachingUtils";
9
- import { DEFAULT_CACHING_SAFE_LAG } from "../constants";
9
+ import { CHAIN_IDs, DEFAULT_CACHING_SAFE_LAG } from "../constants";
10
10
 
11
11
  type Opts = {
12
12
  highBlock?: number;
@@ -34,11 +34,11 @@ const defaultHighBlockOffset = 10;
34
34
  const cacheTTL = 60 * 15;
35
35
  const now = getCurrentTime(); // Seed the cache with initial values.
36
36
  const blockTimes: { [chainId: number]: BlockTimeAverage } = {
37
- 1: { average: 12.5, timestamp: now, blockRange: 1 },
38
- 10: { average: 2, timestamp: now, blockRange: 1 },
39
- 8453: { average: 2, timestamp: now, blockRange: 1 },
40
- 34443: { average: 2, timestamp: now, blockRange: 1 },
41
- 59144: { average: 3, timestamp: now, blockRange: 1 },
37
+ [CHAIN_IDs.BASE]: { average: 2, timestamp: now, blockRange: 1 },
38
+ [CHAIN_IDs.LINEA]: { average: 3, timestamp: now, blockRange: 1 },
39
+ [CHAIN_IDs.MAINNET]: { average: 12.5, timestamp: now, blockRange: 1 },
40
+ [CHAIN_IDs.MODE]: { average: 2, timestamp: now, blockRange: 1 },
41
+ [CHAIN_IDs.OPTIMISM]: { average: 2, timestamp: now, blockRange: 1 },
42
42
  };
43
43
 
44
44
  /**