@aztec/ethereum 0.0.1-commit.f650c0a5c → 0.0.1-commit.f7ea82942

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/dest/client.d.ts CHANGED
@@ -16,6 +16,12 @@ export type { Config as EthereumClientConfig };
16
16
  export declare function makeL1HttpTransport(rpcUrls: string[], opts?: {
17
17
  timeout?: number;
18
18
  }): import("viem").FallbackTransport<import("viem").HttpTransport<undefined, false>[]>;
19
+ /**
20
+ * Returns the individual RPC URLs underlying a viem public client that was constructed with a
21
+ * fallback HTTP transport (see {@link makeL1HttpTransport}). Returns an empty array if the
22
+ * transport shape is not recognized (e.g. mock clients in tests, or non-fallback transports).
23
+ */
24
+ export declare function getRpcUrlsFromClient(client: ViemPublicClient): string[];
19
25
  /** Returns a viem public client given the L1 config. */
20
26
  export declare function getPublicClient(config: Config): ViemPublicClient;
21
27
  /** Returns a viem public client after waiting for the L1 RPC node to become available. */
@@ -23,4 +29,4 @@ export declare function waitForPublicClient(config: Config, logger?: Logger): Pr
23
29
  export declare function createExtendedL1Client(rpcUrls: string[], mnemonicOrPrivateKeyOrHdAccount: string | HDAccount | PrivateKeyAccount | LocalAccount, chain?: Chain, pollingIntervalMS?: number, addressIndex?: number, opts?: {
24
30
  httpTimeoutMS?: number;
25
31
  }): ExtendedViemWalletClient;
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3BELE9BQU8sRUFDTCxLQUFLLEtBQUssRUFDVixLQUFLLFNBQVMsRUFDZCxLQUFLLFlBQVksRUFDakIsS0FBSyxpQkFBaUIsRUFNdkIsTUFBTSxNQUFNLENBQUM7QUFLZCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU3RSxLQUFLLE1BQU0sR0FBRztJQUNaLDBGQUEwRjtJQUMxRixTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDcEIseUNBQXlDO0lBQ3pDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsMkNBQTJDO0lBQzNDLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQy9CLDBEQUEwRDtJQUMxRCxlQUFlLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDMUIsQ0FBQztBQUVGLFlBQVksRUFBRSxNQUFNLElBQUksb0JBQW9CLEVBQUUsQ0FBQztBQUUvQyx3RUFBd0U7QUFDeEUsd0JBQWdCLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtJQUFFLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQTtDQUFFLHNGQUVqRjtBQUlELHdEQUF3RDtBQUN4RCx3QkFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLENBT2hFO0FBRUQsMEZBQTBGO0FBQzFGLHdCQUFzQixtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FJcEc7QUF5QkQsd0JBQWdCLHNCQUFzQixDQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQ2pCLCtCQUErQixFQUFFLE1BQU0sR0FBRyxTQUFTLEdBQUcsaUJBQWlCLEdBQUcsWUFBWSxFQUN0RixLQUFLLEdBQUUsS0FBZSxFQUN0QixpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sRUFDMUIsWUFBWSxDQUFDLEVBQUUsTUFBTSxFQUNyQixJQUFJLENBQUMsRUFBRTtJQUFFLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtDQUFFLEdBQ2hDLHdCQUF3QixDQWdCMUIifQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3BELE9BQU8sRUFDTCxLQUFLLEtBQUssRUFDVixLQUFLLFNBQVMsRUFDZCxLQUFLLFlBQVksRUFDakIsS0FBSyxpQkFBaUIsRUFNdkIsTUFBTSxNQUFNLENBQUM7QUFLZCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU3RSxLQUFLLE1BQU0sR0FBRztJQUNaLDBGQUEwRjtJQUMxRixTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDcEIseUNBQXlDO0lBQ3pDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsMkNBQTJDO0lBQzNDLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQy9CLDBEQUEwRDtJQUMxRCxlQUFlLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDMUIsQ0FBQztBQUVGLFlBQVksRUFBRSxNQUFNLElBQUksb0JBQW9CLEVBQUUsQ0FBQztBQUUvQyx3RUFBd0U7QUFDeEUsd0JBQWdCLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtJQUFFLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQTtDQUFFLHNGQUVqRjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0Isb0JBQW9CLENBQUMsTUFBTSxFQUFFLGdCQUFnQixHQUFHLE1BQU0sRUFBRSxDQVd2RTtBQUlELHdEQUF3RDtBQUN4RCx3QkFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLENBT2hFO0FBRUQsMEZBQTBGO0FBQzFGLHdCQUFzQixtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FJcEc7QUF5QkQsd0JBQWdCLHNCQUFzQixDQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQ2pCLCtCQUErQixFQUFFLE1BQU0sR0FBRyxTQUFTLEdBQUcsaUJBQWlCLEdBQUcsWUFBWSxFQUN0RixLQUFLLEdBQUUsS0FBZSxFQUN0QixpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sRUFDMUIsWUFBWSxDQUFDLEVBQUUsTUFBTSxFQUNyQixJQUFJLENBQUMsRUFBRTtJQUFFLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtDQUFFLEdBQ2hDLHdCQUF3QixDQWdCMUIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EACL,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,iBAAiB,EAMvB,MAAM,MAAM,CAAC;AAKd,OAAO,KAAK,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE7E,KAAK,MAAM,GAAG;IACZ,0FAA0F;IAC1F,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,YAAY,EAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;AAE/C,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,sFAEjF;AAID,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAOhE;AAED,0FAA0F;AAC1F,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAIpG;AAyBD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EAAE,EACjB,+BAA+B,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,GAAG,YAAY,EACtF,KAAK,GAAE,KAAe,EACtB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,YAAY,CAAC,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC,wBAAwB,CAgB1B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EACL,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,iBAAiB,EAMvB,MAAM,MAAM,CAAC;AAKd,OAAO,KAAK,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE7E,KAAK,MAAM,GAAG;IACZ,0FAA0F;IAC1F,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,YAAY,EAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;AAE/C,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,sFAEjF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAWvE;AAID,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAOhE;AAED,0FAA0F;AAC1F,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAIpG;AAyBD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EAAE,EACjB,+BAA+B,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,GAAG,YAAY,EACtF,KAAK,GAAE,KAAe,EACtB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,YAAY,CAAC,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC,wBAAwB,CAgB1B"}
package/dest/client.js CHANGED
@@ -9,6 +9,20 @@ import { createEthereumChain } from './chain.js';
9
9
  timeout: opts?.timeout
