@aztec/ethereum 3.0.0-nightly.20251210 → 3.0.0-nightly.20251211

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 (35) hide show
  1. package/dest/contracts/tally_slashing_proposer.d.ts +3 -2
  2. package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
  3. package/dest/contracts/tally_slashing_proposer.js +1 -1
  4. package/dest/forwarder_proxy.d.ts +32 -0
  5. package/dest/forwarder_proxy.d.ts.map +1 -0
  6. package/dest/forwarder_proxy.js +93 -0
  7. package/dest/l1_reader.d.ts +3 -1
  8. package/dest/l1_reader.d.ts.map +1 -1
  9. package/dest/l1_reader.js +6 -0
  10. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +41 -0
  11. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -0
  12. package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +48 -0
  13. package/dest/l1_tx_utils/index-blobs.d.ts +3 -0
  14. package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -0
  15. package/dest/l1_tx_utils/index-blobs.js +2 -0
  16. package/dest/test/chain_monitor.d.ts +2 -2
  17. package/dest/test/chain_monitor.d.ts.map +1 -1
  18. package/dest/test/rollup_cheat_codes.d.ts +2 -2
  19. package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
  20. package/dest/test/rollup_cheat_codes.js +1 -1
  21. package/dest/types.d.ts +57 -2
  22. package/dest/types.d.ts.map +1 -1
  23. package/package.json +22 -9
  24. package/src/contracts/tally_slashing_proposer.ts +3 -1
  25. package/src/forwarder_proxy.ts +108 -0
  26. package/src/l1_reader.ts +8 -0
  27. package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +119 -0
  28. package/src/l1_tx_utils/index-blobs.ts +2 -0
  29. package/src/test/chain_monitor.ts +2 -1
  30. package/src/test/rollup_cheat_codes.ts +2 -1
  31. package/src/types.ts +62 -0
  32. package/dest/index.d.ts +0 -18
  33. package/dest/index.d.ts.map +0 -1
  34. package/dest/index.js +0 -17
  35. package/src/index.ts +0 -17
@@ -1,4 +1,5 @@
1
- import { type L1TxRequest, type ViemClient } from '@aztec/ethereum';
1
+ import type { L1TxRequest } from '@aztec/ethereum/l1-tx-utils';
2
+ import type { ViemClient } from '@aztec/ethereum/types';
2
3
  import { SlotNumber } from '@aztec/foundation/branded-types';
3
4
  import { Buffer32 } from '@aztec/foundation/buffer';
4
5
  import { EthAddress } from '@aztec/foundation/eth-address';
