@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.
- package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +4 -2
- package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +15 -1
- package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient.d.ts +3 -2
- package/dist/cjs/clients/SpokePoolClient.js +7 -7
- package/dist/cjs/clients/SpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/mocks/MockSpokePoolClient.d.ts +2 -0
- package/dist/cjs/clients/mocks/MockSpokePoolClient.js +3 -0
- package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -1
- package/dist/cjs/interfaces/ConfigStore.d.ts +3 -0
- package/dist/cjs/interfaces/SpokePool.d.ts +1 -0
- package/dist/cjs/interfaces/SpokePool.js.map +1 -1
- package/dist/cjs/utils/BlockUtils.js +8 -7
- package/dist/cjs/utils/BlockUtils.js.map +1 -1
- package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +16 -2
- package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +30 -1
- package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient.d.ts +9 -12
- package/dist/esm/clients/SpokePoolClient.js +13 -17
- package/dist/esm/clients/SpokePoolClient.js.map +1 -1
- package/dist/esm/clients/mocks/MockSpokePoolClient.d.ts +2 -0
- package/dist/esm/clients/mocks/MockSpokePoolClient.js +3 -0
- package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -1
- package/dist/esm/interfaces/ConfigStore.d.ts +3 -0
- package/dist/esm/interfaces/SpokePool.d.ts +1 -0
- package/dist/esm/interfaces/SpokePool.js.map +1 -1
- package/dist/esm/utils/BlockUtils.js +9 -8
- package/dist/esm/utils/BlockUtils.js.map +1 -1
- package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +16 -2
- package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient.d.ts +9 -12
- package/dist/types/clients/SpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/mocks/MockSpokePoolClient.d.ts +2 -0
- package/dist/types/clients/mocks/MockSpokePoolClient.d.ts.map +1 -1
- package/dist/types/interfaces/ConfigStore.d.ts +3 -0
- package/dist/types/interfaces/ConfigStore.d.ts.map +1 -1
- package/dist/types/interfaces/SpokePool.d.ts +1 -0
- package/dist/types/interfaces/SpokePool.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.ts +33 -2
- package/src/clients/SpokePoolClient.ts +16 -18
- package/src/clients/mocks/MockSpokePoolClient.ts +5 -0
- package/src/interfaces/ConfigStore.ts +4 -0
- package/src/interfaces/SpokePool.ts +1 -0
- 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;
|
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAChH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,CAAC;AAEjG,MAAM,WAAW,SAAS;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,SAAS,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,SAAS,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,OAAQ,SAAQ,SAAS;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"SpokePool.d.ts","sourceRoot":"","sources":["../../../src/interfaces/SpokePool.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -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:
|
|
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.
|
package/src/utils/BlockUtils.ts
CHANGED
|
@@ -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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
/**
|