10
10
  })));
11
11
  }
12
+ /**
13
+ * Returns the individual RPC URLs underlying a viem public client that was constructed with a
14
+ * fallback HTTP transport (see {@link makeL1HttpTransport}). Returns an empty array if the
15
+ * transport shape is not recognized (e.g. mock clients in tests, or non-fallback transports).
16
+ */ export function getRpcUrlsFromClient(client) {
17
+ const transport = client.transport;
18
+ if (Array.isArray(transport?.transports)) {
19
+ return transport.transports.map((t)=>t?.value?.url).filter((url)=>typeof url === 'string');
20
+ }
21
+ const singleUrl = transport?.value?.url ?? transport?.url;
22
+ return typeof singleUrl === 'string' ? [
23
+ singleUrl
24
+ ] : [];
25
+ }
12
26
  // TODO: Use these methods to abstract the creation of viem clients.
13
27
  /** Returns a viem public client given the L1 config. */ export function getPublicClient(config) {
14
28
  const chain = createEthereumChain(config.l1RpcUrls, config.l1ChainId);
@@ -0,0 +1,38 @@
1
+ import type { CheckpointNumber } from '@aztec/foundation/branded-types';
2
+ import type { Fr } from '@aztec/foundation/curves/bn254';
3
+ import type { StateOverride } from 'viem';
4
+ import { type FeeHeader, RollupContract } from './rollup.js';
5
+ export type PendingCheckpointOverrideState = {
6
+ archive?: Fr;
7
+ feeHeader?: FeeHeader;
8
+ };
9
+ /** Describes the simulated L1 rollup state that downstream calls should observe. */
10
+ export type SimulationOverridesPlan = {
11
+ pendingCheckpointNumber?: CheckpointNumber;
12
+ pendingCheckpointState?: PendingCheckpointOverrideState;
13
+ disableBlobCheck?: boolean;
14
+ };
15
+ /** Builds a single-checkpoint simulation plan before it is translated into a viem state override. */
16
+ export declare class SimulationOverridesBuilder {
17
+ private pendingCheckpointNumber?;
18
+ private pendingCheckpointState?;
19
+ private disableBlobCheck;
20
+ /** Starts from an existing plan so callers can extend or specialize it. */
21
+ static from(plan: SimulationOverridesPlan | undefined): SimulationOverridesBuilder;
22
+ /** Merges another plan into this builder. Later values win. */
23
+ merge(plan: SimulationOverridesPlan | undefined): this;
24
+ /** Sets the checkpoint number that archive and fee header overrides should attach to. */
25
+ forPendingCheckpoint(pendingCheckpointNumber: CheckpointNumber | undefined): this;
26
+ /** Overrides the archive root for the configured pending checkpoint. */
27
+ withPendingArchive(archive: Fr): this;
28
+ /** Overrides the fee header for the configured pending checkpoint. */
29
+ withPendingFeeHeader(feeHeader: FeeHeader): this;
30
+ /** Disables blob checking for simulations that cannot provide DA inputs. */
31
+ withoutBlobCheck(): this;
32
+ /** Builds the final plan, or `undefined` when no overrides were configured. */
33
+ build(): SimulationOverridesPlan | undefined;
34
+ private assertPendingCheckpointNumber;
35
+ }
36
+ /** Translates a simulation plan into the viem state override shape expected by rollup calls. */
37
+ export declare function buildSimulationOverridesStateOverride(rollup: RollupContract, plan: SimulationOverridesPlan | undefined): Promise<StateOverride>;
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5fc3RhdGVfb3ZlcnJpZGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvY2hhaW5fc3RhdGVfb3ZlcnJpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3RCxNQUFNLE1BQU0sOEJBQThCLEdBQUc7SUFDM0MsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ2IsU0FBUyxDQUFDLEVBQUUsU0FBUyxDQUFDO0NBQ3ZCLENBQUM7QUFFRixvRkFBb0Y7QUFDcEYsTUFBTSxNQUFNLHVCQUF1QixHQUFHO0lBQ3BDLHVCQUF1QixDQUFDLEVBQUUsZ0JBQWdCLENBQUM7SUFDM0Msc0JBQXNCLENBQUMsRUFBRSw4QkFBOEIsQ0FBQztJQUN4RCxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQztDQUM1QixDQUFDO0FBRUYscUdBQXFHO0FBQ3JHLHFCQUFhLDBCQUEwQjtJQUNyQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBbUI7SUFDbkQsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQWlDO0lBQ2hFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBUztJQUVqQywyRUFBMkU7SUFDM0UsT0FBYyxJQUFJLENBQUMsSUFBSSxFQUFFLHVCQUF1QixHQUFHLFNBQVMsR0FBRywwQkFBMEIsQ0FFeEY7SUFFRCwrREFBK0Q7SUFDeEQsS0FBSyxDQUFDLElBQUksRUFBRSx1QkFBdUIsR0FBRyxTQUFTLEdBQUcsSUFBSSxDQVk1RDtJQUVELHlGQUF5RjtJQUNsRixvQkFBb0IsQ0FBQyx1QkFBdUIsRUFBRSxnQkFBZ0IsR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUd2RjtJQUVELHdFQUF3RTtJQUNqRSxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FJM0M7SUFFRCxzRUFBc0U7SUFDL0Qsb0JBQW9CLENBQUMsU0FBUyxFQUFFLFNBQVMsR0FBRyxJQUFJLENBSXREO0lBRUQsNEVBQTRFO0lBQ3JFLGdCQUFnQixJQUFJLElBQUksQ0FHOUI7SUFFRCwrRUFBK0U7SUFDeEUsS0FBSyxJQUFJLHVCQUF1QixHQUFHLFNBQVMsQ0FVbEQ7SUFFRCxPQUFPLENBQUMsNkJBQTZCO0NBS3RDO0FBRUQsZ0dBQWdHO0FBQ2hHLHdCQUFzQixxQ0FBcUMsQ0FDekQsTUFBTSxFQUFFLGNBQWMsRUFDdEIsSUFBSSxFQUFFLHVCQUF1QixHQUFHLFNBQVMsR0FDeEMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQTZDeEIifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain_state_override.d.ts","sourceRoot":"","sources":["../../src/contracts/chain_state_override.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,KAAK,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,MAAM,8BAA8B,GAAG;IAC3C,OAAO,CAAC,EAAE,EAAE,CAAC;IACb,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,uBAAuB,GAAG;IACpC,uBAAuB,CAAC,EAAE,gBAAgB,CAAC;IAC3C,sBAAsB,CAAC,EAAE,8BAA8B,CAAC;IACxD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,qGAAqG;AACrG,qBAAa,0BAA0B;IACrC,OAAO,CAAC,uBAAuB,CAAC,CAAmB;IACnD,OAAO,CAAC,sBAAsB,CAAC,CAAiC;IAChE,OAAO,CAAC,gBAAgB,CAAS;IAEjC,2EAA2E;IAC3E,OAAc,IAAI,CAAC,IAAI,EAAE,uBAAuB,GAAG,SAAS,GAAG,0BAA0B,CAExF;IAED,+DAA+D;IACxD,KAAK,CAAC,IAAI,EAAE,uBAAuB,GAAG,SAAS,GAAG,IAAI,CAY5D;IAED,yFAAyF;IAClF,oBAAoB,CAAC,uBAAuB,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAGvF;IAED,wEAAwE;IACjE,kBAAkB,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,CAI3C;IAED,sEAAsE;IAC/D,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAItD;IAED,4EAA4E;IACrE,gBAAgB,IAAI,IAAI,CAG9B;IAED,+EAA+E;IACxE,KAAK,IAAI,uBAAuB,GAAG,SAAS,CAUlD;IAED,OAAO,CAAC,6BAA6B;CAKtC;AAED,gGAAgG;AAChG,wBAAsB,qCAAqC,CACzD,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,uBAAuB,GAAG,SAAS,GACxC,OAAO,CAAC,aAAa,CAAC,CA6CxB"}
@@ -0,0 +1,100 @@
1
+ import { toHex as toPaddedHex } from '@aztec/foundation/bigint-buffer';
2
+ import { RollupContract } from './rollup.js';
3
+ /** Builds a single-checkpoint simulation plan before it is translated into a viem state override. */ export class SimulationOverridesBuilder {
4
+ pendingCheckpointNumber;
5
+ pendingCheckpointState;
6
+ disableBlobCheck = false;
7
+ /** Starts from an existing plan so callers can extend or specialize it. */ static from(plan) {
8
+ return new SimulationOverridesBuilder().merge(plan);
9
+ }
10
+ /** Merges another plan into this builder. Later values win. */ merge(plan) {
11
+ if (!plan) {
12
+ return this;
13
+ }
14
+ this.pendingCheckpointNumber = plan.pendingCheckpointNumber;
15
+ this.pendingCheckpointState = plan.pendingCheckpointState ? {
16
+ ...this.pendingCheckpointState ?? {},
17
+ ...plan.pendingCheckpointState
18
+ } : this.pendingCheckpointState;
19
+ this.disableBlobCheck = this.disableBlobCheck || (plan.disableBlobCheck ?? false);
20
+ return this;
21
+ }
22
+ /** Sets the checkpoint number that archive and fee header overrides should attach to. */ forPendingCheckpoint(pendingCheckpointNumber) {
23
+ this.pendingCheckpointNumber = pendingCheckpointNumber;
24
+ return this;
25
+ }
26
+ /** Overrides the archive root for the configured pending checkpoint. */ withPendingArchive(archive) {
27
+ this.assertPendingCheckpointNumber();
28
+ this.pendingCheckpointState = {
29
+ ...this.pendingCheckpointState ?? {},
30
+ archive
31
+ };
32
+ return this;
33
+ }
34
+ /** Overrides the fee header for the configured pending checkpoint. */ withPendingFeeHeader(feeHeader) {
35
+ this.assertPendingCheckpointNumber();
36
+ this.pendingCheckpointState = {
37
+ ...this.pendingCheckpointState ?? {},
38
+ feeHeader
39
+ };
40
+ return this;
41
+ }
42
+ /** Disables blob checking for simulations that cannot provide DA inputs. */ withoutBlobCheck() {
43
+ this.disableBlobCheck = true;
44
+ return this;
45
+ }
46
+ /** Builds the final plan, or `undefined` when no overrides were configured. */ build() {
47
+ if (!this.pendingCheckpointState && this.pendingCheckpointNumber === undefined && !this.disableBlobCheck) {
48
+ return undefined;
49
+ }
50
+ return {
51
+ pendingCheckpointNumber: this.pendingCheckpointNumber,
52
+ pendingCheckpointState: this.pendingCheckpointState,
53
+ disableBlobCheck: this.disableBlobCheck || undefined
54
+ };
55
+ }
56
+ assertPendingCheckpointNumber() {
57
+ if (this.pendingCheckpointNumber === undefined) {
58
+ throw new Error('pendingCheckpointNumber must be set before attaching archive or fee header overrides');
59
+ }
60
+ }
61
+ }
62
+ /** Translates a simulation plan into the viem state override shape expected by rollup calls. */ export async function buildSimulationOverridesStateOverride(rollup, plan) {
63
+ if (!plan) {
64
+ return [];
65
+ }
66
+ const rollupStateDiff = [];
67
+ if (plan.pendingCheckpointNumber !== undefined) {
68
+ rollupStateDiff.push(...extractRollupStateDiff(await rollup.makePendingCheckpointNumberOverride(plan.pendingCheckpointNumber)));
69
+ }
70
+ if (plan.pendingCheckpointState && plan.pendingCheckpointNumber === undefined) {
71
+ throw new Error('pendingCheckpointState requires pendingCheckpointNumber to be set');
72
+ }
73
+ if (plan.pendingCheckpointState?.archive) {
74
+ rollupStateDiff.push(...extractRollupStateDiff(rollup.makeArchiveOverride(plan.pendingCheckpointNumber, plan.pendingCheckpointState.archive)));
75
+ }
76
+ if (plan.pendingCheckpointState?.feeHeader) {
77
+ rollupStateDiff.push(...extractRollupStateDiff(await rollup.makeFeeHeaderOverride(plan.pendingCheckpointNumber, plan.pendingCheckpointState.feeHeader)));
78
+ }
79
+ if (plan.disableBlobCheck) {
80
+ rollupStateDiff.push({
81
+ slot: toPaddedHex(RollupContract.checkBlobStorageSlot, true),
82
+ value: toPaddedHex(0n, true)
83
+ });
84
+ }
85
+ if (rollupStateDiff.length === 0) {
86
+ return [];
87
+ }
88
+ return [
89
+ {
90
+ address: rollup.address,
91
+ stateDiff: rollupStateDiff
92
+ }
93
+ ];
94
+ }
95
+ function extractRollupStateDiff(override) {
96
+ const entries = Array.isArray(override) ? override : override ? [
97
+ override
98
+ ] : [];
99
+ return entries.flatMap((entry)=>entry.stateDiff ?? []);
100
+ }
@@ -35,8 +35,8 @@ export declare class InboxContract {
35
35
  }): Promise<InboxContractState>;
