@aztec/aztec 0.0.0-test.0
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/README.md +57 -0
- package/dest/bin/index.d.ts +3 -0
- package/dest/bin/index.d.ts.map +1 -0
- package/dest/bin/index.js +46 -0
- package/dest/cli/aztec_start_action.d.ts +3 -0
- package/dest/cli/aztec_start_action.d.ts.map +1 -0
- package/dest/cli/aztec_start_action.js +108 -0
- package/dest/cli/aztec_start_options.d.ts +15 -0
- package/dest/cli/aztec_start_options.d.ts.map +1 -0
- package/dest/cli/aztec_start_options.js +348 -0
- package/dest/cli/chain_l2_config.d.ts +19 -0
- package/dest/cli/chain_l2_config.d.ts.map +1 -0
- package/dest/cli/chain_l2_config.js +56 -0
- package/dest/cli/cli.d.ts +9 -0
- package/dest/cli/cli.d.ts.map +1 -0
- package/dest/cli/cli.js +33 -0
- package/dest/cli/cmds/start_archiver.d.ts +9 -0
- package/dest/cli/cmds/start_archiver.d.ts.map +1 -0
- package/dest/cli/cmds/start_archiver.js +42 -0
- package/dest/cli/cmds/start_blob_sink.d.ts +3 -0
- package/dest/cli/cmds/start_blob_sink.d.ts.map +1 -0
- package/dest/cli/cmds/start_blob_sink.js +17 -0
- package/dest/cli/cmds/start_bot.d.ts +11 -0
- package/dest/cli/cmds/start_bot.d.ts.map +1 -0
- package/dest/cli/cmds/start_bot.js +31 -0
- package/dest/cli/cmds/start_faucet.d.ts +4 -0
- package/dest/cli/cmds/start_faucet.d.ts.map +1 -0
- package/dest/cli/cmds/start_faucet.js +20 -0
- package/dest/cli/cmds/start_node.d.ts +7 -0
- package/dest/cli/cmds/start_node.d.ts.map +1 -0
- package/dest/cli/cmds/start_node.js +131 -0
- package/dest/cli/cmds/start_p2p_bootstrap.d.ts +6 -0
- package/dest/cli/cmds/start_p2p_bootstrap.d.ts.map +1 -0
- package/dest/cli/cmds/start_p2p_bootstrap.js +26 -0
- package/dest/cli/cmds/start_prover_agent.d.ts +4 -0
- package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -0
- package/dest/cli/cmds/start_prover_agent.js +41 -0
- package/dest/cli/cmds/start_prover_broker.d.ts +9 -0
- package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -0
- package/dest/cli/cmds/start_prover_broker.js +31 -0
- package/dest/cli/cmds/start_prover_node.d.ts +7 -0
- package/dest/cli/cmds/start_prover_node.d.ts.map +1 -0
- package/dest/cli/cmds/start_prover_node.js +110 -0
- package/dest/cli/cmds/start_pxe.d.ts +16 -0
- package/dest/cli/cmds/start_pxe.d.ts.map +1 -0
- package/dest/cli/cmds/start_pxe.js +95 -0
- package/dest/cli/cmds/start_txe.d.ts +3 -0
- package/dest/cli/cmds/start_txe.d.ts.map +1 -0
- package/dest/cli/cmds/start_txe.js +11 -0
- package/dest/cli/get_l1_config.d.ts +7 -0
- package/dest/cli/get_l1_config.d.ts.map +1 -0
- package/dest/cli/get_l1_config.js +13 -0
- package/dest/cli/index.d.ts +2 -0
- package/dest/cli/index.d.ts.map +1 -0
- package/dest/cli/index.js +1 -0
- package/dest/cli/util.d.ts +46 -0
- package/dest/cli/util.d.ts.map +1 -0
- package/dest/cli/util.js +154 -0
- package/dest/cli/versioning.d.ts +4 -0
- package/dest/cli/versioning.d.ts.map +1 -0
- package/dest/cli/versioning.js +9 -0
- package/dest/examples/token.d.ts +2 -0
- package/dest/examples/token.d.ts.map +1 -0
- package/dest/examples/token.js +46 -0
- package/dest/examples/util.d.ts +20 -0
- package/dest/examples/util.d.ts.map +1 -0
- package/dest/examples/util.js +31 -0
- package/dest/index.d.ts +2 -0
- package/dest/index.d.ts.map +1 -0
- package/dest/index.js +1 -0
- package/dest/mnemonic.d.ts +2 -0
- package/dest/mnemonic.d.ts.map +1 -0
- package/dest/mnemonic.js +1 -0
- package/dest/sandbox/banana_fpc.d.ts +11 -0
- package/dest/sandbox/banana_fpc.d.ts.map +1 -0
- package/dest/sandbox/banana_fpc.js +79 -0
- package/dest/sandbox/index.d.ts +5 -0
- package/dest/sandbox/index.d.ts.map +1 -0
- package/dest/sandbox/index.js +4 -0
- package/dest/sandbox/sandbox.d.ts +76 -0
- package/dest/sandbox/sandbox.d.ts.map +1 -0
- package/dest/sandbox/sandbox.js +181 -0
- package/dest/sandbox/sponsored_fee_payment_method.d.ts +23 -0
- package/dest/sandbox/sponsored_fee_payment_method.d.ts.map +1 -0
- package/dest/sandbox/sponsored_fee_payment_method.js +36 -0
- package/dest/sandbox/sponsored_fpc.d.ts +6 -0
- package/dest/sandbox/sponsored_fpc.d.ts.map +1 -0
- package/dest/sandbox/sponsored_fpc.js +26 -0
- package/dest/splash.d.ts +3 -0
- package/dest/splash.d.ts.map +1 -0
- package/dest/splash.js +2 -0
- package/package.json +118 -0
- package/src/bin/index.ts +54 -0
- package/src/cli/aztec_start_action.ts +114 -0
- package/src/cli/aztec_start_options.ts +371 -0
- package/src/cli/chain_l2_config.ts +74 -0
- package/src/cli/cli.ts +48 -0
- package/src/cli/cmds/start_archiver.ts +55 -0
- package/src/cli/cmds/start_blob_sink.ts +31 -0
- package/src/cli/cmds/start_bot.ts +49 -0
- package/src/cli/cmds/start_faucet.ts +34 -0
- package/src/cli/cmds/start_node.ts +151 -0
- package/src/cli/cmds/start_p2p_bootstrap.ts +29 -0
- package/src/cli/cmds/start_prover_agent.ts +68 -0
- package/src/cli/cmds/start_prover_broker.ts +46 -0
- package/src/cli/cmds/start_prover_node.ts +121 -0
- package/src/cli/cmds/start_pxe.ts +129 -0
- package/src/cli/cmds/start_txe.ts +15 -0
- package/src/cli/get_l1_config.ts +18 -0
- package/src/cli/index.ts +1 -0
- package/src/cli/util.ts +216 -0
- package/src/cli/versioning.ts +13 -0
- package/src/examples/token.ts +65 -0
- package/src/examples/util.ts +45 -0
- package/src/index.ts +7 -0
- package/src/mnemonic.ts +1 -0
- package/src/sandbox/banana_fpc.ts +83 -0
- package/src/sandbox/index.ts +5 -0
- package/src/sandbox/sandbox.ts +229 -0
- package/src/sandbox/sponsored_fee_payment_method.ts +46 -0
- package/src/sandbox/sponsored_fpc.ts +38 -0
- package/src/splash.ts +10 -0
package/README.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# aztec
|
|
2
|
+
|
|
3
|
+
Aztec is a package that allows for a simple development environment on Aztec stack. It creates a Private eXecution Environment (PXE) that listens for HTTP requests on `localhost:8080` by default. When started, it deploys all necessary L1 Aztec contracts and then starts listening for RPC requests.
|
|
4
|
+
|
|
5
|
+
## How to run:
|
|
6
|
+
|
|
7
|
+
### Docker Compose
|
|
8
|
+
|
|
9
|
+
The easiest way to run is by using `docker compose up`. This will create two containers:
|
|
10
|
+
|
|
11
|
+
1. The sandbox listening on port `8080`
|
|
12
|
+
2. An anvil instance listening on port `8545`
|
|
13
|
+
|
|
14
|
+
### Node Server
|
|
15
|
+
|
|
16
|
+
You can also run it as a standalone node server with:
|
|
17
|
+
|
|
18
|
+
```sh
|
|
19
|
+
yarn start
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
It will look for a local Ethereum RPC to talk to but you can change this with the `ETHEREUM_HOSTS` environment variable.
|
|
23
|
+
|
|
24
|
+
## Examples
|
|
25
|
+
|
|
26
|
+
The package also includes 2 examples. There are some system prerequisites that you will need to run these locally:
|
|
27
|
+
|
|
28
|
+
- [nvm](https://github.com/nvm-sh/nvm)
|
|
29
|
+
- Node version > 18
|
|
30
|
+
- [yarn](https://yarnpkg.com/)
|
|
31
|
+
- [jq](https://jqlang.github.io/jq/download/)
|
|
32
|
+
|
|
33
|
+
Before running locally you'll need to:
|
|
34
|
+
|
|
35
|
+
- Head to `l1-contracts` directory and run `./bootstrap.sh`
|
|
36
|
+
- Then go to `yarn-project and run:
|
|
37
|
+
- `yarn install`
|
|
38
|
+
- `yarn build`
|
|
39
|
+
And you should be good to go!
|
|
40
|
+
|
|
41
|
+
From the `aztec` directory, you can run the two existing examples:
|
|
42
|
+
|
|
43
|
+
- Deployment, mint and transfer on an Aztec Private Token
|
|
44
|
+
- `yarn run:example:token`
|
|
45
|
+
- An L1 / L2 uniswap token trade.
|
|
46
|
+
- `yarn run:example:uniswap`
|
|
47
|
+
- To run this example, you need to set the following vars:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
export FORK_BLOCK_NUMBER=17514288
|
|
51
|
+
export FORK_URL=<YOUR_RPC_URL e.g. https://mainnet.infura.io/v3/API_KEY>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Publishing
|
|
55
|
+
|
|
56
|
+
This package is set-up to be published on dockerhub by CI whenever there's a tagged release on `master` branch.
|
|
57
|
+
It's published under the tags `aztecprotocol/aztec:latest` & `aztecprotocol/aztec:<version-tag>`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
//
|
|
3
|
+
import { injectCommands as injectBuilderCommands } from '@aztec/builder';
|
|
4
|
+
import { injectCommands as injectWalletCommands } from '@aztec/cli-wallet';
|
|
5
|
+
import { injectCommands as injectContractCommands } from '@aztec/cli/contracts';
|
|
6
|
+
import { injectCommands as injectDevnetCommands } from '@aztec/cli/devnet';
|
|
7
|
+
import { injectCommands as injectInfrastructureCommands } from '@aztec/cli/infrastructure';
|
|
8
|
+
import { injectCommands as injectL1Commands } from '@aztec/cli/l1';
|
|
9
|
+
import { injectCommands as injectMiscCommands } from '@aztec/cli/misc';
|
|
10
|
+
import { injectCommands as injectPXECommands } from '@aztec/cli/pxe';
|
|
11
|
+
import { createConsoleLogger, createLogger } from '@aztec/foundation/log';
|
|
12
|
+
import { fileURLToPath } from '@aztec/foundation/url';
|
|
13
|
+
import { Command } from 'commander';
|
|
14
|
+
import { readFileSync } from 'fs';
|
|
15
|
+
import { dirname, resolve } from 'path';
|
|
16
|
+
import { injectAztecCommands } from '../cli/index.js';
|
|
17
|
+
const userLog = createConsoleLogger();
|
|
18
|
+
const debugLogger = createLogger('cli');
|
|
19
|
+
/** CLI & full node main entrypoint */ async function main() {
|
|
20
|
+
const shutdown = ()=>{
|
|
21
|
+
process.exit(0);
|
|
22
|
+
};
|
|
23
|
+
process.once('SIGINT', shutdown);
|
|
24
|
+
process.once('SIGTERM', shutdown);
|
|
25
|
+
const packageJsonPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../package.json');
|
|
26
|
+
const cliVersion = JSON.parse(readFileSync(packageJsonPath).toString()).version;
|
|
27
|
+
let program = new Command('aztec');
|
|
28
|
+
program.description('Aztec command line interface').version(cliVersion);
|
|
29
|
+
program = injectAztecCommands(program, userLog, debugLogger);
|
|
30
|
+
program = injectBuilderCommands(program);
|
|
31
|
+
program = injectContractCommands(program, userLog, debugLogger);
|
|
32
|
+
program = injectInfrastructureCommands(program, userLog, debugLogger);
|
|
33
|
+
program = injectL1Commands(program, userLog, debugLogger);
|
|
34
|
+
program = injectPXECommands(program, userLog, debugLogger);
|
|
35
|
+
program = injectMiscCommands(program, userLog);
|
|
36
|
+
program = injectDevnetCommands(program, userLog, debugLogger);
|
|
37
|
+
program = injectWalletCommands(program, userLog, debugLogger);
|
|
38
|
+
await program.parseAsync(process.argv);
|
|
39
|
+
}
|
|
40
|
+
main().catch((err)=>{
|
|
41
|
+
debugLogger.error(`Error in command execution`);
|
|
42
|
+
debugLogger.error(err + '\n' + err.stack);
|
|
43
|
+
// See https://nodejs.org/api/process.html#processexitcode
|
|
44
|
+
process.exitCode = 1;
|
|
45
|
+
throw err;
|
|
46
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aztec_start_action.d.ts","sourceRoot":"","sources":["../../src/cli/aztec_start_action.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAmB3D,wBAAsB,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,iBAyFjF"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { createNamespacedSafeJsonRpcServer, startHttpRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
2
|
+
import { fileURLToPath } from '@aztec/foundation/url';
|
|
3
|
+
import { AztecNodeApiSchema, PXESchema } from '@aztec/stdlib/interfaces/client';
|
|
4
|
+
import { getVersioningMiddleware } from '@aztec/stdlib/versioning';
|
|
5
|
+
import { getOtelJsonRpcPropagationMiddleware } from '@aztec/telemetry-client';
|
|
6
|
+
import { readFileSync } from 'fs';
|
|
7
|
+
import { dirname, resolve } from 'path';
|
|
8
|
+
import { createSandbox } from '../sandbox/index.js';
|
|
9
|
+
import { github, splash } from '../splash.js';
|
|
10
|
+
import { enrichEnvironmentWithChainConfig } from './chain_l2_config.js';
|
|
11
|
+
import { extractNamespacedOptions, installSignalHandlers } from './util.js';
|
|
12
|
+
import { getVersions } from './versioning.js';
|
|
13
|
+
const packageJsonPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../package.json');
|
|
14
|
+
const cliVersion = JSON.parse(readFileSync(packageJsonPath).toString()).version;
|
|
15
|
+
export async function aztecStart(options, userLog, debugLogger) {
|
|
16
|
+
// list of 'stop' functions to call when process ends
|
|
17
|
+
const signalHandlers = [];
|
|
18
|
+
const services = {};
|
|
19
|
+
let config = undefined;
|
|
20
|
+
if (options.sandbox) {
|
|
21
|
+
const sandboxOptions = extractNamespacedOptions(options, 'sandbox');
|
|
22
|
+
const nodeOptions = extractNamespacedOptions(options, 'node');
|
|
23
|
+
userLog(`${splash}\n${github}\n\n`);
|
|
24
|
+
userLog(`Setting up Aztec Sandbox ${cliVersion}, please stand by...`);
|
|
25
|
+
const { node, pxe, stop } = await createSandbox({
|
|
26
|
+
l1Mnemonic: options.l1Mnemonic,
|
|
27
|
+
l1RpcUrls: options.l1RpcUrls,
|
|
28
|
+
l1Salt: nodeOptions.deployAztecContractsSalt,
|
|
29
|
+
noPXE: sandboxOptions.noPXE,
|
|
30
|
+
testAccounts: sandboxOptions.testAccounts
|
|
31
|
+
}, userLog);
|
|
32
|
+
// Start Node and PXE JSON-RPC server
|
|
33
|
+
signalHandlers.push(stop);
|
|
34
|
+
services.node = [
|
|
35
|
+
node,
|
|
36
|
+
AztecNodeApiSchema
|
|
37
|
+
];
|
|
38
|
+
if (!sandboxOptions.noPXE) {
|
|
39
|
+
services.pxe = [
|
|
40
|
+
pxe,
|
|
41
|
+
PXESchema
|
|
42
|
+
];
|
|
43
|
+
} else {
|
|
44
|
+
userLog(`Not exposing PXE API through JSON-RPC server`);
|
|
45
|
+
}
|
|
46
|
+
} else {
|
|
47
|
+
// If a network is specified, enrich the environment with the chain config
|
|
48
|
+
if (options.network) {
|
|
49
|
+
await enrichEnvironmentWithChainConfig(options.network);
|
|
50
|
+
}
|
|
51
|
+
if (options.node) {
|
|
52
|
+
const { startNode } = await import('./cmds/start_node.js');
|
|
53
|
+
({ config } = await startNode(options, signalHandlers, services, userLog));
|
|
54
|
+
} else if (options.bot) {
|
|
55
|
+
const { startBot } = await import('./cmds/start_bot.js');
|
|
56
|
+
await startBot(options, signalHandlers, services, userLog);
|
|
57
|
+
} else if (options.proverNode) {
|
|
58
|
+
const { startProverNode } = await import('./cmds/start_prover_node.js');
|
|
59
|
+
({ config } = await startProverNode(options, signalHandlers, services, userLog));
|
|
60
|
+
} else if (options.blobSink) {
|
|
61
|
+
const { startBlobSink } = await import('./cmds/start_blob_sink.js');
|
|
62
|
+
await startBlobSink(options, signalHandlers, userLog);
|
|
63
|
+
} else if (options.pxe) {
|
|
64
|
+
const { startPXE } = await import('./cmds/start_pxe.js');
|
|
65
|
+
({ config } = await startPXE(options, signalHandlers, services, userLog));
|
|
66
|
+
} else if (options.archiver) {
|
|
67
|
+
const { startArchiver } = await import('./cmds/start_archiver.js');
|
|
68
|
+
({ config } = await startArchiver(options, signalHandlers, services));
|
|
69
|
+
} else if (options.p2pBootstrap) {
|
|
70
|
+
const { startP2PBootstrap } = await import('./cmds/start_p2p_bootstrap.js');
|
|
71
|
+
({ config } = await startP2PBootstrap(options, signalHandlers, services, userLog));
|
|
72
|
+
} else if (options.proverAgent) {
|
|
73
|
+
const { startProverAgent } = await import('./cmds/start_prover_agent.js');
|
|
74
|
+
await startProverAgent(options, signalHandlers, services, userLog);
|
|
75
|
+
} else if (options.proverBroker) {
|
|
76
|
+
const { startProverBroker } = await import('./cmds/start_prover_broker.js');
|
|
77
|
+
await startProverBroker(options, signalHandlers, services, userLog);
|
|
78
|
+
} else if (options.txe) {
|
|
79
|
+
const { startTXE } = await import('./cmds/start_txe.js');
|
|
80
|
+
await startTXE(options, debugLogger);
|
|
81
|
+
} else if (options.sequencer) {
|
|
82
|
+
userLog(`Cannot run a standalone sequencer without a node`);
|
|
83
|
+
process.exit(1);
|
|
84
|
+
} else if (options.faucet) {
|
|
85
|
+
const { startFaucet } = await import('./cmds/start_faucet.js');
|
|
86
|
+
await startFaucet(options, signalHandlers, services, userLog);
|
|
87
|
+
} else {
|
|
88
|
+
userLog(`No module specified to start`);
|
|
89
|
+
process.exit(1);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
installSignalHandlers(debugLogger.info, signalHandlers);
|
|
93
|
+
const versions = getVersions(config);
|
|
94
|
+
if (Object.entries(services).length > 0) {
|
|
95
|
+
const rpcServer = createNamespacedSafeJsonRpcServer(services, {
|
|
96
|
+
http200OnError: false,
|
|
97
|
+
log: debugLogger,
|
|
98
|
+
middlewares: [
|
|
99
|
+
getOtelJsonRpcPropagationMiddleware(),
|
|
100
|
+
getVersioningMiddleware(versions)
|
|
101
|
+
]
|
|
102
|
+
});
|
|
103
|
+
const { port } = await startHttpRpcServer(rpcServer, {
|
|
104
|
+
port: options.port
|
|
105
|
+
});
|
|
106
|
+
debugLogger.info(`Aztec Server listening on port ${port}`, versions);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ConfigMapping, type EnvVar } from '@aztec/foundation/config';
|
|
2
|
+
export interface AztecStartOption {
|
|
3
|
+
flag: string;
|
|
4
|
+
description: string;
|
|
5
|
+
defaultValue: any | undefined;
|
|
6
|
+
printDefault?: (val: any) => string;
|
|
7
|
+
envVar: EnvVar | undefined;
|
|
8
|
+
parseVal?: (val: string) => any;
|
|
9
|
+
}
|
|
10
|
+
export declare const getOptions: (namespace: string, configMappings: Record<string, ConfigMapping>) => AztecStartOption[];
|
|
11
|
+
export declare const universalOptions: string[];
|
|
12
|
+
export declare const aztecStartOptions: {
|
|
13
|
+
[key: string]: AztecStartOption[];
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=aztec_start_options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aztec_start_options.d.ts","sourceRoot":"","sources":["../../src/cli/aztec_start_options.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,MAAM,EAIZ,MAAM,0BAA0B,CAAC;AAelC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,GAAG,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IACpC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;CACjC;AAED,eAAO,MAAM,UAAU,cAAe,MAAM,kBAAkB,OAAO,MAAM,EAAE,aAAa,CAAC,uBAiB1F,CAAC;AAGF,eAAO,MAAM,gBAAgB,UAA2E,CAAC;AAGzG,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAwTlE,CAAC"}
|
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
import { archiverConfigMappings } from '@aztec/archiver/config';
|
|
2
|
+
import { faucetConfigMapping } from '@aztec/aztec-faucet/config';
|
|
3
|
+
import { sequencerClientConfigMappings } from '@aztec/aztec-node/config';
|
|
4
|
+
import { blobSinkConfigMappings } from '@aztec/blob-sink/server';
|
|
5
|
+
import { botConfigMappings } from '@aztec/bot/config';
|
|
6
|
+
import { booleanConfigHelper, isBooleanConfigValue, omitConfigMappings } from '@aztec/foundation/config';
|
|
7
|
+
import { bootnodeConfigMappings, p2pConfigMappings } from '@aztec/p2p/config';
|
|
8
|
+
import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker';
|
|
9
|
+
import { proverNodeConfigMappings } from '@aztec/prover-node/config';
|
|
10
|
+
import { allPxeConfigMappings } from '@aztec/pxe/config';
|
|
11
|
+
import { telemetryClientConfigMappings } from '@aztec/telemetry-client';
|
|
12
|
+
import { DefaultMnemonic } from '../mnemonic.js';
|
|
13
|
+
export const getOptions = (namespace, configMappings)=>{
|
|
14
|
+
const options = [];
|
|
15
|
+
for (const [key, { env, defaultValue: def, parseEnv, description, printDefault }] of Object.entries(configMappings)){
|
|
16
|
+
if (universalOptions.includes(key)) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
const isBoolean = isBooleanConfigValue(configMappings, key);
|
|
20
|
+
options.push({
|
|
21
|
+
flag: `--${namespace}.${key}${isBoolean ? '' : ' <value>'}`,
|
|
22
|
+
description,
|
|
23
|
+
defaultValue: def,
|
|
24
|
+
printDefault,
|
|
25
|
+
envVar: env,
|
|
26
|
+
parseVal: parseEnv
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return options;
|
|
30
|
+
};
|
|
31
|
+
// These are options used by multiple modules so should be inputted once
|
|
32
|
+
export const universalOptions = [
|
|
33
|
+
'l1RpcUrls',
|
|
34
|
+
'l1ChainId',
|
|
35
|
+
'l1Contracts',
|
|
36
|
+
'p2pEnabled',
|
|
37
|
+
'dataDirectory'
|
|
38
|
+
];
|
|
39
|
+
// Define categories and options
|
|
40
|
+
export const aztecStartOptions = {
|
|
41
|
+
NETWORK: [
|
|
42
|
+
{
|
|
43
|
+
flag: '--network <value>',
|
|
44
|
+
description: 'Network to run Aztec on',
|
|
45
|
+
defaultValue: undefined,
|
|
46
|
+
envVar: 'NETWORK'
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
SANDBOX: [
|
|
50
|
+
{
|
|
51
|
+
flag: '--sandbox',
|
|
52
|
+
description: 'Starts Aztec Sandbox',
|
|
53
|
+
defaultValue: undefined,
|
|
54
|
+
envVar: undefined
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
flag: '--sandbox.testAccounts',
|
|
58
|
+
description: 'Deploy test accounts on sandbox start',
|
|
59
|
+
envVar: 'TEST_ACCOUNTS',
|
|
60
|
+
...booleanConfigHelper(true)
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
flag: '--sandbox.noPXE',
|
|
64
|
+
description: 'Do not expose PXE service on sandbox start',
|
|
65
|
+
envVar: 'NO_PXE',
|
|
66
|
+
...booleanConfigHelper()
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
API: [
|
|
70
|
+
{
|
|
71
|
+
flag: '--port <value>',
|
|
72
|
+
description: 'Port to run the Aztec Services on on',
|
|
73
|
+
defaultValue: 8080,
|
|
74
|
+
envVar: 'AZTEC_PORT',
|
|
75
|
+
parseVal: (val)=>parseInt(val, 10)
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
flag: '--api-prefix <value>',
|
|
79
|
+
description: 'Prefix for API routes on any service that is started',
|
|
80
|
+
defaultValue: '',
|
|
81
|
+
envVar: 'API_PREFIX'
|
|
82
|
+
}
|
|
83
|
+
],
|
|
84
|
+
ETHEREUM: [
|
|
85
|
+
{
|
|
86
|
+
flag: '--l1-rpc-urls <value>',
|
|
87
|
+
description: 'List of URLs of the Ethereum RPC nodes that services will connect to (comma separated)',
|
|
88
|
+
defaultValue: [
|
|
89
|
+
'http://localhost:8545'
|
|
90
|
+
],
|
|
91
|
+
envVar: 'ETHEREUM_HOSTS',
|
|
92
|
+
parseVal: (val)=>val.split(',').map((url)=>url.trim())
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
flag: '--l1-chain-id <value>',
|
|
96
|
+
description: 'The L1 chain ID',
|
|
97
|
+
defaultValue: 31337,
|
|
98
|
+
envVar: 'L1_CHAIN_ID',
|
|
99
|
+
parseVal: (val)=>parseInt(val, 10)
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
flag: '--l1-mnemonic <value>',
|
|
103
|
+
description: 'Mnemonic for L1 accounts. Will be used if no publisher private keys are provided',
|
|
104
|
+
defaultValue: DefaultMnemonic,
|
|
105
|
+
envVar: 'MNEMONIC'
|
|
106
|
+
}
|
|
107
|
+
],
|
|
108
|
+
'L1 CONTRACT ADDRESSES': [
|
|
109
|
+
{
|
|
110
|
+
flag: '--rollup-address <value>',
|
|
111
|
+
description: 'The deployed L1 rollup contract address',
|
|
112
|
+
defaultValue: undefined,
|
|
113
|
+
envVar: 'ROLLUP_CONTRACT_ADDRESS'
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
flag: '--registry-address <value>',
|
|
117
|
+
description: 'The deployed L1 registry contract address',
|
|
118
|
+
defaultValue: undefined,
|
|
119
|
+
envVar: 'REGISTRY_CONTRACT_ADDRESS'
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
flag: '--inbox-address <value>',
|
|
123
|
+
description: 'The deployed L1 -> L2 inbox contract address',
|
|
124
|
+
defaultValue: undefined,
|
|
125
|
+
envVar: 'INBOX_CONTRACT_ADDRESS'
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
flag: '--outbox-address <value>',
|
|
129
|
+
description: 'The deployed L2 -> L1 outbox contract address',
|
|
130
|
+
defaultValue: undefined,
|
|
131
|
+
envVar: 'OUTBOX_CONTRACT_ADDRESS'
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
flag: '--fee-juice-address <value>',
|
|
135
|
+
description: 'The deployed L1 Fee Juice contract address',
|
|
136
|
+
defaultValue: undefined,
|
|
137
|
+
envVar: 'FEE_JUICE_CONTRACT_ADDRESS'
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
flag: '--staking-asset-address <value>',
|
|
141
|
+
description: 'The deployed L1 Staking Asset contract address',
|
|
142
|
+
defaultValue: undefined,
|
|
143
|
+
envVar: 'STAKING_ASSET_CONTRACT_ADDRESS'
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
flag: '--fee-juice-portal-address <value>',
|
|
147
|
+
description: 'The deployed L1 Fee Juice portal contract address',
|
|
148
|
+
defaultValue: undefined,
|
|
149
|
+
envVar: 'FEE_JUICE_PORTAL_CONTRACT_ADDRESS'
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
// We can't easily auto-generate node options as they're parts of modules defined below
|
|
153
|
+
'AZTEC NODE': [
|
|
154
|
+
{
|
|
155
|
+
flag: '--node',
|
|
156
|
+
description: 'Starts Aztec Node with options',
|
|
157
|
+
defaultValue: undefined,
|
|
158
|
+
envVar: undefined
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
flag: '--data-directory <value>',
|
|
162
|
+
description: 'Where to store data. If not set, will store temporarily',
|
|
163
|
+
defaultValue: undefined,
|
|
164
|
+
envVar: 'DATA_DIRECTORY'
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
flag: '--node.archiverUrl <value>',
|
|
168
|
+
description: 'URL for an archiver service',
|
|
169
|
+
defaultValue: undefined,
|
|
170
|
+
envVar: 'ARCHIVER_URL'
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
flag: '--node.deployAztecContracts',
|
|
174
|
+
description: 'Deploys L1 Aztec contracts before starting the node. Needs mnemonic or private key to be set.',
|
|
175
|
+
envVar: 'DEPLOY_AZTEC_CONTRACTS',
|
|
176
|
+
defaultValue: undefined
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
flag: '--node.deployAztecContractsSalt <value>',
|
|
180
|
+
description: 'Numeric salt for deploying L1 Aztec contracts before starting the node. Needs mnemonic or private key to be set. Implies --node.deployAztecContracts.',
|
|
181
|
+
envVar: 'DEPLOY_AZTEC_CONTRACTS_SALT',
|
|
182
|
+
defaultValue: undefined,
|
|
183
|
+
parseVal: (val)=>val ? parseInt(val) : undefined
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
flag: '--node.assumeProvenThroughBlockNumber <value>',
|
|
187
|
+
description: 'Cheats the rollup contract into assuming every block until this one is proven. Useful for speeding up bootstraps.',
|
|
188
|
+
envVar: 'ASSUME_PROVEN_THROUGH_BLOCK_NUMBER',
|
|
189
|
+
parseVal: (val)=>parseInt(val, 10),
|
|
190
|
+
defaultValue: 0
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
flag: '--node.publisherPrivateKey <value>',
|
|
194
|
+
description: 'Private key of account for publishing L1 contracts',
|
|
195
|
+
defaultValue: undefined,
|
|
196
|
+
envVar: 'L1_PRIVATE_KEY'
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
flag: '--node.worldStateBlockCheckIntervalMS <value>',
|
|
200
|
+
description: 'Frequency in which to check for blocks in ms',
|
|
201
|
+
defaultValue: 100,
|
|
202
|
+
envVar: 'WS_BLOCK_CHECK_INTERVAL_MS',
|
|
203
|
+
parseVal: (val)=>parseInt(val, 10)
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
flag: '--node.testAccounts',
|
|
207
|
+
description: 'Populate genesis state with initial fee juice for test accounts',
|
|
208
|
+
envVar: 'TEST_ACCOUNTS',
|
|
209
|
+
...booleanConfigHelper()
|
|
210
|
+
}
|
|
211
|
+
],
|
|
212
|
+
'P2P SUBSYSTEM': [
|
|
213
|
+
{
|
|
214
|
+
flag: '--p2p-enabled',
|
|
215
|
+
description: 'Enable P2P subsystem',
|
|
216
|
+
envVar: 'P2P_ENABLED',
|
|
217
|
+
...booleanConfigHelper()
|
|
218
|
+
},
|
|
219
|
+
...getOptions('p2p', p2pConfigMappings)
|
|
220
|
+
],
|
|
221
|
+
TELEMETRY: [
|
|
222
|
+
...getOptions('tel', telemetryClientConfigMappings)
|
|
223
|
+
],
|
|
224
|
+
PXE: [
|
|
225
|
+
{
|
|
226
|
+
flag: '--pxe',
|
|
227
|
+
description: 'Starts Aztec PXE with options',
|
|
228
|
+
defaultValue: undefined,
|
|
229
|
+
envVar: undefined
|
|
230
|
+
},
|
|
231
|
+
...getOptions('pxe', allPxeConfigMappings)
|
|
232
|
+
],
|
|
233
|
+
ARCHIVER: [
|
|
234
|
+
{
|
|
235
|
+
flag: '--archiver',
|
|
236
|
+
description: 'Starts Aztec Archiver with options',
|
|
237
|
+
defaultValue: undefined,
|
|
238
|
+
envVar: undefined
|
|
239
|
+
},
|
|
240
|
+
// filter out archiverUrl as it's passed separately in --node & --prover-node
|
|
241
|
+
...getOptions('archiver', archiverConfigMappings).filter((opt)=>!opt.flag.includes('archiverUrl'))
|
|
242
|
+
],
|
|
243
|
+
SEQUENCER: [
|
|
244
|
+
{
|
|
245
|
+
flag: '--sequencer',
|
|
246
|
+
description: 'Starts Aztec Sequencer with options',
|
|
247
|
+
defaultValue: undefined,
|
|
248
|
+
envVar: undefined
|
|
249
|
+
},
|
|
250
|
+
...getOptions('sequencer', sequencerClientConfigMappings)
|
|
251
|
+
],
|
|
252
|
+
BLOB_SINK: [
|
|
253
|
+
{
|
|
254
|
+
flag: '--blob-sink',
|
|
255
|
+
description: 'Starts Aztec Blob Sink with options',
|
|
256
|
+
defaultValue: undefined,
|
|
257
|
+
envVar: undefined
|
|
258
|
+
},
|
|
259
|
+
...getOptions('blobSink', blobSinkConfigMappings)
|
|
260
|
+
],
|
|
261
|
+
'PROVER NODE': [
|
|
262
|
+
{
|
|
263
|
+
flag: '--prover-node',
|
|
264
|
+
description: 'Starts Aztec Prover Node with options',
|
|
265
|
+
defaultValue: undefined,
|
|
266
|
+
envVar: undefined
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
flag: '--proverNode.archiverUrl <value>',
|
|
270
|
+
description: 'URL for an archiver service',
|
|
271
|
+
defaultValue: undefined,
|
|
272
|
+
envVar: 'ARCHIVER_URL'
|
|
273
|
+
},
|
|
274
|
+
...getOptions('proverNode', omitConfigMappings(proverNodeConfigMappings, [
|
|
275
|
+
// filter out options passed separately
|
|
276
|
+
...Object.keys(archiverConfigMappings),
|
|
277
|
+
...Object.keys(proverBrokerConfigMappings),
|
|
278
|
+
...Object.keys(proverAgentConfigMappings)
|
|
279
|
+
]))
|
|
280
|
+
],
|
|
281
|
+
'PROVER BROKER': [
|
|
282
|
+
{
|
|
283
|
+
flag: '--prover-broker',
|
|
284
|
+
description: 'Starts Aztec proving job broker',
|
|
285
|
+
defaultValue: undefined,
|
|
286
|
+
envVar: undefined
|
|
287
|
+
},
|
|
288
|
+
...getOptions('proverBroker', // filter out archiver options from prover node options as they're passed separately in --archiver
|
|
289
|
+
proverBrokerConfigMappings)
|
|
290
|
+
],
|
|
291
|
+
'PROVER AGENT': [
|
|
292
|
+
{
|
|
293
|
+
flag: '--prover-agent',
|
|
294
|
+
description: 'Starts Aztec Prover Agent with options',
|
|
295
|
+
defaultValue: undefined,
|
|
296
|
+
envVar: undefined
|
|
297
|
+
},
|
|
298
|
+
...getOptions('proverAgent', proverAgentConfigMappings)
|
|
299
|
+
],
|
|
300
|
+
'P2P BOOTSTRAP': [
|
|
301
|
+
{
|
|
302
|
+
flag: '--p2p-bootstrap',
|
|
303
|
+
description: 'Starts Aztec P2P Bootstrap with options',
|
|
304
|
+
defaultValue: undefined,
|
|
305
|
+
envVar: undefined
|
|
306
|
+
},
|
|
307
|
+
...getOptions('p2pBootstrap', bootnodeConfigMappings)
|
|
308
|
+
],
|
|
309
|
+
BOT: [
|
|
310
|
+
{
|
|
311
|
+
flag: '--bot',
|
|
312
|
+
description: 'Starts Aztec Bot with options',
|
|
313
|
+
defaultValue: undefined,
|
|
314
|
+
envVar: undefined
|
|
315
|
+
},
|
|
316
|
+
...getOptions('bot', botConfigMappings)
|
|
317
|
+
],
|
|
318
|
+
TXE: [
|
|
319
|
+
{
|
|
320
|
+
flag: '--txe',
|
|
321
|
+
description: 'Starts Aztec TXE with options',
|
|
322
|
+
defaultValue: undefined,
|
|
323
|
+
envVar: undefined
|
|
324
|
+
}
|
|
325
|
+
],
|
|
326
|
+
FAUCET: [
|
|
327
|
+
{
|
|
328
|
+
flag: '--faucet',
|
|
329
|
+
description: 'Starts the Aztec faucet',
|
|
330
|
+
defaultValue: undefined,
|
|
331
|
+
envVar: undefined
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
flag: '--faucet.apiServer',
|
|
335
|
+
description: 'Starts a simple HTTP server to access the faucet',
|
|
336
|
+
defaultValue: true,
|
|
337
|
+
envVar: undefined
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
flag: '--faucet.apiServerPort <value>',
|
|
341
|
+
description: 'The port on which to start the api server on',
|
|
342
|
+
defaultValue: 8080,
|
|
343
|
+
envVar: undefined,
|
|
344
|
+
parseVal: (val)=>parseInt(val, 10)
|
|
345
|
+
},
|
|
346
|
+
...getOptions('faucet', faucetConfigMapping)
|
|
347
|
+
]
|
|
348
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type NetworkNames = 'testnet-ignition';
|
|
2
|
+
export type L2ChainConfig = {
|
|
3
|
+
l1ChainId: number;
|
|
4
|
+
ethereumSlotDuration: number;
|
|
5
|
+
aztecSlotDuration: number;
|
|
6
|
+
aztecEpochDuration: number;
|
|
7
|
+
aztecProofSubmissionWindow: number;
|
|
8
|
+
testAccounts: boolean;
|
|
9
|
+
p2pEnabled: boolean;
|
|
10
|
+
p2pBootstrapNodes: string[];
|
|
11
|
+
registryAddress: string;
|
|
12
|
+
seqMinTxsPerBlock: number;
|
|
13
|
+
seqMaxTxsPerBlock: number;
|
|
14
|
+
};
|
|
15
|
+
export declare const testnetIgnitionL2ChainConfig: L2ChainConfig;
|
|
16
|
+
export declare function getBootnodes(networkName: NetworkNames): Promise<any>;
|
|
17
|
+
export declare function getL2ChainConfig(networkName: NetworkNames): Promise<L2ChainConfig | undefined>;
|
|
18
|
+
export declare function enrichEnvironmentWithChainConfig(networkName: NetworkNames): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=chain_l2_config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain_l2_config.d.ts","sourceRoot":"","sources":["../../src/cli/chain_l2_config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0BAA0B,EAAE,MAAM,CAAC;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,aAY1C,CAAC;AAEF,wBAAsB,YAAY,CAAC,WAAW,EAAE,YAAY,gBAQ3D;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAOpG;AAUD,wBAAsB,gCAAgC,CAAC,WAAW,EAAE,YAAY,iBAgB/E"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export const testnetIgnitionL2ChainConfig = {
|
|
2
|
+
l1ChainId: 11155111,
|
|
3
|
+
ethereumSlotDuration: 12,
|
|
4
|
+
aztecSlotDuration: 36,
|
|
5
|
+
aztecEpochDuration: 32,
|
|
6
|
+
aztecProofSubmissionWindow: 64,
|
|
7
|
+
testAccounts: true,
|
|
8
|
+
p2pEnabled: true,
|
|
9
|
+
p2pBootstrapNodes: [],
|
|
10
|
+
registryAddress: '0x12b3ebc176a1646b911391eab3760764f2e05fe3',
|
|
11
|
+
seqMinTxsPerBlock: 0,
|
|
12
|
+
seqMaxTxsPerBlock: 0
|
|
13
|
+
};
|
|
14
|
+
export async function getBootnodes(networkName) {
|
|
15
|
+
const url = `http://static.aztec.network/${networkName}/bootnodes.json`;
|
|
16
|
+
const response = await fetch(url);
|
|
17
|
+
if (!response.ok) {
|
|
18
|
+
throw new Error(`Failed to fetch basic contract addresses from ${url}`);
|
|
19
|
+
}
|
|
20
|
+
const json = await response.json();
|
|
21
|
+
return json['bootnodes'];
|
|
22
|
+
}
|
|
23
|
+
export async function getL2ChainConfig(networkName) {
|
|
24
|
+
if (networkName === 'testnet-ignition') {
|
|
25
|
+
const config = {
|
|
26
|
+
...testnetIgnitionL2ChainConfig
|
|
27
|
+
};
|
|
28
|
+
config.p2pBootstrapNodes = await getBootnodes(networkName);
|
|
29
|
+
return config;
|
|
30
|
+
}
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
function enrichVar(envVar, value) {
|
|
34
|
+
// Don't override
|
|
35
|
+
if (process.env[envVar]) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
process.env[envVar] = value;
|
|
39
|
+
}
|
|
40
|
+
export async function enrichEnvironmentWithChainConfig(networkName) {
|
|
41
|
+
const config = await getL2ChainConfig(networkName);
|
|
42
|
+
if (!config) {
|
|
43
|
+
throw new Error(`Unknown network name: ${networkName}`);
|
|
44
|
+
}
|
|
45
|
+
enrichVar('ETHEREUM_SLOT_DURATION', config.ethereumSlotDuration.toString());
|
|
46
|
+
enrichVar('AZTEC_SLOT_DURATION', config.aztecSlotDuration.toString());
|
|
47
|
+
enrichVar('AZTEC_EPOCH_DURATION', config.aztecEpochDuration.toString());
|
|
48
|
+
enrichVar('AZTEC_PROOF_SUBMISSION_WINDOW', config.aztecProofSubmissionWindow.toString());
|
|
49
|
+
enrichVar('P2P_BOOTSTRAP_NODES', config.p2pBootstrapNodes.join(','));
|
|
50
|
+
enrichVar('TEST_ACCOUNTS', config.testAccounts.toString());
|
|
51
|
+
enrichVar('P2P_ENABLED', config.p2pEnabled.toString());
|
|
52
|
+
enrichVar('L1_CHAIN_ID', config.l1ChainId.toString());
|
|
53
|
+
enrichVar('REGISTRY_CONTRACT_ADDRESS', config.registryAddress);
|
|
54
|
+
enrichVar('SEQ_MIN_TX_PER_BLOCK', config.seqMinTxsPerBlock.toString());
|
|
55
|
+
enrichVar('SEQ_MAX_TX_PER_BLOCK', config.seqMaxTxsPerBlock.toString());
|
|
56
|
+
}
|