@@ -136,4 +137,4 @@ export declare class TallySlashingProposerContract {
136
137
  * @returns An array of numbers representing the slash votes
137
138
  */
138
139
  export declare function decodeSlashConsensusVotes(buffer: Buffer): number[];
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFsbHlfc2xhc2hpbmdfcHJvcG9zZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvdGFsbHlfc2xhc2hpbmdfcHJvcG9zZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFFLEtBQUssVUFBVSxFQUFtQixNQUFNLGlCQUFpQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSzNELE9BQU8sRUFFTCxLQUFLLEdBQUcsRUFDUixLQUFLLEdBQUcsRUFDUixLQUFLLG1CQUFtQixFQUd6QixNQUFNLE1BQU0sQ0FBQztBQUVkOzs7R0FHRztBQUNILHFCQUFhLDZCQUE2QjthQU10QixNQUFNLEVBQUUsVUFBVTtJQUxwQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBcUU7SUFFOUYsU0FBZ0IsSUFBSSxVQUFvQjtJQUV4QyxZQUNrQixNQUFNLEVBQUUsVUFBVSxFQUNsQyxPQUFPLEVBQUUsR0FBRyxHQUFHLFVBQVUsRUFPMUI7SUFFRCxJQUFXLE9BQU8sZUFFakI7SUFFTSxhQUFhLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUV0QztJQUVNLFlBQVksSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXJDO0lBRU0sZ0JBQWdCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUV6QztJQUVNLG9CQUFvQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFN0M7SUFFTSxtQkFBbUIsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRTVDO0lBRU0seUJBQXlCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUVsRDtJQUVNLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxD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
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFsbHlfc2xhc2hpbmdfcHJvcG9zZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvdGFsbHlfc2xhc2hpbmdfcHJvcG9zZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFLM0QsT0FBTyxFQUVMLEtBQUssR0FBRyxFQUNSLEtBQUssR0FBRyxFQUNSLEtBQUssbUJBQW1CLEVBR3pCLE1BQU0sTUFBTSxDQUFDO0FBRWQ7OztHQUdHO0FBQ0gscUJBQWEsNkJBQTZCO2FBTXRCLE1BQU0sRUFBRSxVQUFVO0lBTHBDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFxRTtJQUU5RixTQUFnQixJQUFJLFVBQW9CO0lBRXhDLFlBQ2tCLE1BQU0sRUFBRSxVQUFVLEVBQ2xDLE9BQU8sRUFBRSxHQUFHLEdBQUcsVUFBVSxFQU8xQjtJQUVELElBQVcsT0FBTyxlQUVqQjtJQUVNLGFBQWEsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXRDO0lBRU0sWUFBWSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFckM7SUFFTSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXpDO0lBRU0sb0JBQW9CLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUU3QztJQUVNLG1CQUFtQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFNUM7SUFFTSx5QkFBeUIsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENB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
@@ -1 +1 @@
1
- {"version":3,"file":"tally_slashing_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/tally_slashing_proposer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tally_slashing_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/tally_slashing_proposer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { tryExtractEvent } from '@aztec/ethereum';
1
+ import { tryExtractEvent } from '@aztec/ethereum/utils';
2
2
  import { Buffer32 } from '@aztec/foundation/buffer';
3
3
  import { EthAddress } from '@aztec/foundation/eth-address';
4
4
  import { Signature } from '@aztec/foundation/eth-signature';
@@ -0,0 +1,32 @@
1
+ import { EthAddress } from '@aztec/foundation/eth-address';
2
+ import type { Logger } from '@aztec/foundation/log';
3
+ import type { ExtendedViemWalletClient } from './types.js';
4
+ export declare const FORWARDER_SOLIDITY_SOURCE = "\ncontract ForwarderProxy {\n function forward(address target, bytes calldata data) external payable returns (bytes memory) {\n (bool success, bytes memory result) = target.call{value: msg.value}(data);\n require(success, \"call failed\");\n return result;\n }\n}";
5
+ export declare const FORWARDER_ABI: readonly [{
6
+ readonly inputs: readonly [{
7
+ readonly internalType: "address";
8
+ readonly name: "target";
9
+ readonly type: "address";
10
+ }, {
11
+ readonly internalType: "bytes";
12
+ readonly name: "data";
13
+ readonly type: "bytes";
14
+ }];
15
+ readonly name: "forward";
16
+ readonly outputs: readonly [{
17
+ readonly internalType: "bytes";
18
+ readonly name: "";
19
+ readonly type: "bytes";
20
+ }];
21
+ readonly stateMutability: "payable";
22
+ readonly type: "function";
23
+ }];
24
+ export declare const FORWARDER_BYTECODE: `0x${string}`;
25
+ /**
26
+ * Deploys the forwarder proxy contract to L1.
27
+ * @param client - The L1 client to use for deployment
28
+ * @param logger - Optional logger
29
+ * @returns The deployed forwarder contract address
30
+ */
31
+ export declare function deployForwarderProxy(client: ExtendedViemWalletClient, logger?: Logger): Promise<EthAddress>;
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yd2FyZGVyX3Byb3h5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZm9yd2FyZGVyX3Byb3h5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVFwRCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUzRCxlQUFPLE1BQU0seUJBQXlCLHVSQU9wQyxDQUFDO0FBRUgsZUFBTyxNQUFNLGFBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXlCaEIsQ0FBQztBQUVYLGVBQU8sTUFBTSxrQkFBa0IsZUFDbzZELENBQUM7QUFRcDhEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLG9CQUFvQixDQUFDLE1BQU0sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLENBQUMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQVVqSCJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forwarder_proxy.d.ts","sourceRoot":"","sources":["../src/forwarder_proxy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAQpD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,eAAO,MAAM,yBAAyB,uRAOpC,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;EAyBhB,CAAC;AAEX,eAAO,MAAM,kBAAkB,eACo6D,CAAC;AAQp8D;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,wBAAwB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAUjH"}
@@ -0,0 +1,93 @@
1
+ /* eslint-disable no-console */ import { createLogger } from '@aztec/foundation/log';
2
+ import { DateProvider } from '@aztec/foundation/timer';
3
+ import { extractChain } from 'viem';
4
+ import { anvil, mainnet, sepolia } from 'viem/chains';
5
+ import { L1Deployer } from './deploy_l1_contracts.js';
6
+ export const FORWARDER_SOLIDITY_SOURCE = `
7
+ contract ForwarderProxy {
8
+ function forward(address target, bytes calldata data) external payable returns (bytes memory) {
9
+ (bool success, bytes memory result) = target.call{value: msg.value}(data);
10
+ require(success, "call failed");
11
+ return result;
12
+ }
13
+ }`;
14
+ export const FORWARDER_ABI = [
15
+ {
16
+ inputs: [
17
+ {
18
+ internalType: 'address',
19
+ name: 'target',
20
+ type: 'address'
21
+ },
22
+ {
23
+ internalType: 'bytes',
24
+ name: 'data',
25
+ type: 'bytes'
26
+ }
27
+ ],
28
+ name: 'forward',
29
+ outputs: [
30
+ {
31
+ internalType: 'bytes',
32
+ name: '',
33
+ type: 'bytes'
34
+ }
35
+ ],
36
+ stateMutability: 'payable',
37
+ type: 'function'
38
+ }
39
+ ];
40
+ export const FORWARDER_BYTECODE = '0x6080604052348015600e575f5ffd5b506103bf8061001c5f395ff3fe60806040526004361061001d575f3560e01c80636fadcf7214610021575b5f5ffd5b61003b600480360381019061003691906101d0565b610051565b604051610048919061029d565b60405180910390f35b60605f5f8573ffffffffffffffffffffffffffffffffffffffff1634868660405161007d9291906102f9565b5f6040518083038185875af1925050503d805f81146100b7576040519150601f19603f3d011682016040523d82523d5f602084013e6100bc565b606091505b509150915081610101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100f89061036b565b60405180910390fd5b80925050509392505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61013e82610115565b9050919050565b61014e81610134565b8114610158575f5ffd5b50565b5f8135905061016981610145565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126101905761018f61016f565b5b8235905067ffffffffffffffff8111156101ad576101ac610173565b5b6020830191508360018202830111156101c9576101c8610177565b5b9250929050565b5f5f5f604084860312156101e7576101e661010d565b5b5f6101f48682870161015b565b935050602084013567ffffffffffffffff81111561021557610214610111565b5b6102218682870161017b565b92509250509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026f8261022d565b6102798185610237565b9350610289818560208601610247565b61029281610255565b840191505092915050565b5f6020820190508181035f8301526102b58184610265565b905092915050565b5f81905092915050565b828183375f83830152505050565b5f6102e083856102bd565b93506102ed8385846102c7565b82840190509392505050565b5f6103058284866102d5565b91508190509392505050565b5f82825260208201905092915050565b7f63616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f610355600b83610311565b915061036082610321565b602082019050919050565b5f6020820190508181035f83015261038281610349565b905091905056fea26469706673582212209a1c8cf638cf1569450a731ef9457b862f9e153b0a46e5555429bcf4dffd999564736f6c634300081e0033';
41
+ const FORWARDER_ARTIFACT = {
42
+ name: 'Forwarder',
43
+ contractAbi: FORWARDER_ABI,
44
+ contractBytecode: FORWARDER_BYTECODE
45
+ };
46
+ /**
47
+ * Deploys the forwarder proxy contract to L1.
48
+ * @param client - The L1 client to use for deployment
49
+ * @param logger - Optional logger
50
+ * @returns The deployed forwarder contract address
51
+ */ export async function deployForwarderProxy(client, logger) {
52
+ const log = logger ?? createLogger('ethereum:forwarder');
53
+ const nonce = await client.getTransactionCount({
54
+ address: client.account.address
55
+ });
56
+ const deployer = new L1Deployer(client, nonce, new DateProvider(), false, log, undefined, false);
57
+ log.info('Deploying forwarder proxy contract');
58
+ const deployment = await deployer.deploy(FORWARDER_ARTIFACT, []);
59
+ log.info(`Forwarder proxy deployed at ${deployment.address.toString()}`);
60
+ return deployment.address;
61
+ }
62
+ /**
63
+ * Main function for deploying the forwarder proxy from command line.
64
+ * Usage: node forwarder_proxy.js <private_key> <rpc_url>
65
+ */ async function main() {
66
+ const args = process.argv.slice(2);
67
+ if (args.length < 3) {
68
+ console.error('Usage: node forwarder_proxy.js <private_key> <rpc_url> <chain_id>');
69
+ process.exit(1);
70
+ }
71
+ const [privateKey, rpcUrl, chainId] = args;
72
+ // Dynamic import to avoid pulling in dependencies at module load time
73
+ const { createExtendedL1Client } = await import('./client.js');
74
+ const client = createExtendedL1Client([
75
+ rpcUrl
76
+ ], privateKey.startsWith('0x') ? privateKey : `0x${privateKey}`, extractChain({
77
+ chains: [
78
+ mainnet,
79
+ sepolia,
80
+ anvil
81
+ ],
82
+ id: parseInt(chainId)
83
+ }));
84
+ const address = await deployForwarderProxy(client);
85
+ console.log(`Forwarder proxy deployed at: ${address.toString()}`);
86
+ }
87
+ // Only run main if this is the entry point
88
+ if (import.meta.url === `file://${process.argv[1]}`) {
89
+ main().catch((err)=>{
90
+ console.error('Failed to deploy forwarder proxy:', err);
91
+ process.exit(1);
92
+ });
93
+ }
@@ -4,6 +4,8 @@ import { type L1ContractAddresses } from './l1_contract_addresses.js';
4
4
  export interface L1ReaderConfig {
5
5
  /** List of URLs of Ethereum RPC nodes that services will connect to (comma separated). */
6
6
  l1RpcUrls: string[];
7
+ /** The RPC Url of the ethereum debug host for trace and debug methods. */
8
+ l1DebugRpcUrls: string[];
7
9
  /** The chain ID of the ethereum host. */
8
10
  l1ChainId: number;
9
11
  /** The deployed l1 contract addresses */
@@ -13,4 +15,4 @@ export interface L1ReaderConfig {
13
15
  }
14
16
  export declare const l1ReaderConfigMappings: ConfigMappingsType<L1ReaderConfig>;
15
17
  export declare function getL1ReaderConfigFromEnv(): L1ReaderConfig;
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfcmVhZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbDFfcmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUE2QyxNQUFNLDBCQUEwQixDQUFDO0FBRTlHLE9BQU8sRUFBRSxLQUFLLG1CQUFtQixFQUE4QixNQUFNLDRCQUE0QixDQUFDO0FBRWxHLDJDQUEyQztBQUMzQyxNQUFNLFdBQVcsY0FBYztJQUM3QiwwRkFBMEY7SUFDMUYsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3BCLHlDQUF5QztJQUN6QyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLHlDQUF5QztJQUN6QyxXQUFXLEVBQUUsbUJBQW1CLENBQUM7SUFDakMsMkNBQTJDO0lBQzNDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQztDQUMvQjtBQUVELGVBQU8sTUFBTSxzQkFBc0IsRUFBRSxrQkFBa0IsQ0FBQyxjQUFjLENBcUJyRSxDQUFDO0FBRUYsd0JBQWdCLHdCQUF3QixJQUFJLGNBQWMsQ0FFekQifQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfcmVhZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbDFfcmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUE2QyxNQUFNLDBCQUEwQixDQUFDO0FBRTlHLE9BQU8sRUFBRSxLQUFLLG1CQUFtQixFQUE4QixNQUFNLDRCQUE0QixDQUFDO0FBRWxHLDJDQUEyQztBQUMzQyxNQUFNLFdBQVcsY0FBYztJQUM3QiwwRkFBMEY7SUFDMUYsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3BCLDBFQUEwRTtJQUMxRSxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDekIseUNBQXlDO0lBQ3pDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIseUNBQXlDO0lBQ3pDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQztJQUNqQywyQ0FBMkM7SUFDM0MscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0NBQy9CO0FBRUQsZUFBTyxNQUFNLHNCQUFzQixFQUFFLGtCQUFrQixDQUFDLGNBQWMsQ0EyQnJFLENBQUM7QUFFRix3QkFBZ0Isd0JBQXdCLElBQUksY0FBYyxDQUV6RCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"l1_reader.d.ts","sourceRoot":"","sources":["../src/l1_reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,0BAA0B,CAAC;AAE9G,OAAO,EAAE,KAAK,mBAAmB,EAA8B,MAAM,4BAA4B,CAAC;AAElG,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,0FAA0F;IAC1F,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,WAAW,EAAE,mBAAmB,CAAC;IACjC,2CAA2C;IAC3C,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CAAC,cAAc,CAqBrE,CAAC;AAEF,wBAAgB,wBAAwB,IAAI,cAAc,CAEzD"}
1
+ {"version":3,"file":"l1_reader.d.ts","sourceRoot":"","sources":["../src/l1_reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,0BAA0B,CAAC;AAE9G,OAAO,EAAE,KAAK,mBAAmB,EAA8B,MAAM,4BAA4B,CAAC;AAElG,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,0FAA0F;IAC1F,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,0EAA0E;IAC1E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,WAAW,EAAE,mBAAmB,CAAC;IACjC,2CAA2C;IAC3C,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CAAC,cAAc,CA2BrE,CAAC;AAEF,wBAAgB,wBAAwB,IAAI,cAAc,CAEzD"}
package/dest/l1_reader.js CHANGED
@@ -16,6 +16,12 @@ export const l1ReaderConfigMappings = {
16
16
  parseEnv: (val)=>val.split(',').map((url)=>url.trim()),
17
17
  defaultValue: []
18
18
  },
19
+ l1DebugRpcUrls: {
20
+ env: 'ETHEREUM_DEBUG_HOSTS',
21
+ description: 'The RPC Url of the ethereum debug host for trace and debug methods.',
22
+ parseEnv: (val)=>val.split(',').map((url)=>url.trim()),
23
+ defaultValue: []
24
+ },
19
25
  viemPollingIntervalMS: {
20
26
  env: 'L1_READER_VIEM_POLLING_INTERVAL_MS',
21
27
  description: 'The polling interval viem uses in ms',
@@ -0,0 +1,41 @@
1
+ import { EthAddress } from '@aztec/foundation/eth-address';
2
+ import type { Logger } from '@aztec/foundation/log';
3
+ import type { DateProvider } from '@aztec/foundation/timer';
4
+ import type { EthSigner } from '../eth-signer/eth-signer.js';
5
+ import type { ExtendedViemWalletClient, ViemClient } from '../types.js';
6
+ import type { L1TxUtilsConfig } from './config.js';
7
+ import type { IL1TxMetrics, IL1TxStore } from './interfaces.js';
8
+ import { L1TxUtilsWithBlobs } from './l1_tx_utils_with_blobs.js';
9
+ import type { L1BlobInputs, L1TxConfig, L1TxRequest, SigningCallback } from './types.js';
10
+ /**
11
+ * Extends L1TxUtilsWithBlobs to wrap all transactions through a forwarder contract.
12
+ * This is mainly used for testing the archiver's ability to decode transactions that go through proxies.
13
+ */
14
+ export declare class ForwarderL1TxUtils extends L1TxUtilsWithBlobs {
15
+ private readonly forwarderAddress;
16
+ constructor(client: ViemClient | ExtendedViemWalletClient, senderAddress: EthAddress, signingCallback: SigningCallback, logger: Logger | undefined, dateProvider: DateProvider | undefined, config: Partial<L1TxUtilsConfig>, debugMaxGasLimit: boolean, store: IL1TxStore | undefined, metrics: IL1TxMetrics | undefined, forwarderAddress: EthAddress);
17
+ /**
18
+ * Wraps the transaction request in a call to the forwarder contract.
19
+ */
20
+ private wrapInForwarder;
21
+ /**
22
+ * Override sendAndMonitorTransaction to wrap the request in a forwarder call.
23
+ */
24
+ sendAndMonitorTransaction(request: L1TxRequest, gasConfig?: L1TxConfig, blobInputs?: L1BlobInputs): Promise<{
25
+ receipt: import("viem").TransactionReceipt;
26
+ state: import("./types.js").L1TxState;
27
+ }>;
28
+ }
29
+ export declare function createForwarderL1TxUtilsFromViemWallet(client: ExtendedViemWalletClient, forwarderAddress: EthAddress, deps?: {
30
+ logger?: Logger;
31
+ dateProvider?: DateProvider;
32
+ store?: IL1TxStore;
33
+ metrics?: IL1TxMetrics;
34
+ }, config?: Partial<L1TxUtilsConfig>, debugMaxGasLimit?: boolean): ForwarderL1TxUtils;
35
+ export declare function createForwarderL1TxUtilsFromEthSigner(client: ViemClient, signer: EthSigner, forwarderAddress: EthAddress, deps?: {
36
+ logger?: Logger;
37
+ dateProvider?: DateProvider;
38
+ store?: IL1TxStore;
39
+ metrics?: IL1TxMetrics;
40
+ }, config?: Partial<L1TxUtilsConfig>, debugMaxGasLimit?: boolean): ForwarderL1TxUtils;
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yd2FyZGVyX2wxX3R4X3V0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbDFfdHhfdXRpbHMvZm9yd2FyZGVyX2wxX3R4X3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUk1RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU3RCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVqRSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekY7OztHQUdHO0FBQ0gscUJBQWEsa0JBQW1CLFNBQVEsa0JBQWtCO0lBV3RELE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCO0lBVm5DLFlBQ0UsTUFBTSxFQUFFLFVBQVUsR0FBRyx3QkFBd0IsRUFDN0MsYUFBYSxFQUFFLFVBQVUsRUFDekIsZUFBZSxFQUFFLGVBQWUsRUFDaEMsTUFBTSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQzFCLFlBQVksRUFBRSxZQUFZLEdBQUcsU0FBUyxFQUN0QyxNQUFNLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUNoQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQ3pCLEtBQUssRUFBRSxVQUFVLEdBQUcsU0FBUyxFQUM3QixPQUFPLEVBQUUsWUFBWSxHQUFHLFNBQVMsRUFDaEIsZ0JBQWdCLEVBQUUsVUFBVSxFQUc5QztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLGVBQWU7SUFldkI7O09BRUc7SUFDYSx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxZQUFZOzs7T0FJaEg7Q0FDRjtBQUVELHdCQUFnQixzQ0FBc0MsQ0FDcEQsTUFBTSxFQUFFLHdCQUF3QixFQUNoQyxnQkFBZ0IsRUFBRSxVQUFVLEVBQzVCLElBQUksR0FBRTtJQUNKLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQixZQUFZLENBQUMsRUFBRSxZQUFZLENBQUM7SUFDNUIsS0FBSyxDQUFDLEVBQUUsVUFBVSxDQUFDO0lBQ25CLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FBQztDQUNuQixFQUNOLE1BQU0sR0FBRSxPQUFPLENBQUMsZUFBZSxDQUFNLEVBQ3JDLGdCQUFnQixHQUFFLE9BQWUsc0JBY2xDO0FBRUQsd0JBQWdCLHFDQUFxQyxDQUNuRCxNQUFNLEVBQUUsVUFBVSxFQUNsQixNQUFNLEVBQUUsU0FBUyxFQUNqQixnQkFBZ0IsRUFBRSxVQUFVLEVBQzVCLElBQUksR0FBRTtJQUNKLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQixZQUFZLENBQUMsRUFBRSxZQUFZLENBQUM7SUFDNUIsS0FBSyxDQUFDLEVBQUUsVUFBVSxDQUFDO0lBQ25CLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FBQztDQUNuQixFQUNOLE1BQU0sR0FBRSxPQUFPLENBQUMsZUFBZSxDQUFNLEVBQ3JDLGdCQUFnQixHQUFFLE9BQWUsc0JBa0JsQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forwarder_l1_tx_utils.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/forwarder_l1_tx_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAI5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEzF;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,kBAAkB;IAWtD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAVnC,YACE,MAAM,EAAE,UAAU,GAAG,wBAAwB,EAC7C,aAAa,EAAE,UAAU,EACzB,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,EAChC,gBAAgB,EAAE,OAAO,EACzB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,OAAO,EAAE,YAAY,GAAG,SAAS,EAChB,gBAAgB,EAAE,UAAU,EAG9C;IAED;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACa,yBAAyB,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,YAAY;;;OAIhH;CACF;AAED,wBAAgB,sCAAsC,CACpD,MAAM,EAAE,wBAAwB,EAChC,gBAAgB,EAAE,UAAU,EAC5B,IAAI,GAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;CACnB,EACN,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,gBAAgB,GAAE,OAAe,sBAclC;AAED,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,SAAS,EACjB,gBAAgB,EAAE,UAAU,EAC5B,IAAI,GAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;CACnB,EACN,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,gBAAgB,GAAE,OAAe,sBAkBlC"}
@@ -0,0 +1,48 @@
1
+ import { EthAddress } from '@aztec/foundation/eth-address';
2
+ import { encodeFunctionData } from 'viem';
3
+ import { FORWARDER_ABI } from '../forwarder_proxy.js';
4
+ import { L1TxUtilsWithBlobs } from './l1_tx_utils_with_blobs.js';
5
+ import { createViemSigner } from './signer.js';
6
+ /**
7
+ * Extends L1TxUtilsWithBlobs to wrap all transactions through a forwarder contract.
8
+ * This is mainly used for testing the archiver's ability to decode transactions that go through proxies.
9
+ */ export class ForwarderL1TxUtils extends L1TxUtilsWithBlobs {
10
+ forwarderAddress;
11
+ constructor(client, senderAddress, signingCallback, logger, dateProvider, config, debugMaxGasLimit, store, metrics, forwarderAddress){
12
+ super(client, senderAddress, signingCallback, logger, dateProvider, config, debugMaxGasLimit, store, metrics), this.forwarderAddress = forwarderAddress;
13
+ }
14
+ /**
15
+ * Wraps the transaction request in a call to the forwarder contract.
16
+ */ wrapInForwarder(request) {
17
+ const forwarderCalldata = encodeFunctionData({
18
+ abi: FORWARDER_ABI,
19
+ functionName: 'forward',
20
+ args: [
21
+ request.to,
22
+ request.data
23
+ ]
24
+ });
25
+ return {
26
+ to: this.forwarderAddress.toString(),
27
+ data: forwarderCalldata,
28
+ value: request.value,
29
+ abi: request.abi
30
+ };
31
+ }
32
+ /**
33
+ * Override sendAndMonitorTransaction to wrap the request in a forwarder call.
34
+ */ sendAndMonitorTransaction(request, gasConfig, blobInputs) {
35
+ this.logger.debug(`Wrapping transaction to ${request.to} in forwarder at ${this.forwarderAddress.toString()}`);
36
+ const wrappedRequest = this.wrapInForwarder(request);
37
+ return super.sendAndMonitorTransaction(wrappedRequest, gasConfig, blobInputs);
38
+ }
39
+ }
40
+ export function createForwarderL1TxUtilsFromViemWallet(client, forwarderAddress, deps = {}, config = {}, debugMaxGasLimit = false) {
41
+ return new ForwarderL1TxUtils(client, EthAddress.fromString(client.account.address), createViemSigner(client), deps.logger, deps.dateProvider, config, debugMaxGasLimit, deps.store, deps.metrics, forwarderAddress);
42
+ }
43
+ export function createForwarderL1TxUtilsFromEthSigner(client, signer, forwarderAddress, deps = {}, config = {}, debugMaxGasLimit = false) {
44
+ const callback = async (transaction, _signingAddress)=>{
45
+ return (await signer.signTransaction(transaction)).toViemTransactionSignature();
46
+ };
47
+ return new ForwarderL1TxUtils(client, signer.address, callback, deps.logger, deps.dateProvider, config, debugMaxGasLimit, deps.store, deps.metrics, forwarderAddress);
48
+ }
@@ -0,0 +1,3 @@
1
+ export * from './forwarder_l1_tx_utils.js';
2
+ export * from './l1_tx_utils_with_blobs.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtYmxvYnMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMV90eF91dGlscy9pbmRleC1ibG9icy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-blobs.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/index-blobs.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './forwarder_l1_tx_utils.js';
2
+ export * from './l1_tx_utils_with_blobs.js';
@@ -1,4 +1,4 @@
1
- import { type RollupContract } from '@aztec/ethereum/contracts';
1
+ import type { RollupContract } from '@aztec/ethereum/contracts';
2
2
  import { CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
3
3
  import { EthAddress } from '@aztec/foundation/eth-address';
4
4
  import { DateProvider } from '@aztec/foundation/timer';
@@ -72,4 +72,4 @@ export declare class ChainMonitor extends EventEmitter<ChainMonitorEventMap> {
72
72
  waitUntilL1Timestamp(timestamp: number | bigint): Promise<void>;
73
73
  waitUntilCheckpoint(checkpointNumber: CheckpointNumber): Promise<void>;
74
74
  }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5fbW9uaXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvY2hhaW5fbW9uaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLEtBQUssY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFJdEMsTUFBTSxNQUFNLG9CQUFvQixHQUFHO0lBQ2pDLFVBQVUsRUFBRSxDQUFDO1FBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQztRQUFDLFNBQVMsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDLENBQUM7SUFDM0QsVUFBVSxFQUFFO1FBQ1Y7WUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQztZQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7WUFBQyxZQUFZLEVBQUUsVUFBVSxDQUFDO1lBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQTtTQUFFO0tBQzNHLENBQUM7SUFDRixtQkFBbUIsRUFBRSxDQUFDO1FBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUM7UUFBQyxhQUFhLEVBQUUsTUFBTSxDQUFDO1FBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQTtLQUFFLENBQUMsQ0FBQztJQUM5RyxhQUFhLEVBQUUsQ0FBQztRQUFFLGVBQWUsRUFBRSxNQUFNLENBQUM7UUFBQyxhQUFhLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQyxDQUFDO0lBQ3BFLFVBQVUsRUFBRSxDQUFDO1FBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQztRQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7UUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsU0FBUyxDQUFBO0tBQUUsQ0FBQyxDQUFDO0lBQ3JHLFNBQVMsRUFBRSxDQUFDO1FBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQztRQUFDLFNBQVMsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDLENBQUM7Q0FDOUQsQ0FBQztBQUVGLDhHQUE4RztBQUM5RyxxQkFBYSxZQUFhLFNBQVEsWUFBWSxDQUFDLG9CQUFvQixDQUFDO0lBeUJoRSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZO0lBQzdCLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVU7SUEzQjdCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFhO0lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQTRCO0lBQ3pDLE9BQU8sQ0FBQyxNQUFNLENBQTZCO0lBRTNDLE9BQU8sQ0FBQyxPQUFPLENBQWlDO0lBRWhELDhCQUE4QjtJQUN2QixhQUFhLEVBQUcsTUFBTSxDQUFDO0lBQzlCLGdDQUFnQztJQUN6QixnQkFBZ0IsRUFBRyxnQkFBZ0IsQ0FBQztJQUMzQyx1Q0FBdUM7SUFDaEMsc0JBQXNCLEVBQUcsZ0JBQWdCLENBQUM7SUFDakQsOENBQThDO0lBQ3ZDLG1CQUFtQixFQUFHLE1BQU0sQ0FBQztJQUNwQyw2Q0FBNkM7SUFDdEMseUJBQXlCLEVBQUcsTUFBTSxDQUFDO0lBQzFDLHdEQUF3RDtJQUNqRCxlQUFlLEVBQUUsTUFBTSxDQUFLO0lBQ25DLDhCQUE4QjtJQUN2QixhQUFhLEVBQUcsV0FBVyxDQUFDO0lBQ25DLDZCQUE2QjtJQUN0QixZQUFZLEVBQUcsVUFBVSxDQUFDO0lBRWpDLFlBQ21CLE1BQU0sRUFBRSxjQUFjLEVBQ3RCLFlBQVksR0FBRSxZQUFpQyxFQUMvQyxNQUFNLHlDQUE4QyxFQUNwRCxVQUFVLFNBQU0sRUFJbEM7SUFFRCxLQUFLLFNBTUo7SUFFSyxJQUFJLGtCQVdUO1lBRWEsUUFBUTtJQVF0QixTQUFTLENBQUMsT0FBTyxTQVloQjtJQUVLLEdBQUcsQ0FBQyxLQUFLLFVBQVEsaUJBZ0Z0QjtJQUVNLGVBQWUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FhdEQ7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBYzdEO0lBRU0sb0JBQW9CLENBQUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWNyRTtJQUVNLG1CQUFtQixDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FhNUU7Q0FDRiJ9
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5fbW9uaXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvY2hhaW5fbW9uaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUczRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUl0QyxNQUFNLE1BQU0sb0JBQW9CLEdBQUc7SUFDakMsVUFBVSxFQUFFLENBQUM7UUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDO1FBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQTtLQUFFLENBQUMsQ0FBQztJQUMzRCxVQUFVLEVBQUU7UUFDVjtZQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO1lBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztZQUFDLFlBQVksRUFBRSxVQUFVLENBQUM7WUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFBO1NBQUU7S0FDM0csQ0FBQztJQUNGLG1CQUFtQixFQUFFLENBQUM7UUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsQ0FBQztRQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7UUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQyxDQUFDO0lBQzlHLGFBQWEsRUFBRSxDQUFDO1FBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQztRQUFDLGFBQWEsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDLENBQUM7SUFDcEUsVUFBVSxFQUFFLENBQUM7UUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDO1FBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztRQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FBRyxTQUFTLENBQUE7S0FBRSxDQUFDLENBQUM7SUFDckcsU0FBUyxFQUFFLENBQUM7UUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDO1FBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQTtLQUFFLENBQUMsQ0FBQztDQUM5RCxDQUFDO0FBRUYsOEdBQThHO0FBQzlHLHFCQUFhLFlBQWEsU0FBUSxZQUFZLENBQUMsb0JBQW9CLENBQUM7SUF5QmhFLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVk7SUFDN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNO0lBQ3ZCLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVTtJQTNCN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQWE7SUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBNEI7SUFDekMsT0FBTyxDQUFDLE1BQU0sQ0FBNkI7SUFFM0MsT0FBTyxDQUFDLE9BQU8sQ0FBaUM7SUFFaEQsOEJBQThCO0lBQ3ZCLGFBQWEsRUFBRyxNQUFNLENBQUM7SUFDOUIsZ0NBQWdDO0lBQ3pCLGdCQUFnQixFQUFHLGdCQUFnQixDQUFDO0lBQzNDLHVDQUF1QztJQUNoQyxzQkFBc0IsRUFBRyxnQkFBZ0IsQ0FBQztJQUNqRCw4Q0FBOEM7SUFDdkMsbUJBQW1CLEVBQUcsTUFBTSxDQUFDO0lBQ3BDLDZDQUE2QztJQUN0Qyx5QkFBeUIsRUFBRyxNQUFNLENBQUM7SUFDMUMsd0RBQXdEO0lBQ2pELGVBQWUsRUFBRSxNQUFNLENBQUs7SUFDbkMsOEJBQThCO0lBQ3ZCLGFBQWEsRUFBRyxXQUFXLENBQUM7SUFDbkMsNkJBQTZCO0lBQ3RCLFlBQVksRUFBRyxVQUFVLENBQUM7SUFFakMsWUFDbUIsTUFBTSxFQUFFLGNBQWMsRUFDdEIsWUFBWSxHQUFFLFlBQWlDLEVBQy9DLE1BQU0seUNBQThDLEVBQ3BELFVBQVUsU0FBTSxFQUlsQztJQUVELEtBQUssU0FNSjtJQUVLLElBQUksa0JBV1Q7WUFFYSxRQUFRO0lBUXRCLFNBQVMsQ0FBQyxPQUFPLFNBWWhCO0lBRUssR0FBRyxDQUFDLEtBQUssVUFBUSxpQkFnRnRCO0lBRU0sZUFBZSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWF0RDtJQUVNLGdCQUFnQixDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FjN0Q7SUFFTSxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBY3JFO0lBRU0sbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWE1RTtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"chain_monitor.d.ts","sourceRoot":"","sources":["../../src/test/chain_monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chain_monitor.d.ts","sourceRoot":"","sources":["../../src/test/chain_monitor.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { type ViemPublicClient } from '@aztec/ethereum';
2
1
  import type { L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
2
+ import type { ViemPublicClient } from '@aztec/ethereum/types';
3
3
  import { CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
4
4
  import type { DateProvider } from '@aztec/foundation/timer';
5
5
  import { RollupAbi } from '@aztec/l1-artifacts/RollupAbi';
@@ -84,4 +84,4 @@ export declare class RollupCheatCodes {
84
84
  */
85
85
  setProvingCostPerMana(ethValue: bigint): Promise<void>;
86
86
  }
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbHVwX2NoZWF0X2NvZGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9yb2xsdXBfY2hlYXRfY29kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixLQUFLLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzVGLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUxRCxPQUFPLEVBQ0wsS0FBSyxxQkFBcUIsRUFDMUIsS0FBSyxHQUFHLEVBTVQsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFckQsOENBQThDO0FBQzlDLHFCQUFhLGdCQUFnQjtJQU96QixPQUFPLENBQUMsYUFBYTtJQU52QixPQUFPLENBQUMsTUFBTSxDQUFtQjtJQUNqQyxPQUFPLENBQUMsTUFBTSxDQUE0RDtJQUUxRSxPQUFPLENBQUMsTUFBTSxDQUF1QztJQUVyRCxZQUNVLGFBQWEsRUFBRSxhQUFhLEVBQ3BDLFNBQVMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxDQUFDLEVBV3REO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FDWCxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxDQUFDLEVBQ3JELFlBQVksRUFBRSxZQUFZLEdBQ3pCLGdCQUFnQixDQUdsQjtJQUVELCtCQUErQjtJQUNsQixPQUFPLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUcxQztJQUVELGdDQUFnQztJQUNuQixRQUFRLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUc1QztJQUVEOzs7T0FHRztJQUNVLE9BQU8sSUFBSSxPQUFPLENBQUM7UUFDOUIsNEJBQTRCLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDO1FBQ3ZELDJCQUEyQixDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQztLQUN0RCxDQUFDLENBTUQ7SUFFRDs7T0FFRztJQUNVLFdBQVcsa0JBaUJ2QjtJQUVELDBFQUEwRTtJQUM3RCxTQUFTLElBQUksT0FBTyxDQUFDO1FBQ2hDLHFCQUFxQixDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7UUFDNUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQztLQUMzQyxDQUFDLENBTUQ7SUFFRDs7OztPQUlHO0lBQ1UsY0FBYyxDQUN6QixLQUFLLEVBQUUsV0FBVyxFQUNsQixJQUFJLEdBQUU7UUFDSix3QkFBd0I7UUFDeEIsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDO0tBQ1osbUJBWVA7SUFFRCw0Q0FBNEM7SUFDL0Isa0JBQWtCLGtCQVc5QjtJQUVELDZEQUE2RDtJQUNoRCxpQkFBaUIscUNBTzdCO0lBRUQ7OztPQUdHO0lBQ1UsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLGlCQU94QztJQUVEOzs7T0FHRztJQUNJLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLGlCQStCMUQ7SUFFRDs7O09BR0c7SUFDSSxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBbUN2RTtJQUVEOzs7T0FHRztJQUNVLE9BQU8sQ0FDbEIsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUscUJBQXFCLENBQUMsT0FBTyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQU16RztJQUVEOztPQUVHO0lBQ1UsVUFBVSxrQkFPdEI7SUFFRCw0Q0FBNEM7SUFDL0Isb0JBQW9CLGtCQU1oQztJQUVEOzs7T0FHRztJQUNVLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLEtBQUssTUFBTSxpQkFJckU7SUFFRDs7O09BR0c7SUFDVSxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxpQkFVbEQ7Q0FDRiJ9
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbHVwX2NoZWF0X2NvZGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9yb2xsdXBfY2hlYXRfY29kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHNUYsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTFELE9BQU8sRUFDTCxLQUFLLHFCQUFxQixFQUMxQixLQUFLLEdBQUcsRUFNVCxNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCw4Q0FBOEM7QUFDOUMscUJBQWEsZ0JBQWdCO0lBT3pCLE9BQU8sQ0FBQyxhQUFhO0lBTnZCLE9BQU8sQ0FBQyxNQUFNLENBQW1CO0lBQ2pDLE9BQU8sQ0FBQyxNQUFNLENBQTREO0lBRTFFLE9BQU8sQ0FBQyxNQUFNLENBQXVDO0lBRXJELFlBQ1UsYUFBYSxFQUFFLGFBQWEsRUFDcEMsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLENBQUMsRUFXdEQ7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUNYLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLENBQUMsRUFDckQsWUFBWSxFQUFFLFlBQVksR0FDekIsZ0JBQWdCLENBR2xCO0lBRUQsK0JBQStCO0lBQ2xCLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLENBRzFDO0lBRUQsZ0NBQWdDO0lBQ25CLFFBQVEsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLENBRzVDO0lBRUQ7OztPQUdHO0lBQ1UsT0FBTyxJQUFJLE9BQU8sQ0FBQztRQUM5Qiw0QkFBNEIsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUM7UUFDdkQsMkJBQTJCLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDO0tBQ3RELENBQUMsQ0FNRDtJQUVEOztPQUVHO0lBQ1UsV0FBVyxrQkFpQnZCO0lBRUQsMEVBQTBFO0lBQzdELFNBQVMsSUFBSSxPQUFPLENBQUM7UUFDaEMscUJBQXFCLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztRQUM1QyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDO0tBQzNDLENBQUMsQ0FNRDtJQUVEOzs7O09BSUc7SUFDVSxjQUFjLENBQ3pCLEtBQUssRUFBRSxXQUFXLEVBQ2xCLElBQUksR0FBRTtRQUNKLHdCQUF3QjtRQUN4QixNQUFNLENBQUMsRUFBRSxNQUFNLENBQUM7S0FDWixtQkFZUDtJQUVELDRDQUE0QztJQUMvQixrQkFBa0Isa0JBVzlCO0lBRUQsNkRBQTZEO0lBQ2hELGlCQUFpQixxQ0FPN0I7SUFFRDs7O09BR0c7SUFDVSxZQUFZLENBQUMsT0FBTyxFQUFFLE1BQU0saUJBT3hDO0lBRUQ7OztPQUdHO0lBQ0ksWUFBWSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxHQUFHLE1BQU0saUJBK0IxRDtJQUVEOzs7T0FHRztJQUNJLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FtQ3ZFO0lBRUQ7OztPQUdHO0lBQ1UsT0FBTyxDQUNsQixNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBTXpHO0lBRUQ7O09BRUc7SUFDVSxVQUFVLGtCQU90QjtJQUVELDRDQUE0QztJQUMvQixvQkFBb0Isa0JBTWhDO0lBRUQ7OztPQUdHO0lBQ1Usc0JBQXNCLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sS0FBSyxNQUFNLGlCQUlyRTtJQUVEOzs7T0FHRztJQUNVLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxNQUFNLGlCQVVsRDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"rollup_cheat_codes.d.ts","sourceRoot":"","sources":["../../src/test/rollup_cheat_codes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,GAAG,EAMT,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,8CAA8C;AAC9C,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,aAAa;IANvB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAA4D;IAE1E,OAAO,CAAC,MAAM,CAAuC;IAErD,YACU,aAAa,EAAE,aAAa,EACpC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,EAWtD;IAED,MAAM,CAAC,MAAM,CACX,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,EACrD,YAAY,EAAE,YAAY,GACzB,gBAAgB,CAGlB;IAED,+BAA+B;IAClB,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAG1C;IAED,gCAAgC;IACnB,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,CAG5C;IAED;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC;QAC9B,4BAA4B,CAAC,OAAO,EAAE,gBAAgB,CAAC;QACvD,2BAA2B,CAAC,MAAM,EAAE,gBAAgB,CAAC;KACtD,CAAC,CAMD;IAED;;OAEG;IACU,WAAW,kBAiBvB;IAED,0EAA0E;IAC7D,SAAS,IAAI,OAAO,CAAC;QAChC,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC;QAC5C,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC;KAC3C,CAAC,CAMD;IAED;;;;OAIG;IACU,cAAc,CACzB,KAAK,EAAE,WAAW,EAClB,IAAI,GAAE;QACJ,wBAAwB;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ,mBAYP;IAED,4CAA4C;IAC/B,kBAAkB,kBAW9B;IAED,6DAA6D;IAChD,iBAAiB,qCAO7B;IAED;;;OAGG;IACU,YAAY,CAAC,OAAO,EAAE,MAAM,iBAOxC;IAED;;;OAGG;IACI,YAAY,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,iBA+B1D;IAED;;;OAGG;IACI,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCvE;IAED;;;OAGG;IACU,OAAO,CAClB,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,qBAAqB,CAAC,OAAO,SAAS,EAAE,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,iBAMzG;IAED;;OAEG;IACU,UAAU,kBAOtB;IAED,4CAA4C;IAC/B,oBAAoB,kBAMhC;IAED;;;OAGG;IACU,sBAAsB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,iBAIrE;IAED;;;OAGG;IACU,qBAAqB,CAAC,QAAQ,EAAE,MAAM,iBAUlD;CACF"}
1
+ {"version":3,"file":"rollup_cheat_codes.d.ts","sourceRoot":"","sources":["../../src/test/rollup_cheat_codes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,GAAG,EAMT,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,8CAA8C;AAC9C,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,aAAa;IANvB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAA4D;IAE1E,OAAO,CAAC,MAAM,CAAuC;IAErD,YACU,aAAa,EAAE,aAAa,EACpC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,EAWtD;IAED,MAAM,CAAC,MAAM,CACX,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,EACrD,YAAY,EAAE,YAAY,GACzB,gBAAgB,CAGlB;IAED,+BAA+B;IAClB,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAG1C;IAED,gCAAgC;IACnB,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,CAG5C;IAED;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC;QAC9B,4BAA4B,CAAC,OAAO,EAAE,gBAAgB,CAAC;QACvD,2BAA2B,CAAC,MAAM,EAAE,gBAAgB,CAAC;KACtD,CAAC,CAMD;IAED;;OAEG;IACU,WAAW,kBAiBvB;IAED,0EAA0E;IAC7D,SAAS,IAAI,OAAO,CAAC;QAChC,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC;QAC5C,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC;KAC3C,CAAC,CAMD;IAED;;;;OAIG;IACU,cAAc,CACzB,KAAK,EAAE,WAAW,EAClB,IAAI,GAAE;QACJ,wBAAwB;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ,mBAYP;IAED,4CAA4C;IAC/B,kBAAkB,kBAW9B;IAED,6DAA6D;IAChD,iBAAiB,qCAO7B;IAED;;;OAGG;IACU,YAAY,CAAC,OAAO,EAAE,MAAM,iBAOxC;IAED;;;OAGG;IACI,YAAY,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,iBA+B1D;IAED;;;OAGG;IACI,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCvE;IAED;;;OAGG;IACU,OAAO,CAClB,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,qBAAqB,CAAC,OAAO,SAAS,EAAE,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,iBAMzG;IAED;;OAEG;IACU,UAAU,kBAOtB;IAED,4CAA4C;IAC/B,oBAAoB,kBAMhC;IAED;;;OAGG;IACU,sBAAsB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,iBAIrE;IAED;;;OAGG;IACU,qBAAqB,CAAC,QAAQ,EAAE,MAAM,iBAUlD;CACF"}
@@ -1,4 +1,4 @@
1
- import { RollupContract } from '@aztec/ethereum';
1
+ import { RollupContract } from '@aztec/ethereum/contracts';
2
2
  import { CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
3
3
  import { EthAddress } from '@aztec/foundation/eth-address';
4
4
  import { createLogger } from '@aztec/foundation/log';
package/dest/types.d.ts CHANGED
@@ -1,6 +1,61 @@
1
- import type { Abi, Account, Chain, Client, FallbackTransport, GetContractReturnType, HttpTransport, PublicActions, PublicClient, PublicRpcSchema, WalletActions, WalletRpcSchema } from 'viem';
1
+ import type { Abi, Account, Chain, Client, FallbackTransport, GetContractReturnType, Hex, HttpTransport, PublicActions, PublicClient, PublicRpcSchema, WalletActions, WalletRpcSchema } from 'viem';
2
2
  /** Type for a viem public client */
3
3
  export type ViemPublicClient = PublicClient<FallbackTransport<HttpTransport[]>, Chain>;
4
+ export type PublicRpcDebugSchema = [
5
+ {
6
+ Method: 'debug_traceTransaction';
7
+ Parameters: [txHash: `0x${string}`, options: {
8
+ tracer: 'callTracer';
9
+ }];
10
+ ReturnType: DebugCallTrace;
11
+ },
12
+ {
13
+ Method: 'trace_transaction';
14
+ Parameters: [txHash: `0x${string}`];
15
+ ReturnType: TraceTransactionResponse[];
16
+ }
17
+ ];
18
+ /** Return type for a debug_traceTransaction call */
19
+ export type DebugCallTrace = {
20
+ from: Hex;
21
+ to?: Hex;
22
+ type: string;
23
+ input?: Hex;
24
+ output?: Hex;
25
+ gas?: Hex;
26
+ gasUsed?: Hex;
27
+ value?: Hex;
28
+ error?: string;
29
+ calls?: DebugCallTrace[];
30
+ };
31
+ /** Action object for a trace_transaction call */
32
+ export type TraceAction = {
33
+ from: Hex;
34
+ to?: Hex;
35
+ callType: string;
36
+ gas?: Hex;
37
+ input?: Hex;
38
+ value?: Hex;
39
+ };
40
+ /** Result object for a trace_transaction call */
41
+ export type TraceResult = {
42
+ gasUsed?: Hex;
43
+ output?: Hex;
44
+ };
45
+ /** Return type for a single trace in trace_transaction response */
46
+ export type TraceTransactionResponse = {
47
+ action: TraceAction;
48
+ result?: TraceResult;
49
+ error?: string;
50
+ subtraces: number;
51
+ traceAddress: number[];
52
+ type: string;
53
+ };
54
+ /** Type for a viem public client with support for debug methods */
55
+ export type ViemPublicDebugClient = PublicClient<FallbackTransport<HttpTransport[]>, Chain, undefined, [
56
+ ...PublicRpcSchema,
57
+ ...PublicRpcDebugSchema
58
+ ]>;
4
59
  export type ExtendedViemWalletClient = Client<FallbackTransport<readonly HttpTransport[]>, Chain, Account, [
5
60
  ...PublicRpcSchema,
6
61
  ...WalletRpcSchema
@@ -10,4 +65,4 @@ export type ViemClient = ViemPublicClient | ExtendedViemWalletClient;
10
65
  /** Type for a viem contract that can be used with an extended viem client */
11
66
  export type ViemContract<TAbi extends Abi> = GetContractReturnType<TAbi, ExtendedViemWalletClient>;
12
67
  export declare function isExtendedClient(client: ViemClient): client is ExtendedViemWalletClient;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFDVixHQUFHLEVBQ0gsT0FBTyxFQUNQLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQixhQUFhLEVBQ2IsYUFBYSxFQUNiLFlBQVksRUFDWixlQUFlLEVBQ2YsYUFBYSxFQUNiLGVBQWUsRUFDaEIsTUFBTSxNQUFNLENBQUM7QUFFZCxvQ0FBb0M7QUFDcEMsTUFBTSxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRXZGLE1BQU0sTUFBTSx3QkFBd0IsR0FBRyxNQUFNLENBQzNDLGlCQUFpQixDQUFDLFNBQVMsYUFBYSxFQUFFLENBQUMsRUFDM0MsS0FBSyxFQUNMLE9BQU8sRUFDUDtJQUFDLEdBQUcsZUFBZTtJQUFFLEdBQUcsZUFBZTtDQUFDLEVBQ3hDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLGFBQWEsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FDbEcsQ0FBQztBQUVGLDRGQUE0RjtBQUM1RixNQUFNLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDO0FBRXJFLDZFQUE2RTtBQUM3RSxNQUFNLE1BQU0sWUFBWSxDQUFDLElBQUksU0FBUyxHQUFHLElBQUkscUJBQXFCLENBQUMsSUFBSSxFQUFFLHdCQUF3QixDQUFDLENBQUM7QUFFbkcsd0JBQWdCLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxVQUFVLEdBQUcsTUFBTSxJQUFJLHdCQUF3QixDQUV2RiJ9
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFDVixHQUFHLEVBQ0gsT0FBTyxFQUNQLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQixHQUFHLEVBQ0gsYUFBYSxFQUNiLGFBQWEsRUFDYixZQUFZLEVBQ1osZUFBZSxFQUNmLGFBQWEsRUFDYixlQUFlLEVBQ2hCLE1BQU0sTUFBTSxDQUFDO0FBRWQsb0NBQW9DO0FBQ3BDLE1BQU0sTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUV2RixNQUFNLE1BQU0sb0JBQW9CLEdBQUc7SUFDakM7UUFDRSxNQUFNLEVBQUUsd0JBQXdCLENBQUM7UUFDakMsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFO1lBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQTtTQUFFLENBQUMsQ0FBQztRQUN2RSxVQUFVLEVBQUUsY0FBYyxDQUFDO0tBQzVCO0lBQ0Q7UUFDRSxNQUFNLEVBQUUsbUJBQW1CLENBQUM7UUFDNUIsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNwQyxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQztLQUN4QztDQUNGLENBQUM7QUFFRixvREFBb0Q7QUFDcEQsTUFBTSxNQUFNLGNBQWMsR0FBRztJQUMzQixJQUFJLEVBQUUsR0FBRyxDQUFDO0lBQ1YsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQ1QsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUNaLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUNiLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUNWLE9BQU8sQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUNkLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUNaLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNmLEtBQUssQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDO0NBQzFCLENBQUM7QUFFRixpREFBaUQ7QUFDakQsTUFBTSxNQUFNLFdBQVcsR0FBRztJQUN4QixJQUFJLEVBQUUsR0FBRyxDQUFDO0lBQ1YsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQ1QsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNqQixHQUFHLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDVixLQUFLLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDWixLQUFLLENBQUMsRUFBRSxHQUFHLENBQUM7Q0FDYixDQUFDO0FBRUYsaURBQWlEO0FBQ2pELE1BQU0sTUFBTSxXQUFXLEdBQUc7SUFDeEIsT0FBTyxDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQ2QsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDO0NBQ2QsQ0FBQztBQUVGLG1FQUFtRTtBQUNuRSxNQUFNLE1BQU0sd0JBQXdCLEdBQUc7SUFDckMsTUFBTSxFQUFFLFdBQVcsQ0FBQztJQUNwQixNQUFNLENBQUMsRUFBRSxXQUFXLENBQUM7SUFDckIsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2YsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDdkIsSUFBSSxFQUFFLE1BQU0sQ0FBQztDQUNkLENBQUM7QUFFRixtRUFBbUU7QUFDbkUsTUFBTSxNQUFNLHFCQUFxQixHQUFHLFlBQVksQ0FDOUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUMsRUFDbEMsS0FBSyxFQUNMLFNBQVMsRUFDVDtJQUFDLEdBQUcsZUFBZTtJQUFFLEdBQUcsb0JBQW9CO0NBQUMsQ0FDOUMsQ0FBQztBQUVGLE1BQU0sTUFBTSx3QkFBd0IsR0FBRyxNQUFNLENBQzNDLGlCQUFpQixDQUFDLFNBQVMsYUFBYSxFQUFFLENBQUMsRUFDM0MsS0FBSyxFQUNMLE9BQU8sRUFDUDtJQUFDLEdBQUcsZUFBZTtJQUFFLEdBQUcsZUFBZTtDQUFDLEVBQ3hDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLGFBQWEsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FDbEcsQ0FBQztBQUVGLDRGQUE0RjtBQUM1RixNQUFNLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDO0FBRXJFLDZFQUE2RTtBQUM3RSxNQUFNLE1BQU0sWUFBWSxDQUFDLElBQUksU0FBUyxHQUFHLElBQUkscUJBQXFCLENBQUMsSUFBSSxFQUFFLHdCQUF3QixDQUFDLENBQUM7QUFFbkcsd0JBQWdCLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxVQUFVLEdBQUcsTUFBTSxJQUFJLHdCQUF3QixDQUV2RiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EACH,OAAO,EACP,KAAK,EACL,MAAM,EACN,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,MAAM,CAAC;AAEd,oCAAoC;AACpC,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAEvF,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAC3C,iBAAiB,CAAC,SAAS,aAAa,EAAE,CAAC,EAC3C,KAAK,EACL,OAAO,EACP;IAAC,GAAG,eAAe;IAAE,GAAG,eAAe;CAAC,EACxC,aAAa,CAAC,iBAAiB,CAAC,SAAS,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAClG,CAAC;AAEF,4FAA4F;AAC5F,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG,wBAAwB,CAAC;AAErE,6EAA6E;AAC7E,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,GAAG,IAAI,qBAAqB,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;AAEnG,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,IAAI,wBAAwB,CAEvF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EACH,OAAO,EACP,KAAK,EACL,MAAM,EACN,iBAAiB,EACjB,qBAAqB,EACrB,GAAG,EACH,aAAa,EACb,aAAa,EACb,YAAY,EACZ,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,MAAM,CAAC;AAEd,oCAAoC;AACpC,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAEvF,MAAM,MAAM,oBAAoB,GAAG;IACjC;QACE,MAAM,EAAE,wBAAwB,CAAC;QACjC,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,EAAE,OAAO,EAAE;YAAE,MAAM,EAAE,YAAY,CAAA;SAAE,CAAC,CAAC;QACvE,UAAU,EAAE,cAAc,CAAC;KAC5B;IACD;QACE,MAAM,EAAE,mBAAmB,CAAC;QAC5B,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC;QACpC,UAAU,EAAE,wBAAwB,EAAE,CAAC;KACxC;CACF,CAAC;AAEF,oDAAoD;AACpD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,GAAG,CAAC;IACV,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;CAC1B,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,GAAG,CAAC;IACV,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,MAAM,CAAC,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,qBAAqB,GAAG,YAAY,CAC9C,iBAAiB,CAAC,aAAa,EAAE,CAAC,EAClC,KAAK,EACL,SAAS,EACT;IAAC,GAAG,eAAe;IAAE,GAAG,oBAAoB;CAAC,CAC9C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAC3C,iBAAiB,CAAC,SAAS,aAAa,EAAE,CAAC,EAC3C,KAAK,EACL,OAAO,EACP;IAAC,GAAG,eAAe;IAAE,GAAG,eAAe;CAAC,EACxC,aAAa,CAAC,iBAAiB,CAAC,SAAS,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAClG,CAAC;AAEF,4FAA4F;AAC5F,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG,wBAAwB,CAAC;AAErE,6EAA6E;AAC7E,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,GAAG,IAAI,qBAAqB,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;AAEnG,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,IAAI,wBAAwB,CAEvF"}
package/package.json CHANGED
@@ -1,14 +1,27 @@
1
1
  {
2
2
  "name": "@aztec/ethereum",
3
- "version": "3.0.0-nightly.20251210",
3
+ "version": "3.0.0-nightly.20251211",
4
4
  "type": "module",
5
5
  "exports": {
6
- ".": "./dest/index.js",
7
- "./test": "./dest/test/index.js",
6
+ "./account": "./dest/account.js",
7
+ "./chain": "./dest/chain.js",
8
+ "./client": "./dest/client.js",
9
+ "./config": "./dest/config.js",
10
+ "./constants": "./dest/constants.js",
8
11
  "./contracts": "./dest/contracts/index.js",
9
12
  "./deploy-l1-contracts": "./dest/deploy_l1_contracts.js",
13
+ "./eth-signer": "./dest/eth-signer/index.js",
14
+ "./forwarder-proxy": "./dest/forwarder_proxy.js",
15
+ "./l1-artifacts": "./dest/l1_artifacts.js",
10
16
  "./l1-contract-addresses": "./dest/l1_contract_addresses.js",
11
- "./l1-tx-utils-with-blobs": "./dest/l1_tx_utils/l1_tx_utils_with_blobs.js",
17
+ "./l1-reader": "./dest/l1_reader.js",
18
+ "./l1-tx-utils": "./dest/l1_tx_utils/index.js",
19
+ "./l1-tx-utils-with-blobs": "./dest/l1_tx_utils/index-blobs.js",
20
+ "./l1-types": "./dest/l1_types.js",
21
+ "./publisher-manager": "./dest/publisher_manager.js",
22
+ "./queries": "./dest/queries.js",
23
+ "./test": "./dest/test/index.js",
24
+ "./types": "./dest/types.js",
12
25
  "./utils": "./dest/utils.js"
13
26
  },
14
27
  "typedocOptions": {
@@ -31,10 +44,10 @@
31
44
  "../package.common.json"
32
45
  ],
33
46
  "dependencies": {
34
- "@aztec/blob-lib": "3.0.0-nightly.20251210",
35
- "@aztec/constants": "3.0.0-nightly.20251210",
36
- "@aztec/foundation": "3.0.0-nightly.20251210",
37
- "@aztec/l1-artifacts": "3.0.0-nightly.20251210",
47
+ "@aztec/blob-lib": "3.0.0-nightly.20251211",
48
+ "@aztec/constants": "3.0.0-nightly.20251211",
49
+ "@aztec/foundation": "3.0.0-nightly.20251211",
50
+ "@aztec/l1-artifacts": "3.0.0-nightly.20251211",
38
51
  "@viem/anvil": "^0.0.10",
39
52
  "dotenv": "^16.0.3",
40
53
  "lodash.chunk": "^4.2.0",
@@ -63,7 +76,7 @@
63
76
  "src",
64
77
  "!*.test.*"
65
78
  ],
66
- "types": "./dest/index.d.ts",
79
+ "types": "./dest/types.d.ts",
67
80
  "jest": {
68
81
  "moduleNameMapper": {
69
82
  "^(\\.{1,2}/.*)\\.[cm]?js$": "$1"
@@ -1,4 +1,6 @@
1
- import { type L1TxRequest, type ViemClient, tryExtractEvent } from '@aztec/ethereum';
1
+ import type { L1TxRequest } from '@aztec/ethereum/l1-tx-utils';
2
+ import type { ViemClient } from '@aztec/ethereum/types';
3
+ import { tryExtractEvent } from '@aztec/ethereum/utils';
2
4
  import { SlotNumber } from '@aztec/foundation/branded-types';
3
5
  import { Buffer32 } from '@aztec/foundation/buffer';
4
6
  import { EthAddress } from '@aztec/foundation/eth-address';
@@ -0,0 +1,108 @@
1
+ /* eslint-disable no-console */
2
+ import { EthAddress } from '@aztec/foundation/eth-address';
3
+ import type { Logger } from '@aztec/foundation/log';
4
+ import { createLogger } from '@aztec/foundation/log';
5
+ import { DateProvider } from '@aztec/foundation/timer';
6
+
7
+ import { type Hex, extractChain } from 'viem';
8
+ import { anvil, mainnet, sepolia } from 'viem/chains';
9
+
10
+ import { L1Deployer } from './deploy_l1_contracts.js';
11
+ import type { ExtendedViemWalletClient } from './types.js';
12
+
13
+ export const FORWARDER_SOLIDITY_SOURCE = `
14
+ contract ForwarderProxy {
15
+ function forward(address target, bytes calldata data) external payable returns (bytes memory) {
16
+ (bool success, bytes memory result) = target.call{value: msg.value}(data);
17
+ require(success, "call failed");
18
+ return result;
19
+ }
20
+ }`;
21
+
22
+ export const FORWARDER_ABI = [
23
+ {
24
+ inputs: [
25
+ {
26
+ internalType: 'address',
27
+ name: 'target',
28
+ type: 'address',
29
+ },
30
+ {
31
+ internalType: 'bytes',
32
+ name: 'data',
33
+ type: 'bytes',
34
+ },
35
+ ],
36
+ name: 'forward',
37
+ outputs: [
38
+ {
39
+ internalType: 'bytes',
40
+ name: '',
41
+ type: 'bytes',
42
+ },
43
+ ],
44
+ stateMutability: 'payable',
45
+ type: 'function',
46
+ },
47
+ ] as const;
48
+
49
+ export const FORWARDER_BYTECODE =
50
+ '0x6080604052348015600e575f5ffd5b506103bf8061001c5f395ff3fe60806040526004361061001d575f3560e01c80636fadcf7214610021575b5f5ffd5b61003b600480360381019061003691906101d0565b610051565b604051610048919061029d565b60405180910390f35b60605f5f8573ffffffffffffffffffffffffffffffffffffffff1634868660405161007d9291906102f9565b5f6040518083038185875af1925050503d805f81146100b7576040519150601f19603f3d011682016040523d82523d5f602084013e6100bc565b606091505b509150915081610101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100f89061036b565b60405180910390fd5b80925050509392505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61013e82610115565b9050919050565b61014e81610134565b8114610158575f5ffd5b50565b5f8135905061016981610145565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126101905761018f61016f565b5b8235905067ffffffffffffffff8111156101ad576101ac610173565b5b6020830191508360018202830111156101c9576101c8610177565b5b9250929050565b5f5f5f604084860312156101e7576101e661010d565b5b5f6101f48682870161015b565b935050602084013567ffffffffffffffff81111561021557610214610111565b5b6102218682870161017b565b92509250509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026f8261022d565b6102798185610237565b9350610289818560208601610247565b61029281610255565b840191505092915050565b5f6020820190508181035f8301526102b58184610265565b905092915050565b5f81905092915050565b828183375f83830152505050565b5f6102e083856102bd565b93506102ed8385846102c7565b82840190509392505050565b5f6103058284866102d5565b91508190509392505050565b5f82825260208201905092915050565b7f63616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f610355600b83610311565b915061036082610321565b602082019050919050565b5f6020820190508181035f83015261038281610349565b905091905056fea26469706673582212209a1c8cf638cf1569450a731ef9457b862f9e153b0a46e5555429bcf4dffd999564736f6c634300081e0033' as Hex;
51
+
52
+ const FORWARDER_ARTIFACT = {
53
+ name: 'Forwarder',
54
+ contractAbi: FORWARDER_ABI,
55
+ contractBytecode: FORWARDER_BYTECODE,
56
+ };
57
+
58
+ /**
59
+ * Deploys the forwarder proxy contract to L1.
60
+ * @param client - The L1 client to use for deployment
61
+ * @param logger - Optional logger
62
+ * @returns The deployed forwarder contract address
63
+ */
64
+ export async function deployForwarderProxy(client: ExtendedViemWalletClient, logger?: Logger): Promise<EthAddress> {
65
+ const log = logger ?? createLogger('ethereum:forwarder');
66
+ const nonce = await client.getTransactionCount({ address: client.account.address });
67
+ const deployer = new L1Deployer(client, nonce, new DateProvider(), false, log, undefined, false);
68
+
69
+ log.info('Deploying forwarder proxy contract');
70
+ const deployment = await deployer.deploy(FORWARDER_ARTIFACT, []);
71
+ log.info(`Forwarder proxy deployed at ${deployment.address.toString()}`);
72
+
73
+ return deployment.address;
74
+ }
75
+
76
+ /**
77
+ * Main function for deploying the forwarder proxy from command line.
78
+ * Usage: node forwarder_proxy.js <private_key> <rpc_url>
79
+ */
80
+ async function main() {
81
+ const args = process.argv.slice(2);
82
+ if (args.length < 3) {
83
+ console.error('Usage: node forwarder_proxy.js <private_key> <rpc_url> <chain_id>');
84
+ process.exit(1);
85
+ }
86
+
87
+ const [privateKey, rpcUrl, chainId] = args;
88
+
89
+ // Dynamic import to avoid pulling in dependencies at module load time
90
+ const { createExtendedL1Client } = await import('./client.js');
91
+
92
+ const client = createExtendedL1Client(
93
+ [rpcUrl],
94
+ privateKey.startsWith('0x') ? privateKey : `0x${privateKey}`,
95
+ extractChain({ chains: [mainnet, sepolia, anvil], id: parseInt(chainId) as any }),
96
+ );
97
+ const address = await deployForwarderProxy(client);
98
+
99
+ console.log(`Forwarder proxy deployed at: ${address.toString()}`);
100
+ }
101
+
102
+ // Only run main if this is the entry point
103
+ if (import.meta.url === `file://${process.argv[1]}`) {
104
+ main().catch(err => {
105
+ console.error('Failed to deploy forwarder proxy:', err);
106
+ process.exit(1);
107
+ });
108
+ }
package/src/l1_reader.ts CHANGED
@@ -6,6 +6,8 @@ import { type L1ContractAddresses, l1ContractAddressesMapping } from './l1_contr
6
6
  export interface L1ReaderConfig {
7
7
  /** List of URLs of Ethereum RPC nodes that services will connect to (comma separated). */
8
8
  l1RpcUrls: string[];
9
+ /** The RPC Url of the ethereum debug host for trace and debug methods. */
10
+ l1DebugRpcUrls: string[];
9
11
  /** The chain ID of the ethereum host. */
10
12
  l1ChainId: number;
11
13
  /** The deployed l1 contract addresses */
@@ -30,6 +32,12 @@ export const l1ReaderConfigMappings: ConfigMappingsType<L1ReaderConfig> = {
30
32
  parseEnv: (val: string) => val.split(',').map(url => url.trim()),
31
33
  defaultValue: [],
32
34
  },
35
+ l1DebugRpcUrls: {
36
+ env: 'ETHEREUM_DEBUG_HOSTS',
37
+ description: 'The RPC Url of the ethereum debug host for trace and debug methods.',
38
+ parseEnv: (val: string) => val.split(',').map(url => url.trim()),
39
+ defaultValue: [],
40
+ },
33
41
  viemPollingIntervalMS: {
34
42
  env: 'L1_READER_VIEM_POLLING_INTERVAL_MS',
35
43
  description: 'The polling interval viem uses in ms',
@@ -0,0 +1,119 @@
1
+ import { EthAddress } from '@aztec/foundation/eth-address';
2
+ import type { Logger } from '@aztec/foundation/log';
3
+ import type { DateProvider } from '@aztec/foundation/timer';
4
+
5
+ import { type Hex, encodeFunctionData } from 'viem';
6
+
7
+ import type { EthSigner } from '../eth-signer/eth-signer.js';
8
+ import { FORWARDER_ABI } from '../forwarder_proxy.js';
9
+ import type { ExtendedViemWalletClient, ViemClient } from '../types.js';
10
+ import type { L1TxUtilsConfig } from './config.js';
11
+ import type { IL1TxMetrics, IL1TxStore } from './interfaces.js';
12
+ import { L1TxUtilsWithBlobs } from './l1_tx_utils_with_blobs.js';
13
+ import { createViemSigner } from './signer.js';
14
+ import type { L1BlobInputs, L1TxConfig, L1TxRequest, SigningCallback } from './types.js';
15
+
16
+ /**
17
+ * Extends L1TxUtilsWithBlobs to wrap all transactions through a forwarder contract.
18
+ * This is mainly used for testing the archiver's ability to decode transactions that go through proxies.
19
+ */
20
+ export class ForwarderL1TxUtils extends L1TxUtilsWithBlobs {
21
+ constructor(
22
+ client: ViemClient | ExtendedViemWalletClient,
23
+ senderAddress: EthAddress,
24
+ signingCallback: SigningCallback,
25
+ logger: Logger | undefined,
26
+ dateProvider: DateProvider | undefined,
27
+ config: Partial<L1TxUtilsConfig>,
28
+ debugMaxGasLimit: boolean,
29
+ store: IL1TxStore | undefined,
30
+ metrics: IL1TxMetrics | undefined,
31
+ private readonly forwarderAddress: EthAddress,
32
+ ) {
33
+ super(client, senderAddress, signingCallback, logger, dateProvider, config, debugMaxGasLimit, store, metrics);
34
+ }
35
+
36
+ /**
37
+ * Wraps the transaction request in a call to the forwarder contract.
38
+ */
39
+ private wrapInForwarder(request: L1TxRequest): L1TxRequest {
40
+ const forwarderCalldata = encodeFunctionData({
41
+ abi: FORWARDER_ABI,
42
+ functionName: 'forward',
43
+ args: [request.to as Hex, request.data as Hex],
44
+ });
45
+
46
+ return {
47
+ to: this.forwarderAddress.toString() as Hex,
48
+ data: forwarderCalldata,
49
+ value: request.value,
50
+ abi: request.abi, // Preserve the original ABI for error decoding
51
+ };
52
+ }
53
+
54
+ /**
55
+ * Override sendAndMonitorTransaction to wrap the request in a forwarder call.
56
+ */
57
+ public override sendAndMonitorTransaction(request: L1TxRequest, gasConfig?: L1TxConfig, blobInputs?: L1BlobInputs) {
58
+ this.logger.debug(`Wrapping transaction to ${request.to} in forwarder at ${this.forwarderAddress.toString()}`);
59
+ const wrappedRequest = this.wrapInForwarder(request);
60
+ return super.sendAndMonitorTransaction(wrappedRequest, gasConfig, blobInputs);
61
+ }
62
+ }
63
+
64
+ export function createForwarderL1TxUtilsFromViemWallet(
65
+ client: ExtendedViemWalletClient,
66
+ forwarderAddress: EthAddress,
67
+ deps: {
68
+ logger?: Logger;
69
+ dateProvider?: DateProvider;
70
+ store?: IL1TxStore;
71
+ metrics?: IL1TxMetrics;
72
+ } = {},
73
+ config: Partial<L1TxUtilsConfig> = {},
74
+ debugMaxGasLimit: boolean = false,
75
+ ) {
76
+ return new ForwarderL1TxUtils(
77
+ client,
78
+ EthAddress.fromString(client.account.address),
79
+ createViemSigner(client),
80
+ deps.logger,
81
+ deps.dateProvider,
82
+ config,
83
+ debugMaxGasLimit,
84
+ deps.store,
85
+ deps.metrics,
86
+ forwarderAddress,
87
+ );
88
+ }
89
+
90
+ export function createForwarderL1TxUtilsFromEthSigner(
91
+ client: ViemClient,
92
+ signer: EthSigner,
93
+ forwarderAddress: EthAddress,
94
+ deps: {
95
+ logger?: Logger;
96
+ dateProvider?: DateProvider;
97
+ store?: IL1TxStore;
98
+ metrics?: IL1TxMetrics;
99
+ } = {},
100
+ config: Partial<L1TxUtilsConfig> = {},
101
+ debugMaxGasLimit: boolean = false,
102
+ ) {
103
+ const callback: SigningCallback = async (transaction, _signingAddress) => {
104
+ return (await signer.signTransaction(transaction)).toViemTransactionSignature();
105
+ };
106
+
107
+ return new ForwarderL1TxUtils(
108
+ client,
109
+ signer.address,
110
+ callback,
111
+ deps.logger,
112
+ deps.dateProvider,
113
+ config,
114
+ debugMaxGasLimit,
115
+ deps.store,
116
+ deps.metrics,
117
+ forwarderAddress,
118
+ );
119
+ }
@@ -0,0 +1,2 @@
1
+ export * from './forwarder_l1_tx_utils.js';
2
+ export * from './l1_tx_utils_with_blobs.js';
@@ -1,4 +1,5 @@
1
- import { InboxContract, type RollupContract } from '@aztec/ethereum/contracts';
1
+ import type { RollupContract } from '@aztec/ethereum/contracts';
2
+ import { InboxContract } from '@aztec/ethereum/contracts';
2
3
  import { CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
3
4
  import { EthAddress } from '@aztec/foundation/eth-address';
4
5
  import { createLogger } from '@aztec/foundation/log';
@@ -1,5 +1,6 @@
1
- import { RollupContract, type ViemPublicClient } from '@aztec/ethereum';
1
+ import { RollupContract } from '@aztec/ethereum/contracts';
2
2
  import type { L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
3
+ import type { ViemPublicClient } from '@aztec/ethereum/types';
3
4
  import { CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
4
5
  import { EthAddress } from '@aztec/foundation/eth-address';
5
6
  import { createLogger } from '@aztec/foundation/log';
package/src/types.ts CHANGED
@@ -5,6 +5,7 @@ import type {
5
5
  Client,
6
6
  FallbackTransport,
7
7
  GetContractReturnType,
8
+ Hex,
8
9
  HttpTransport,
9
10
  PublicActions,
10
11
  PublicClient,
@@ -16,6 +17,67 @@ import type {
16
17
  /** Type for a viem public client */
17
18
  export type ViemPublicClient = PublicClient<FallbackTransport<HttpTransport[]>, Chain>;
18
19
 
20
+ export type PublicRpcDebugSchema = [
21
+ {
22
+ Method: 'debug_traceTransaction';
23
+ Parameters: [txHash: `0x${string}`, options: { tracer: 'callTracer' }];
24
+ ReturnType: DebugCallTrace;
25
+ },
26
+ {
27
+ Method: 'trace_transaction';
28
+ Parameters: [txHash: `0x${string}`];
29
+ ReturnType: TraceTransactionResponse[];
30
+ },
31
+ ];
32
+
33
+ /** Return type for a debug_traceTransaction call */
34
+ export type DebugCallTrace = {
35
+ from: Hex;
36
+ to?: Hex;
37
+ type: string;
38
+ input?: Hex;
39
+ output?: Hex;
40
+ gas?: Hex;
41
+ gasUsed?: Hex;
42
+ value?: Hex;
43
+ error?: string;
44
+ calls?: DebugCallTrace[];
45
+ };
46
+
47
+ /** Action object for a trace_transaction call */
48
+ export type TraceAction = {
49
+ from: Hex;
50
+ to?: Hex;
51
+ callType: string;
52
+ gas?: Hex;
53
+ input?: Hex;
54
+ value?: Hex;
55
+ };
56
+
57
+ /** Result object for a trace_transaction call */
58
+ export type TraceResult = {
59
+ gasUsed?: Hex;
60
+ output?: Hex;
61
+ };
62
+
63
+ /** Return type for a single trace in trace_transaction response */
64
+ export type TraceTransactionResponse = {
65
+ action: TraceAction;
66
+ result?: TraceResult;
67
+ error?: string;
68
+ subtraces: number;
69
+ traceAddress: number[];
70
+ type: string;
71
+ };
72
+
73
+ /** Type for a viem public client with support for debug methods */
74
+ export type ViemPublicDebugClient = PublicClient<
75
+ FallbackTransport<HttpTransport[]>,
76
+ Chain,
77
+ undefined,
78
+ [...PublicRpcSchema, ...PublicRpcDebugSchema]
79
+ >;
80
+
19
81
  export type ExtendedViemWalletClient = Client<
20
82
  FallbackTransport<readonly HttpTransport[]>,
21
83
  Chain,
package/dest/index.d.ts DELETED
@@ -1,18 +0,0 @@
1
- export * from './constants.js';
2
- export * from './deploy_l1_contracts.js';
3
- export * from './chain.js';
4
- export * from './l1_tx_utils/index.js';
5
- export * from './l1_contract_addresses.js';
6
- export * from './l1_reader.js';
7
- export * from './utils.js';
8
- export * from './config.js';
9
- export * from './types.js';
10
- export * from './contracts/index.js';
11
- export * from './queries.js';
12
- export * from './client.js';
13
- export * from './account.js';
14
- export * from './l1_types.js';
15
- export * from './l1_artifacts.js';
16
- export * from './publisher_manager.js';
17
- export * from './eth-signer/index.js';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQyJ9
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
package/dest/index.js DELETED
@@ -1,17 +0,0 @@
1
- export * from './constants.js';
2
- export * from './deploy_l1_contracts.js';
3
- export * from './chain.js';
4
- export * from './l1_tx_utils/index.js';
5
- export * from './l1_contract_addresses.js';
6
- export * from './l1_reader.js';
7
- export * from './utils.js';
8
- export * from './config.js';
9
- export * from './types.js';
10
- export * from './contracts/index.js';
11
- export * from './queries.js';
12
- export * from './client.js';
13
- export * from './account.js';
14
- export * from './l1_types.js';
15
- export * from './l1_artifacts.js';
16
- export * from './publisher_manager.js';
17
- export * from './eth-signer/index.js';
package/src/index.ts DELETED
@@ -1,17 +0,0 @@
1
- export * from './constants.js';
2
- export * from './deploy_l1_contracts.js';
3
- export * from './chain.js';
4
- export * from './l1_tx_utils/index.js';
5
- export * from './l1_contract_addresses.js';
6
- export * from './l1_reader.js';
7
- export * from './utils.js';
8
- export * from './config.js';
9
- export * from './types.js';
10
- export * from './contracts/index.js';
11
- export * from './queries.js';
12
- export * from './client.js';
13
- export * from './account.js';
14
- export * from './l1_types.js';
15
- export * from './l1_artifacts.js';
16
- export * from './publisher_manager.js';
17
- export * from './eth-signer/index.js';