36
36
  /** Fetches MessageSent events within the given block range. */
37
37
  getMessageSentEvents(fromBlock: bigint, toBlock: bigint): Promise<MessageSentLog[]>;
38
- /** Fetches MessageSent events for a specific message hash at a specific block. */
39
- getMessageSentEventByHash(msgHash: Hex, l1BlockHash: Hex): Promise<MessageSentLog>;
38
+ /** Fetches MessageSent events for a specific message hash around a specific block. */
39
+ getMessageSentEventByHash(msgHash: Hex, aroundL1BlockNumber: bigint): Promise<MessageSentLog>;
40
40
  private mapMessageSentLog;
41
41
  }
42
42
  export type InboxContractState = {
@@ -44,4 +44,4 @@ export type InboxContractState = {
44
44
  messagesRollingHash: Buffer16;
45
45
  treeInProgress: bigint;
46
46
  };
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3guZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvaW5ib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXhELE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxLQUFLLHFCQUFxQixFQUFFLEtBQUssR0FBRyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBR3hGLE9BQU8sS0FBSyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEYsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUczQywyQ0FBMkM7QUFDM0MsTUFBTSxNQUFNLGVBQWUsR0FBRztJQUM1QixLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2QsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUNULGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO0lBQ25DLFdBQVcsRUFBRSxRQUFRLENBQUM7Q0FDdkIsQ0FBQztBQUVGLHVDQUF1QztBQUN2QyxNQUFNLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUV6RCxxQkFBYSxhQUFhO2FBa0JOLE1BQU0sRUFBRSxVQUFVO0lBakJwQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBcUQ7SUFFM0UsTUFBTSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixFQUFFLGdDQUFnQyxpQkFNeEY7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxjQUFjLGlCQUkxQztJQUVELFlBQ2tCLE1BQU0sRUFBRSxVQUFVLEVBQ2xDLE9BQU8sRUFBRSxHQUFHLEdBQUcsVUFBVSxFQU0xQjtJQUVELElBQVcsT0FBTyxrQkFFakI7SUFFTSxXQUFXLElBQUkscUJBQXFCLENBQUMsT0FBTyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBRXZFO0lBRVksTUFBTSxDQUFDLElBQUksR0FBRTtRQUFFLFFBQVEsQ0FBQyxFQUFFLFFBQVEsQ0FBQztRQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUc3RjtJQUVZLFFBQVEsQ0FBQyxJQUFJLEdBQUU7UUFBRSxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUM7UUFBQyxXQUFXLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBTyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQVEzRztJQUVELCtEQUErRDtJQUN6RCxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBS3hGO0lBRUQsa0ZBQWtGO0lBQzVFLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBR3ZGO0lBRUQsT0FBTyxDQUFDLGlCQUFpQjtDQWtCMUI7QUFFRCxNQUFNLE1BQU0sa0JBQWtCLEdBQUc7SUFDL0IscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0lBQzlCLG1CQUFtQixFQUFFLFFBQVEsQ0FBQztJQUM5QixjQUFjLEVBQUUsTUFBTSxDQUFDO0NBQ3hCLENBQUMifQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3guZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvaW5ib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXhELE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxLQUFLLHFCQUFxQixFQUFFLEtBQUssR0FBRyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBR3hGLE9BQU8sS0FBSyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEYsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUczQywyQ0FBMkM7QUFDM0MsTUFBTSxNQUFNLGVBQWUsR0FBRztJQUM1QixLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2QsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUNULGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO0lBQ25DLFdBQVcsRUFBRSxRQUFRLENBQUM7Q0FDdkIsQ0FBQztBQUVGLHVDQUF1QztBQUN2QyxNQUFNLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUV6RCxxQkFBYSxhQUFhO2FBa0JOLE1BQU0sRUFBRSxVQUFVO0lBakJwQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBcUQ7SUFFM0UsTUFBTSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixFQUFFLGdDQUFnQyxpQkFNeEY7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxjQUFjLGlCQUkxQztJQUVELFlBQ2tCLE1BQU0sRUFBRSxVQUFVLEVBQ2xDLE9BQU8sRUFBRSxHQUFHLEdBQUcsVUFBVSxFQU0xQjtJQUVELElBQVcsT0FBTyxrQkFFakI7SUFFTSxXQUFXLElBQUkscUJBQXFCLENBQUMsT0FBTyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBRXZFO0lBRVksTUFBTSxDQUFDLElBQUksR0FBRTtRQUFFLFFBQVEsQ0FBQyxFQUFFLFFBQVEsQ0FBQztRQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUc3RjtJQUVZLFFBQVEsQ0FBQyxJQUFJLEdBQUU7UUFBRSxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUM7UUFBQyxXQUFXLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBTyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQVEzRztJQUVELCtEQUErRDtJQUN6RCxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBS3hGO0lBRUQsc0ZBQXNGO0lBQ2hGLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FVbEc7SUFFRCxPQUFPLENBQUMsaUJBQWlCO0NBa0IxQjtBQUVELE1BQU0sTUFBTSxrQkFBa0IsR0FBRztJQUMvQixxQkFBcUIsRUFBRSxNQUFNLENBQUM7SUFDOUIsbUJBQW1CLEVBQUUsUUFBUSxDQUFDO0lBQzlCLGNBQWMsRUFBRSxNQUFNLENBQUM7Q0FDeEIsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/contracts/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,qBAAqB,EAAE,KAAK,GAAG,EAAe,MAAM,MAAM,CAAC;AAGxF,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,2CAA2C;AAC3C,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,EAAE,CAAC;IACT,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,QAAQ,CAAC;CACvB,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;AAEzD,qBAAa,aAAa;aAkBN,MAAM,EAAE,UAAU;IAjBpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqD;IAE3E,MAAM,CAAC,wBAAwB,CAAC,uBAAuB,EAAE,gCAAgC,iBAMxF;IAED,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,iBAI1C;IAED,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAM1B;IAED,IAAW,OAAO,kBAEjB;IAEM,WAAW,IAAI,qBAAqB,CAAC,OAAO,QAAQ,EAAE,UAAU,CAAC,CAEvE;IAEY,MAAM,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7F;IAEY,QAAQ,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAQ3G;IAED,+DAA+D;IACzD,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAKxF;IAED,kFAAkF;IAC5E,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAGvF;IAED,OAAO,CAAC,iBAAiB;CAkB1B;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,QAAQ,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/contracts/inbox.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,qBAAqB,EAAE,KAAK,GAAG,EAAe,MAAM,MAAM,CAAC;AAGxF,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,2CAA2C;AAC3C,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,EAAE,CAAC;IACT,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,QAAQ,CAAC;CACvB,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;AAEzD,qBAAa,aAAa;aAkBN,MAAM,EAAE,UAAU;IAjBpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqD;IAE3E,MAAM,CAAC,wBAAwB,CAAC,uBAAuB,EAAE,gCAAgC,iBAMxF;IAED,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,iBAI1C;IAED,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAM1B;IAED,IAAW,OAAO,kBAEjB;IAEM,WAAW,IAAI,qBAAqB,CAAC,OAAO,QAAQ,EAAE,UAAU,CAAC,CAEvE;IAEY,MAAM,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7F;IAEY,QAAQ,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAQ3G;IAED,+DAA+D;IACzD,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAKxF;IAED,sFAAsF;IAChF,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAUlG;IAED,OAAO,CAAC,iBAAiB;CAkB1B;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,QAAQ,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { maxBigint } from '@aztec/foundation/bigint';
1
2
  import { CheckpointNumber } from '@aztec/foundation/branded-types';
2
3
  import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
3
4
  import { Fr } from '@aztec/foundation/curves/bn254';
@@ -55,11 +56,16 @@ export class InboxContract {
55
56
  });
