@aztec/aztec 0.0.1-commit.d3ec352c → 0.0.1-commit.f295ac2
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/bin/index.js +5 -2
- package/dest/cli/aztec_start_action.d.ts +1 -1
- package/dest/cli/aztec_start_action.d.ts.map +1 -1
- package/dest/cli/aztec_start_action.js +6 -5
- package/dest/cli/aztec_start_options.d.ts +1 -1
- package/dest/cli/aztec_start_options.d.ts.map +1 -1
- package/dest/cli/aztec_start_options.js +12 -25
- package/dest/cli/cli.d.ts +1 -1
- package/dest/cli/cli.d.ts.map +1 -1
- package/dest/cli/cli.js +5 -37
- package/dest/cli/cmds/migrate_ha_db.d.ts +3 -0
- package/dest/cli/cmds/migrate_ha_db.d.ts.map +1 -0
- package/dest/cli/cmds/migrate_ha_db.js +27 -0
- package/dest/cli/cmds/start_archiver.d.ts +1 -1
- package/dest/cli/cmds/start_archiver.d.ts.map +1 -1
- package/dest/cli/cmds/start_archiver.js +11 -13
- package/dest/cli/cmds/start_bot.js +1 -1
- package/dest/cli/cmds/start_node.js +2 -2
- package/dest/cli/cmds/start_p2p_bootstrap.js +1 -1
- package/dest/cli/cmds/start_prover_agent.d.ts +1 -1
- package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -1
- package/dest/cli/cmds/start_prover_agent.js +2 -2
- package/dest/cli/cmds/start_prover_broker.js +2 -2
- package/dest/cli/cmds/start_prover_node.js +2 -2
- package/dest/cli/util.d.ts +5 -5
- package/dest/cli/util.d.ts.map +1 -1
- package/dest/cli/util.js +3 -3
- package/dest/examples/util.d.ts +2 -2
- package/dest/examples/util.d.ts.map +1 -1
- package/dest/local-network/banana_fpc.js +1 -1
- package/dest/local-network/local-network.d.ts +10 -12
- package/dest/local-network/local-network.d.ts.map +1 -1
- package/dest/local-network/local-network.js +35 -23
- package/dest/testing/anvil_test_watcher.d.ts +2 -2
- package/dest/testing/anvil_test_watcher.d.ts.map +1 -1
- package/dest/testing/cheat_codes.d.ts +3 -1
- package/dest/testing/cheat_codes.d.ts.map +1 -1
- package/dest/testing/epoch_test_settler.d.ts +17 -0
- package/dest/testing/epoch_test_settler.d.ts.map +1 -0
- package/dest/testing/epoch_test_settler.js +52 -0
- package/dest/testing/index.d.ts +2 -1
- package/dest/testing/index.d.ts.map +1 -1
- package/dest/testing/index.js +1 -0
- package/package.json +35 -33
- package/scripts/aztec.sh +13 -6
- package/src/bin/index.ts +6 -2
- package/src/cli/aztec_start_action.ts +5 -4
- package/src/cli/aztec_start_options.ts +12 -26
- package/src/cli/cli.ts +5 -37
- package/src/cli/cmds/migrate_ha_db.ts +43 -0
- package/src/cli/cmds/start_archiver.ts +7 -18
- package/src/cli/cmds/start_bot.ts +1 -1
- package/src/cli/cmds/start_node.ts +2 -2
- package/src/cli/cmds/start_p2p_bootstrap.ts +1 -1
- package/src/cli/cmds/start_prover_agent.ts +2 -10
- package/src/cli/cmds/start_prover_broker.ts +2 -2
- package/src/cli/cmds/start_prover_node.ts +2 -2
- package/src/cli/util.ts +7 -7
- package/src/examples/util.ts +1 -1
- package/src/local-network/banana_fpc.ts +1 -1
- package/src/local-network/local-network.ts +63 -67
- package/src/testing/anvil_test_watcher.ts +1 -1
- package/src/testing/epoch_test_settler.ts +59 -0
- package/src/testing/index.ts +1 -0
- package/dest/cli/cmds/start_blob_sink.d.ts +0 -3
- package/dest/cli/cmds/start_blob_sink.d.ts.map +0 -1
- package/dest/cli/cmds/start_blob_sink.js +0 -33
- package/src/cli/cmds/start_blob_sink.ts +0 -57
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-network.d.ts","sourceRoot":"","sources":["../../src/local-network/local-network.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"local-network.d.ts","sourceRoot":"","sources":["../../src/local-network/local-network.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAE5C,OAAO,EAAE,KAAK,mBAAmB,EAAoB,MAAM,2BAA2B,CAAC;AASvF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAoB,MAAM,yBAAyB,CAAC;AAGzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,KAAK,GAAG,EAA2D,MAAM,MAAM,CAAC;AAezF;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,GAAG,EACf,IAAI,GAAE;IACJ,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,kBAAkB,CAAC,EAAE,EAAE,CAAC;IACxB,4BAA4B,CAAC,EAAE,MAAM,CAAC;CAClC;;;;;;;;;;;;;;;;;;;;;;;GAoBP;AAED,8BAA8B;AAC9B,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG;IACjD,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,yCAAkC,EAAE,OAAO,EAAE,KAAK;;;GA8HhG;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,eAAe,CAAC;IAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAAC,YAAY,CAAC,EAAE,YAAY,CAAA;CAAO,EACzG,OAAO,GAAE;IAAE,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAAO,6BAW7D"}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env -S node --no-warnings
|
|
2
2
|
import { getInitialTestAccountsData } from '@aztec/accounts/testing';
|
|
3
|
-
import { AztecNodeService
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { AztecNodeService } from '@aztec/aztec-node';
|
|
4
|
+
import { getConfigEnvVars } from '@aztec/aztec-node/config';
|
|
5
|
+
import { Fr } from '@aztec/aztec.js/fields';
|
|
6
|
+
import { createLogger } from '@aztec/aztec.js/log';
|
|
7
|
+
import { createBlobClient } from '@aztec/blob-client/client';
|
|
6
8
|
import { GENESIS_ARCHIVE_ROOT } from '@aztec/constants';
|
|
7
|
-
import {
|
|
9
|
+
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
10
|
+
import { waitForPublicClient } from '@aztec/ethereum/client';
|
|
11
|
+
import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
|
|
12
|
+
import { NULL_KEY } from '@aztec/ethereum/constants';
|
|
13
|
+
import { deployAztecL1Contracts } from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
8
14
|
import { EthCheatCodes } from '@aztec/ethereum/test';
|
|
9
15
|
import { SecretValue } from '@aztec/foundation/config';
|
|
10
|
-
import {
|
|
11
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
16
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
12
17
|
import { TestDateProvider } from '@aztec/foundation/timer';
|
|
13
18
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
14
19
|
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
@@ -21,6 +26,7 @@ import { foundry } from 'viem/chains';
|
|
|
21
26
|
import { createAccountLogs } from '../cli/util.js';
|
|
22
27
|
import { DefaultMnemonic } from '../mnemonic.js';
|
|
23
28
|
import { AnvilTestWatcher } from '../testing/anvil_test_watcher.js';
|
|
29
|
+
import { EpochTestSettler } from '../testing/epoch_test_settler.js';
|
|
24
30
|
import { getBananaFPCAddress, setupBananaFPC } from './banana_fpc.js';
|
|
25
31
|
import { getSponsoredFPCAddress } from './sponsored_fpc.js';
|
|
26
32
|
const logger = createLogger('local-network');
|
|
@@ -29,24 +35,19 @@ const localAnvil = foundry;
|
|
|
29
35
|
* Function to deploy our L1 contracts to the local network L1
|
|
30
36
|
* @param aztecNodeConfig - The Aztec Node Config
|
|
31
37
|
* @param hdAccount - Account for publishing L1 contracts
|
|
32
|
-
*/ export async function deployContractsToL1(aztecNodeConfig,
|
|
33
|
-
const chain = aztecNodeConfig.l1RpcUrls.length > 0 ? createEthereumChain(aztecNodeConfig.l1RpcUrls, aztecNodeConfig.l1ChainId) : {
|
|
34
|
-
chainInfo: localAnvil
|
|
35
|
-
};
|
|
38
|
+
*/ export async function deployContractsToL1(aztecNodeConfig, privateKey, opts = {}) {
|
|
36
39
|
await waitForPublicClient(aztecNodeConfig);
|
|
37
|
-
const l1Contracts = await
|
|
40
|
+
const l1Contracts = await deployAztecL1Contracts(aztecNodeConfig.l1RpcUrls[0], privateKey, foundry.id, {
|
|
38
41
|
...getL1ContractsConfigEnvVars(),
|
|
39
42
|
...aztecNodeConfig,
|
|
40
43
|
vkTreeRoot: getVKTreeRoot(),
|
|
41
44
|
protocolContractsHash,
|
|
42
45
|
genesisArchiveRoot: opts.genesisArchiveRoot ?? new Fr(GENESIS_ARCHIVE_ROOT),
|
|
43
|
-
salt: opts.salt,
|
|
44
46
|
feeJuicePortalInitialBalance: opts.feeJuicePortalInitialBalance,
|
|
45
47
|
aztecTargetCommitteeSize: 0,
|
|
46
48
|
slasherFlavor: 'none',
|
|
47
49
|
realVerifier: false
|
|
48
50
|
});
|
|
49
|
-
await deployMulticall3(l1Contracts.l1Client, logger);
|
|
50
51
|
aztecNodeConfig.l1Contracts = l1Contracts.l1ContractAddresses;
|
|
51
52
|
aztecNodeConfig.rollupVersion = l1Contracts.rollupVersion;
|
|
52
53
|
return aztecNodeConfig.l1Contracts;
|
|
@@ -101,15 +102,16 @@ const localAnvil = foundry;
|
|
|
101
102
|
sponsoredFPC
|
|
102
103
|
] : [];
|
|
103
104
|
const { genesisArchiveRoot, prefilledPublicData, fundingNeeded } = await getGenesisValues(fundedAddresses);
|
|
104
|
-
let watcher = undefined;
|
|
105
105
|
const dateProvider = new TestDateProvider();
|
|
106
|
+
let cheatcodes;
|
|
107
|
+
let rollupAddress;
|
|
108
|
+
let watcher;
|
|
106
109
|
if (!aztecNodeConfig.p2pEnabled) {
|
|
107
|
-
|
|
110
|
+
({ rollupAddress } = await deployContractsToL1(aztecNodeConfig, aztecNodeConfig.validatorPrivateKeys.getValue()[0], {
|
|
108
111
|
assumeProvenThroughBlockNumber: Number.MAX_SAFE_INTEGER,
|
|
109
112
|
genesisArchiveRoot,
|
|
110
|
-
salt: config.deployAztecContractsSalt ? parseInt(config.deployAztecContractsSalt) : undefined,
|
|
111
113
|
feeJuicePortalInitialBalance: fundingNeeded
|
|
112
|
-
});
|
|
114
|
+
}));
|
|
113
115
|
const chain = aztecNodeConfig.l1RpcUrls.length > 0 ? createEthereumChain([
|
|
114
116
|
l1RpcUrl
|
|
115
117
|
], aztecNodeConfig.l1ChainId) : {
|
|
@@ -121,22 +123,31 @@ const localAnvil = foundry;
|
|
|
121
123
|
httpViemTransport(l1RpcUrl)
|
|
122
124
|
])
|
|
123
125
|
});
|
|
124
|
-
|
|
126
|
+
cheatcodes = new EthCheatCodes([
|
|
125
127
|
l1RpcUrl
|
|
126
|
-
], dateProvider)
|
|
128
|
+
], dateProvider);
|
|
129
|
+
watcher = new AnvilTestWatcher(cheatcodes, rollupAddress, publicClient, dateProvider);
|
|
127
130
|
watcher.setisLocalNetwork(true);
|
|
131
|
+
watcher.setIsMarkingAsProven(false); // Do not mark as proven in the watcher. It's marked in the epochTestSettler after the out hash is set.
|
|
128
132
|
await watcher.start();
|
|
129
133
|
}
|
|
130
|
-
const telemetry = initTelemetryClient(getTelemetryClientConfig());
|
|
131
|
-
// Create a local blob
|
|
132
|
-
const
|
|
134
|
+
const telemetry = await initTelemetryClient(getTelemetryClientConfig());
|
|
135
|
+
// Create a local blob client client inside the local network, no http connectivity
|
|
136
|
+
const blobClient = createBlobClient();
|
|
133
137
|
const node = await createAztecNode(aztecNodeConfig, {
|
|
134
138
|
telemetry,
|
|
135
|
-
|
|
139
|
+
blobClient,
|
|
136
140
|
dateProvider
|
|
137
141
|
}, {
|
|
138
142
|
prefilledPublicData
|
|
139
143
|
});
|
|
144
|
+
let epochTestSettler;
|
|
145
|
+
if (!aztecNodeConfig.p2pEnabled) {
|
|
146
|
+
epochTestSettler = new EpochTestSettler(cheatcodes, rollupAddress, node.getBlockSource(), {
|
|
147
|
+
pollingIntervalMs: 200
|
|
148
|
+
});
|
|
149
|
+
await epochTestSettler.start();
|
|
150
|
+
}
|
|
140
151
|
if (initialAccounts.length) {
|
|
141
152
|
const PXEConfig = {
|
|
142
153
|
proverEnabled: aztecNodeConfig.realProofs
|
|
@@ -158,6 +169,7 @@ const localAnvil = foundry;
|
|
|
158
169
|
const stop = async ()=>{
|
|
159
170
|
await node.stop();
|
|
160
171
|
await watcher?.stop();
|
|
172
|
+
await epochTestSettler?.stop();
|
|
161
173
|
};
|
|
162
174
|
return {
|
|
163
175
|
node,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ViemClient } from '@aztec/ethereum';
|
|
2
1
|
import { EthCheatCodes } from '@aztec/ethereum/test';
|
|
2
|
+
import type { ViemClient } from '@aztec/ethereum/types';
|
|
3
3
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import type { TestDateProvider } from '@aztec/foundation/timer';
|
|
5
5
|
/**
|
|
@@ -31,4 +31,4 @@ export declare class AnvilTestWatcher {
|
|
|
31
31
|
syncDateProviderToL1IfBehind(): Promise<void>;
|
|
32
32
|
warpTimeIfNeeded(): Promise<void>;
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW52aWxfdGVzdF93YXRjaGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGluZy9hbnZpbF90ZXN0X3dhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBb0IsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUdoRSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBS2hFOzs7Ozs7R0FNRztBQUNILHFCQUFhLGdCQUFnQjtJQWdCekIsT0FBTyxDQUFDLFVBQVU7SUFHbEIsT0FBTyxDQUFDLFlBQVksQ0FBQztJQWxCdkIsT0FBTyxDQUFDLGNBQWMsQ0FBa0I7SUFFeEMsT0FBTyxDQUFDLE1BQU0sQ0FBc0Q7SUFDcEUsT0FBTyxDQUFDLGdCQUFnQixDQUFtQjtJQUMzQyxPQUFPLENBQUMsY0FBYyxDQUFVO0lBRWhDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFpQjtJQUM5QyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBaUI7SUFDakQsT0FBTyxDQUFDLDZCQUE2QixDQUFDLENBQWlCO0lBRXZELE9BQU8sQ0FBQyxNQUFNLENBQWlEO0lBRS9ELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBUTtJQUVqQyxZQUNVLFVBQVUsRUFBRSxhQUFhLEVBQ2pDLGFBQWEsRUFBRSxVQUFVLEVBQ3pCLFFBQVEsRUFBRSxVQUFVLEVBQ1osWUFBWSxDQUFDLDhCQUFrQixFQWF4QztJQUVELG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLE9BQU8sUUFHOUM7SUFFRCxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsT0FBTyxRQUV4QztJQUVLLEtBQUssa0JBeUJWO0lBRUssSUFBSSxrQkFJVDtJQUVLLE9BQU8sa0JBSVo7SUFFSyxZQUFZLGtCQUtqQjtJQUVLLDRCQUE0QixrQkFlakM7SUFFSyxnQkFBZ0Isa0JBd0NyQjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anvil_test_watcher.d.ts","sourceRoot":"","sources":["../../src/testing/anvil_test_watcher.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"anvil_test_watcher.d.ts","sourceRoot":"","sources":["../../src/testing/anvil_test_watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKhE;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAgBzB,OAAO,CAAC,UAAU;IAGlB,OAAO,CAAC,YAAY,CAAC;IAlBvB,OAAO,CAAC,cAAc,CAAkB;IAExC,OAAO,CAAC,MAAM,CAAsD;IACpE,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,cAAc,CAAU;IAEhC,OAAO,CAAC,oBAAoB,CAAC,CAAiB;IAC9C,OAAO,CAAC,uBAAuB,CAAC,CAAiB;IACjD,OAAO,CAAC,6BAA6B,CAAC,CAAiB;IAEvD,OAAO,CAAC,MAAM,CAAiD;IAE/D,OAAO,CAAC,iBAAiB,CAAQ;IAEjC,YACU,UAAU,EAAE,aAAa,EACjC,aAAa,EAAE,UAAU,EACzB,QAAQ,EAAE,UAAU,EACZ,YAAY,CAAC,8BAAkB,EAaxC;IAED,oBAAoB,CAAC,iBAAiB,EAAE,OAAO,QAG9C;IAED,iBAAiB,CAAC,cAAc,EAAE,OAAO,QAExC;IAEK,KAAK,kBAyBV;IAEK,IAAI,kBAIT;IAEK,OAAO,kBAIZ;IAEK,YAAY,kBAKjB;IAEK,4BAA4B,kBAejC;IAEK,gBAAgB,kBAwCrB;CACF"}
|
|
@@ -9,7 +9,9 @@ import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
|
9
9
|
* codes, please consider whether it makes sense to just introduce new utils in your tests instead.
|
|
10
10
|
*/
|
|
11
11
|
export declare class CheatCodes {
|
|
12
|
+
/** Cheat codes for L1.*/
|
|
12
13
|
eth: EthCheatCodes;
|
|
14
|
+
/** Cheat codes for the Aztec Rollup contract on L1. */
|
|
13
15
|
rollup: RollupCheatCodes;
|
|
14
16
|
constructor(
|
|
15
17
|
/** Cheat codes for L1.*/
|
|
@@ -38,4 +40,4 @@ export declare class CheatCodes {
|
|
|
38
40
|
*/
|
|
39
41
|
warpL2TimeAtLeastBy(sequencerClient: SequencerClient, node: AztecNode, duration: bigint | number): Promise<void>;
|
|
40
42
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlYXRfY29kZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0aW5nL2NoZWF0X2NvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd2RSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRTs7Ozs7R0FLRztBQUNILHFCQUFhLFVBQVU7SUFFbkIseUJBQXlCO0lBQ2xCLEdBQUcsRUFBRSxhQUFhO0lBQ3pCLHVEQUF1RDtJQUNoRCxNQUFNLEVBQUUsZ0JBQWdCO0lBSmpDO0lBQ0UseUJBQXlCO0lBQ2xCLEdBQUcsRUFBRSxhQUFhO0lBQ3pCLHVEQUF1RDtJQUNoRCxNQUFNLEVBQUUsZ0JBQWdCLEVBQzdCO0lBRUosT0FBYSxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBT3ZHO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDRyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sR0FBRyxNQUFNLGlCQXVCNUc7SUFFRDs7Ozs7Ozs7T0FRRztJQUNHLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLE1BQU0saUJBSXJHO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cheat_codes.d.ts","sourceRoot":"","sources":["../../src/testing/cheat_codes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE;;;;;GAKG;AACH,qBAAa,UAAU;
|
|
1
|
+
{"version":3,"file":"cheat_codes.d.ts","sourceRoot":"","sources":["../../src/testing/cheat_codes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE;;;;;GAKG;AACH,qBAAa,UAAU;IAEnB,yBAAyB;IAClB,GAAG,EAAE,aAAa;IACzB,uDAAuD;IAChD,MAAM,EAAE,gBAAgB;IAJjC;IACE,yBAAyB;IAClB,GAAG,EAAE,aAAa;IACzB,uDAAuD;IAChD,MAAM,EAAE,gBAAgB,EAC7B;IAEJ,OAAa,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAOvG;IAED;;;;;;;;OAQG;IACG,mBAAmB,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,iBAuB5G;IAED;;;;;;;;OAQG;IACG,mBAAmB,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,iBAIrG;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type EthCheatCodes } from '@aztec/ethereum/test';
|
|
2
|
+
import { type EpochNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import type { EthAddress, L2BlockSource } from '@aztec/stdlib/block';
|
|
4
|
+
export declare class EpochTestSettler {
|
|
5
|
+
private l2BlockSource;
|
|
6
|
+
private options;
|
|
7
|
+
private rollupCheatCodes;
|
|
8
|
+
private epochMonitor?;
|
|
9
|
+
constructor(cheatcodes: EthCheatCodes, rollupAddress: EthAddress, l2BlockSource: L2BlockSource, options: {
|
|
10
|
+
pollingIntervalMs: number;
|
|
11
|
+
provingDelayMs?: number;
|
|
12
|
+
});
|
|
13
|
+
start(): Promise<void>;
|
|
14
|
+
stop(): Promise<void>;
|
|
15
|
+
handleEpochReadyToProve(epoch: EpochNumber): Promise<boolean>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2hfdGVzdF9zZXR0bGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGluZy9lcG9jaF90ZXN0X3NldHRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssYUFBYSxFQUFvQixNQUFNLHNCQUFzQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBYyxNQUFNLGlDQUFpQyxDQUFDO0FBRS9FLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdyRSxxQkFBYSxnQkFBZ0I7SUFPekIsT0FBTyxDQUFDLGFBQWE7SUFDckIsT0FBTyxDQUFDLE9BQU87SUFQakIsT0FBTyxDQUFDLGdCQUFnQixDQUFtQjtJQUMzQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQWU7SUFFcEMsWUFDRSxVQUFVLEVBQUUsYUFBYSxFQUN6QixhQUFhLEVBQUUsVUFBVSxFQUNqQixhQUFhLEVBQUUsYUFBYSxFQUM1QixPQUFPLEVBQUU7UUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUM7UUFBQyxjQUFjLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxFQUd4RTtJQUVLLEtBQUssa0JBSVY7SUFFSyxJQUFJLGtCQUVUO0lBRUssdUJBQXVCLENBQUMsS0FBSyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBMkJsRTtDQUNGIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"epoch_test_settler.d.ts","sourceRoot":"","sources":["../../src/testing/epoch_test_settler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAoB,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,iCAAiC,CAAC;AAE/E,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGrE,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,OAAO;IAPjB,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,YAAY,CAAC,CAAe;IAEpC,YACE,UAAU,EAAE,aAAa,EACzB,aAAa,EAAE,UAAU,EACjB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,EAGxE;IAEK,KAAK,kBAIV;IAEK,IAAI,kBAET;IAEK,uBAAuB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BlE;CACF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { RollupCheatCodes } from '@aztec/ethereum/test';
|
|
2
|
+
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { EpochMonitor } from '@aztec/prover-node';
|
|
4
|
+
import { computeL2ToL1MembershipWitnessFromMessagesInEpoch } from '@aztec/stdlib/messaging';
|
|
5
|
+
export class EpochTestSettler {
|
|
6
|
+
l2BlockSource;
|
|
7
|
+
options;
|
|
8
|
+
rollupCheatCodes;
|
|
9
|
+
epochMonitor;
|
|
10
|
+
constructor(cheatcodes, rollupAddress, l2BlockSource, options){
|
|
11
|
+
this.l2BlockSource = l2BlockSource;
|
|
12
|
+
this.options = options;
|
|
13
|
+
this.rollupCheatCodes = new RollupCheatCodes(cheatcodes, {
|
|
14
|
+
rollupAddress
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
async start() {
|
|
18
|
+
const { epochDuration } = await this.rollupCheatCodes.getConfig();
|
|
19
|
+
this.epochMonitor = new EpochMonitor(this.l2BlockSource, {
|
|
20
|
+
epochDuration: Number(epochDuration)
|
|
21
|
+
}, this.options);
|
|
22
|
+
this.epochMonitor.start(this);
|
|
23
|
+
}
|
|
24
|
+
async stop() {
|
|
25
|
+
await this.epochMonitor?.stop();
|
|
26
|
+
}
|
|
27
|
+
async handleEpochReadyToProve(epoch) {
|
|
28
|
+
const blocks = await this.l2BlockSource.getBlocksForEpoch(epoch);
|
|
29
|
+
const messagesInEpoch = [];
|
|
30
|
+
let previousSlotNumber = SlotNumber.ZERO;
|
|
31
|
+
let checkpointIndex = -1;
|
|
32
|
+
for (const block of blocks){
|
|
33
|
+
const slotNumber = block.header.globalVariables.slotNumber;
|
|
34
|
+
if (slotNumber !== previousSlotNumber) {
|
|
35
|
+
checkpointIndex++;
|
|
36
|
+
messagesInEpoch[checkpointIndex] = [];
|
|
37
|
+
previousSlotNumber = slotNumber;
|
|
38
|
+
}
|
|
39
|
+
messagesInEpoch[checkpointIndex].push(block.body.txEffects.map((txEffect)=>txEffect.l2ToL1Msgs));
|
|
40
|
+
}
|
|
41
|
+
const [firstMessage] = messagesInEpoch.flat(3);
|
|
42
|
+
if (firstMessage) {
|
|
43
|
+
const { root: outHash } = computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoch, firstMessage);
|
|
44
|
+
await this.rollupCheatCodes.insertOutbox(epoch, outHash.toBigInt());
|
|
45
|
+
}
|
|
46
|
+
// Mark the blocks as proven.
|
|
47
|
+
for (const block of blocks){
|
|
48
|
+
await this.rollupCheatCodes.markAsProven(block.number);
|
|
49
|
+
}
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
}
|
package/dest/testing/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { AnvilTestWatcher } from './anvil_test_watcher.js';
|
|
2
2
|
export { EthCheatCodes, RollupCheatCodes } from '@aztec/ethereum/test';
|
|
3
3
|
export { CheatCodes } from './cheat_codes.js';
|
|
4
|
-
|
|
4
|
+
export { EpochTestSettler } from './epoch_test_settler.js';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0aW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dest/testing/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/aztec",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.f295ac2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -28,37 +28,39 @@
|
|
|
28
28
|
"../package.common.json"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@aztec/accounts": "0.0.1-commit.
|
|
32
|
-
"@aztec/archiver": "0.0.1-commit.
|
|
33
|
-
"@aztec/aztec-faucet": "0.0.1-commit.
|
|
34
|
-
"@aztec/aztec-node": "0.0.1-commit.
|
|
35
|
-
"@aztec/aztec.js": "0.0.1-commit.
|
|
36
|
-
"@aztec/bb-prover": "0.0.1-commit.
|
|
37
|
-
"@aztec/bb.js": "0.0.1-commit.
|
|
38
|
-
"@aztec/blob-
|
|
39
|
-
"@aztec/bot": "0.0.1-commit.
|
|
40
|
-
"@aztec/builder": "0.0.1-commit.
|
|
41
|
-
"@aztec/cli": "0.0.1-commit.
|
|
42
|
-
"@aztec/constants": "0.0.1-commit.
|
|
43
|
-
"@aztec/entrypoints": "0.0.1-commit.
|
|
44
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
45
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
46
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
47
|
-
"@aztec/l1-artifacts": "0.0.1-commit.
|
|
48
|
-
"@aztec/node-lib": "0.0.1-commit.
|
|
49
|
-
"@aztec/noir-contracts.js": "0.0.1-commit.
|
|
50
|
-
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.
|
|
51
|
-
"@aztec/p2p": "0.0.1-commit.
|
|
52
|
-
"@aztec/p2p-bootstrap": "0.0.1-commit.
|
|
53
|
-
"@aztec/protocol-contracts": "0.0.1-commit.
|
|
54
|
-
"@aztec/prover-client": "0.0.1-commit.
|
|
55
|
-
"@aztec/prover-node": "0.0.1-commit.
|
|
56
|
-
"@aztec/pxe": "0.0.1-commit.
|
|
57
|
-
"@aztec/
|
|
58
|
-
"@aztec/
|
|
59
|
-
"@aztec/
|
|
60
|
-
"@aztec/
|
|
61
|
-
"@aztec/
|
|
31
|
+
"@aztec/accounts": "0.0.1-commit.f295ac2",
|
|
32
|
+
"@aztec/archiver": "0.0.1-commit.f295ac2",
|
|
33
|
+
"@aztec/aztec-faucet": "0.0.1-commit.f295ac2",
|
|
34
|
+
"@aztec/aztec-node": "0.0.1-commit.f295ac2",
|
|
35
|
+
"@aztec/aztec.js": "0.0.1-commit.f295ac2",
|
|
36
|
+
"@aztec/bb-prover": "0.0.1-commit.f295ac2",
|
|
37
|
+
"@aztec/bb.js": "0.0.1-commit.f295ac2",
|
|
38
|
+
"@aztec/blob-client": "0.0.1-commit.f295ac2",
|
|
39
|
+
"@aztec/bot": "0.0.1-commit.f295ac2",
|
|
40
|
+
"@aztec/builder": "0.0.1-commit.f295ac2",
|
|
41
|
+
"@aztec/cli": "0.0.1-commit.f295ac2",
|
|
42
|
+
"@aztec/constants": "0.0.1-commit.f295ac2",
|
|
43
|
+
"@aztec/entrypoints": "0.0.1-commit.f295ac2",
|
|
44
|
+
"@aztec/ethereum": "0.0.1-commit.f295ac2",
|
|
45
|
+
"@aztec/foundation": "0.0.1-commit.f295ac2",
|
|
46
|
+
"@aztec/kv-store": "0.0.1-commit.f295ac2",
|
|
47
|
+
"@aztec/l1-artifacts": "0.0.1-commit.f295ac2",
|
|
48
|
+
"@aztec/node-lib": "0.0.1-commit.f295ac2",
|
|
49
|
+
"@aztec/noir-contracts.js": "0.0.1-commit.f295ac2",
|
|
50
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.f295ac2",
|
|
51
|
+
"@aztec/p2p": "0.0.1-commit.f295ac2",
|
|
52
|
+
"@aztec/p2p-bootstrap": "0.0.1-commit.f295ac2",
|
|
53
|
+
"@aztec/protocol-contracts": "0.0.1-commit.f295ac2",
|
|
54
|
+
"@aztec/prover-client": "0.0.1-commit.f295ac2",
|
|
55
|
+
"@aztec/prover-node": "0.0.1-commit.f295ac2",
|
|
56
|
+
"@aztec/pxe": "0.0.1-commit.f295ac2",
|
|
57
|
+
"@aztec/sequencer-client": "0.0.1-commit.f295ac2",
|
|
58
|
+
"@aztec/stdlib": "0.0.1-commit.f295ac2",
|
|
59
|
+
"@aztec/telemetry-client": "0.0.1-commit.f295ac2",
|
|
60
|
+
"@aztec/test-wallet": "0.0.1-commit.f295ac2",
|
|
61
|
+
"@aztec/txe": "0.0.1-commit.f295ac2",
|
|
62
|
+
"@aztec/validator-ha-signer": "0.0.1-commit.f295ac2",
|
|
63
|
+
"@aztec/world-state": "0.0.1-commit.f295ac2",
|
|
62
64
|
"@types/chalk": "^2.2.0",
|
|
63
65
|
"abitype": "^0.8.11",
|
|
64
66
|
"chalk": "^5.3.0",
|
|
@@ -78,7 +80,7 @@
|
|
|
78
80
|
"@jest/globals": "^30.0.0",
|
|
79
81
|
"@types/jest": "^30.0.0",
|
|
80
82
|
"@types/koa": "^2.15.0",
|
|
81
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
83
|
+
"@typescript/native-preview": "7.0.0-dev.20260113.1",
|
|
82
84
|
"jest": "^30.0.0",
|
|
83
85
|
"ts-node": "^10.9.1",
|
|
84
86
|
"typescript": "^5.3.3"
|
package/scripts/aztec.sh
CHANGED
|
@@ -1,20 +1,27 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
set -euo pipefail
|
|
3
|
+
shopt -s inherit_errexit
|
|
4
|
+
|
|
5
|
+
# Re-execute using correct version if we have an .aztecrc file.
|
|
6
|
+
if [ "${AZTEC_VERSIONED:-0}" -eq 0 ] && [ -f .aztecrc ] && command -v aztec-up &>/dev/null; then
|
|
7
|
+
env_setup=$(aztec-up env)
|
|
8
|
+
eval "$env_setup"
|
|
9
|
+
AZTEC_VERSIONED=1 exec aztec "$@"
|
|
10
|
+
fi
|
|
11
|
+
|
|
12
|
+
cmd=${1:-}
|
|
13
|
+
[ -n "$cmd" ] && shift
|
|
3
14
|
|
|
4
15
|
script_dir="$(dirname "$(realpath "$0")")"
|
|
5
16
|
|
|
6
17
|
function aztec {
|
|
18
|
+
export AZTEC_SHELL_WRAPPER=1
|
|
7
19
|
exec node --no-warnings $script_dir/../dest/bin/index.js "$@"
|
|
8
20
|
}
|
|
9
21
|
|
|
10
|
-
cmd=${1:-}
|
|
11
|
-
[ -n "$cmd" ] && shift
|
|
12
|
-
|
|
13
|
-
export AZTEC_SHELL_WRAPPER=1
|
|
14
|
-
|
|
15
22
|
case $cmd in
|
|
16
23
|
test)
|
|
17
|
-
export LOG_LEVEL="${LOG_LEVEL:-
|
|
24
|
+
export LOG_LEVEL="${LOG_LEVEL:-error}"
|
|
18
25
|
aztec start --txe --port 8081 &
|
|
19
26
|
server_pid=$!
|
|
20
27
|
trap 'kill $server_pid &>/dev/null || true' EXIT
|
package/src/bin/index.ts
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
//
|
|
3
3
|
import { injectCommands as injectBuilderCommands } from '@aztec/builder';
|
|
4
4
|
import { injectCommands as injectAztecNodeCommands } from '@aztec/cli/aztec_node';
|
|
5
|
-
import { enrichEnvironmentWithChainName
|
|
5
|
+
import { enrichEnvironmentWithChainName } from '@aztec/cli/config/chain';
|
|
6
|
+
import { enrichEnvironmentWithNetworkConfig } from '@aztec/cli/config/network';
|
|
6
7
|
import { injectCommands as injectContractCommands } from '@aztec/cli/contracts';
|
|
7
8
|
import { injectCommands as injectInfrastructureCommands } from '@aztec/cli/infrastructure';
|
|
8
9
|
import { injectCommands as injectL1Commands } from '@aztec/cli/l1';
|
|
@@ -13,10 +14,12 @@ import { createConsoleLogger, createLogger } from '@aztec/foundation/log';
|
|
|
13
14
|
|
|
14
15
|
import { Command } from 'commander';
|
|
15
16
|
|
|
16
|
-
import {
|
|
17
|
+
import { injectMigrateCommand } from '../cli/cmds/migrate_ha_db.js';
|
|
17
18
|
import { injectAztecCommands } from '../cli/index.js';
|
|
18
19
|
import { getCliVersion } from '../cli/release_version.js';
|
|
19
20
|
|
|
21
|
+
const NETWORK_FLAG = 'network';
|
|
22
|
+
|
|
20
23
|
const userLog = createConsoleLogger();
|
|
21
24
|
const debugLogger = createLogger('cli');
|
|
22
25
|
|
|
@@ -53,6 +56,7 @@ async function main() {
|
|
|
53
56
|
program = injectAztecNodeCommands(program, userLog, debugLogger);
|
|
54
57
|
program = injectMiscCommands(program, userLog);
|
|
55
58
|
program = injectValidatorKeysCommands(program, userLog);
|
|
59
|
+
program = injectMigrateCommand(program, userLog);
|
|
56
60
|
|
|
57
61
|
await program.parseAsync(process.argv);
|
|
58
62
|
}
|
|
@@ -33,9 +33,13 @@ export async function aztecStart(options: any, userLog: LogFn, debugLogger: Logg
|
|
|
33
33
|
{
|
|
34
34
|
l1Mnemonic: localNetwork.l1Mnemonic,
|
|
35
35
|
l1RpcUrls: options.l1RpcUrls,
|
|
36
|
-
deployAztecContractsSalt: localNetwork.deployAztecContractsSalt,
|
|
37
36
|
testAccounts: localNetwork.testAccounts,
|
|
38
37
|
realProofs: false,
|
|
38
|
+
// Setting the epoch duration to 4 by default for local network. This allows the epoch to be "proven" faster, so
|
|
39
|
+
// the users can consume out hash without having to wait for a long time.
|
|
40
|
+
// Note: We are not proving anything in the local network (realProofs == false). But in `createLocalNetwork`,
|
|
41
|
+
// the EpochTestSettler will set the out hash to the outbox when an epoch is complete.
|
|
42
|
+
aztecEpochDuration: 4,
|
|
39
43
|
},
|
|
40
44
|
userLog,
|
|
41
45
|
);
|
|
@@ -53,9 +57,6 @@ export async function aztecStart(options: any, userLog: LogFn, debugLogger: Logg
|
|
|
53
57
|
} else if (options.proverNode) {
|
|
54
58
|
const { startProverNode } = await import('./cmds/start_prover_node.js');
|
|
55
59
|
({ config } = await startProverNode(options, signalHandlers, services, userLog));
|
|
56
|
-
} else if (options.blobSink) {
|
|
57
|
-
const { startBlobSink } = await import('./cmds/start_blob_sink.js');
|
|
58
|
-
await startBlobSink(options, signalHandlers, userLog);
|
|
59
60
|
} else if (options.archiver) {
|
|
60
61
|
const { startArchiver } = await import('./cmds/start_archiver.js');
|
|
61
62
|
({ config } = await startArchiver(options, signalHandlers, services));
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { type ArchiverConfig, archiverConfigMappings } from '@aztec/archiver/config';
|
|
2
|
-
import {
|
|
3
|
-
import { blobSinkConfigMappings } from '@aztec/blob-sink/server';
|
|
2
|
+
import { blobClientConfigMapping } from '@aztec/blob-client/client/config';
|
|
4
3
|
import { botConfigMappings } from '@aztec/bot/config';
|
|
5
|
-
import {
|
|
4
|
+
import { l1ContractsConfigMappings } from '@aztec/ethereum/config';
|
|
5
|
+
import { l1ContractAddressesMapping } from '@aztec/ethereum/l1-contract-addresses';
|
|
6
|
+
import { l1ReaderConfigMappings } from '@aztec/ethereum/l1-reader';
|
|
6
7
|
import { getKeys } from '@aztec/foundation/collection';
|
|
7
8
|
import {
|
|
8
9
|
type ConfigMapping,
|
|
@@ -14,12 +15,13 @@ import {
|
|
|
14
15
|
import { dataConfigMappings } from '@aztec/kv-store/config';
|
|
15
16
|
import { sharedNodeConfigMappings } from '@aztec/node-lib/config';
|
|
16
17
|
import { bootnodeConfigMappings, p2pConfigMappings } from '@aztec/p2p/config';
|
|
17
|
-
import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker';
|
|
18
|
+
import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker/config';
|
|
18
19
|
import { proverNodeConfigMappings } from '@aztec/prover-node/config';
|
|
19
20
|
import { allPxeConfigMappings } from '@aztec/pxe/config';
|
|
21
|
+
import { sequencerClientConfigMappings } from '@aztec/sequencer-client/config';
|
|
20
22
|
import { chainConfigMappings } from '@aztec/stdlib/config';
|
|
21
|
-
import { telemetryClientConfigMappings } from '@aztec/telemetry-client';
|
|
22
|
-
import { worldStateConfigMappings } from '@aztec/world-state';
|
|
23
|
+
import { telemetryClientConfigMappings } from '@aztec/telemetry-client/config';
|
|
24
|
+
import { worldStateConfigMappings } from '@aztec/world-state/config';
|
|
23
25
|
|
|
24
26
|
import { DefaultMnemonic } from '../mnemonic.js';
|
|
25
27
|
|
|
@@ -124,14 +126,6 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
|
124
126
|
defaultValue: DefaultMnemonic,
|
|
125
127
|
env: 'MNEMONIC',
|
|
126
128
|
},
|
|
127
|
-
{
|
|
128
|
-
flag: '--local-network.deployAztecContractsSalt <value>',
|
|
129
|
-
description:
|
|
130
|
-
'Numeric salt for deploying L1 Aztec contracts before starting the local network. Needs mnemonic or private key to be set.',
|
|
131
|
-
env: 'DEPLOY_AZTEC_CONTRACTS_SALT',
|
|
132
|
-
defaultValue: undefined,
|
|
133
|
-
parseVal: (val: string) => (val ? parseInt(val) : undefined),
|
|
134
|
-
},
|
|
135
129
|
],
|
|
136
130
|
API: [
|
|
137
131
|
{
|
|
@@ -159,9 +153,9 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
|
159
153
|
configToFlag('--l1-chain-id', l1ReaderConfigMappings.l1ChainId),
|
|
160
154
|
// Do not set default for CLI: keep undefined unless provided via flag or env
|
|
161
155
|
configToFlag('--l1-rpc-urls', { ...l1ReaderConfigMappings.l1RpcUrls, defaultValue: undefined }),
|
|
162
|
-
configToFlag('--l1-consensus-host-urls',
|
|
163
|
-
configToFlag('--l1-consensus-host-api-keys',
|
|
164
|
-
configToFlag('--l1-consensus-host-api-key-headers',
|
|
156
|
+
configToFlag('--l1-consensus-host-urls', blobClientConfigMapping.l1ConsensusHostUrls),
|
|
157
|
+
configToFlag('--l1-consensus-host-api-keys', blobClientConfigMapping.l1ConsensusHostApiKeys),
|
|
158
|
+
configToFlag('--l1-consensus-host-api-key-headers', blobClientConfigMapping.l1ConsensusHostApiKeyHeaders),
|
|
165
159
|
],
|
|
166
160
|
'L1 CONTRACTS': [
|
|
167
161
|
configToFlag('--registry-address', l1ContractAddressesMapping.registryAddress),
|
|
@@ -208,21 +202,13 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
|
208
202
|
'sequencer',
|
|
209
203
|
omitConfigMappings(sequencerClientConfigMappings, [
|
|
210
204
|
'fakeProcessingDelayPerTxMs',
|
|
205
|
+
'fakeThrowAfterProcessingTxCount',
|
|
211
206
|
'skipCollectingAttestations',
|
|
212
207
|
'skipInvalidateBlockAsProposer',
|
|
213
208
|
'blobSinkMapSizeKb',
|
|
214
209
|
]),
|
|
215
210
|
),
|
|
216
211
|
],
|
|
217
|
-
'BLOB SINK': [
|
|
218
|
-
{
|
|
219
|
-
flag: '--blob-sink',
|
|
220
|
-
description: 'Starts Aztec Blob Sink with options',
|
|
221
|
-
defaultValue: undefined,
|
|
222
|
-
env: undefined,
|
|
223
|
-
},
|
|
224
|
-
...getOptions('blobSink', blobSinkConfigMappings),
|
|
225
|
-
],
|
|
226
212
|
'PROVER NODE': [
|
|
227
213
|
{
|
|
228
214
|
flag: '--prover-node',
|
package/src/cli/cli.ts
CHANGED
|
@@ -35,44 +35,12 @@ export function injectAztecCommands(program: Command, userLog: LogFn, debugLogge
|
|
|
35
35
|
program.addHelpText(
|
|
36
36
|
'after',
|
|
37
37
|
`
|
|
38
|
+
Additional commands:
|
|
38
39
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
--name <name> Name of the package
|
|
44
|
-
--contract Use a contract template (default)
|
|
45
|
-
--lib Use a library template
|
|
46
|
-
--bin Use a binary template
|
|
47
|
-
Examples:
|
|
48
|
-
$ aztec init # creates a contract project in current directory
|
|
49
|
-
$ aztec init --lib # creates a library project
|
|
50
|
-
|
|
51
|
-
new <path> [options]: creates a new Noir project in a new directory
|
|
52
|
-
Options:
|
|
53
|
-
--name <name> Name of the package
|
|
54
|
-
--contract Use a contract template (default)
|
|
55
|
-
--lib Use a library template
|
|
56
|
-
--bin Use a binary template
|
|
57
|
-
Examples:
|
|
58
|
-
$ aztec new my-project # creates a contract project in ./my-project
|
|
59
|
-
$ aztec new my-lib --lib # creates a library project in ./my-lib
|
|
60
|
-
|
|
61
|
-
compile [options]: compiles Aztec Noir contracts
|
|
62
|
-
Compiles contracts with nargo compile and then postprocesses them to generate Aztec-specific artifacts including:
|
|
63
|
-
- Transpiled contract artifacts
|
|
64
|
-
- Verification keys
|
|
65
|
-
The compiled contracts will be placed in the target/ directory by default.
|
|
66
|
-
Supports standard nargo compile options.
|
|
67
|
-
|
|
68
|
-
test [options]: starts a dockerized TXE node via
|
|
69
|
-
$ aztec start --txe
|
|
70
|
-
then runs
|
|
71
|
-
$ aztec test --silence-warnings --oracle-resolver=<TXE_ADDRESS> [options]
|
|
72
|
-
|
|
73
|
-
preload-crs: Downloads and caches the Common Reference String (CRS) data required for zero-knowledge proofs.
|
|
74
|
-
Example:
|
|
75
|
-
$ aztec preload-crs # preloads CRS data
|
|
40
|
+
init [folder] [options] creates a new Aztec Noir project.
|
|
41
|
+
new <path> [options] creates a new Aztec Noir project in a new directory.
|
|
42
|
+
compile [options] compiles Aztec Noir contracts.
|
|
43
|
+
test [options] starts a TXE and runs "nargo test" using it as the oracle resolver.
|
|
76
44
|
`,
|
|
77
45
|
);
|
|
78
46
|
}
|