56
57
  return logs.filter((log)=>log.blockNumber >= fromBlock && log.blockNumber <= toBlock).map((log)=>this.mapMessageSentLog(log));
57
58
  }
58
- /** Fetches MessageSent events for a specific message hash at a specific block. */ async getMessageSentEventByHash(msgHash, l1BlockHash) {
59
+ /** Fetches MessageSent events for a specific message hash around a specific block. */ async getMessageSentEventByHash(msgHash, aroundL1BlockNumber) {
60
+ // We don't use blockHash here because we don't want the query to throw if the L1 block number no longer exists on chain
61
+ // due to an L1 reorg. The use case for this method is usually checking if a message still exists on the Inbox after
62
+ // a reorg, so it's possible the message was moved one block up or down, and that the original L1 block where we
63
+ // saw it no longer exists, rendering the block-by-hash approach invalid.
59
64
  const [log] = await this.inbox.getEvents.MessageSent({
60
65
  hash: msgHash
61
66
  }, {
62
- blockHash: l1BlockHash
67
+ fromBlock: maxBigint(aroundL1BlockNumber - 5n, 1n),
68
+ toBlock: aroundL1BlockNumber + 5n
63
69
  });
64
70
  return log && this.mapMessageSentLog(log);
65
71
  }
@@ -1,3 +1,4 @@
1
+ export * from './chain_state_override.js';
1
2
  export * from './empire_base.js';
2
3
  export * from './errors.js';
3
4
  export * from './fee_asset_handler.js';
@@ -14,4 +15,4 @@ export * from './registry.js';
14
15
  export * from './rollup.js';
15
16
  export * from './slashing_proposer.js';
16
17
  export * from './slasher_contract.js';
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsdUJBQXVCLENBQUMifQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from './chain_state_override.js';
1
2
  export * from './empire_base.js';
2
3
  export * from './errors.js';
3
4
  export * from './fee_asset_handler.js';