@aztec/aztec 0.0.0-test.0 → 0.0.1-commit.0208eb9

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 (156) hide show
  1. package/README.md +1 -1
  2. package/dest/bin/index.d.ts +1 -1
  3. package/dest/bin/index.js +23 -12
  4. package/dest/cli/aztec_start_action.d.ts +1 -1
  5. package/dest/cli/aztec_start_action.d.ts.map +1 -1
  6. package/dest/cli/aztec_start_action.js +40 -40
  7. package/dest/cli/aztec_start_options.d.ts +5 -3
  8. package/dest/cli/aztec_start_options.d.ts.map +1 -1
  9. package/dest/cli/aztec_start_options.js +146 -225
  10. package/dest/cli/cli.d.ts +1 -1
  11. package/dest/cli/cli.d.ts.map +1 -1
  12. package/dest/cli/cli.js +12 -7
  13. package/dest/cli/cmds/migrate_ha_db.d.ts +3 -0
  14. package/dest/cli/cmds/migrate_ha_db.d.ts.map +1 -0
  15. package/dest/cli/cmds/migrate_ha_db.js +27 -0
  16. package/dest/cli/cmds/start_archiver.d.ts +1 -1
  17. package/dest/cli/cmds/start_archiver.d.ts.map +1 -1
  18. package/dest/cli/cmds/start_archiver.js +24 -18
  19. package/dest/cli/cmds/start_bot.d.ts +4 -7
  20. package/dest/cli/cmds/start_bot.d.ts.map +1 -1
  21. package/dest/cli/cmds/start_bot.js +25 -14
  22. package/dest/cli/cmds/start_node.d.ts +2 -2
  23. package/dest/cli/cmds/start_node.d.ts.map +1 -1
  24. package/dest/cli/cmds/start_node.js +68 -81
  25. package/dest/cli/cmds/start_p2p_bootstrap.d.ts +2 -2
  26. package/dest/cli/cmds/start_p2p_bootstrap.d.ts.map +1 -1
  27. package/dest/cli/cmds/start_p2p_bootstrap.js +10 -6
  28. package/dest/cli/cmds/start_prover_agent.d.ts +1 -1
  29. package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -1
  30. package/dest/cli/cmds/start_prover_agent.js +35 -6
  31. package/dest/cli/cmds/start_prover_broker.d.ts +1 -1
  32. package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
  33. package/dest/cli/cmds/start_prover_broker.js +12 -6
  34. package/dest/cli/cmds/start_prover_node.d.ts +1 -1
  35. package/dest/cli/cmds/start_prover_node.d.ts.map +1 -1
  36. package/dest/cli/cmds/start_prover_node.js +44 -46
  37. package/dest/cli/cmds/start_txe.d.ts +1 -1
  38. package/dest/cli/index.d.ts +1 -1
  39. package/dest/cli/preload_crs.d.ts +3 -0
  40. package/dest/cli/preload_crs.d.ts.map +1 -0
  41. package/dest/cli/preload_crs.js +6 -0
  42. package/dest/cli/release_version.d.ts +2 -0
  43. package/dest/cli/release_version.d.ts.map +1 -0
  44. package/dest/cli/release_version.js +14 -0
  45. package/dest/cli/util.d.ts +38 -7
  46. package/dest/cli/util.d.ts.map +1 -1
  47. package/dest/cli/util.js +198 -28
  48. package/dest/cli/versioning.d.ts +1 -1
  49. package/dest/cli/versioning.js +3 -3
  50. package/dest/examples/token.d.ts +1 -1
  51. package/dest/examples/token.js +31 -18
  52. package/dest/examples/util.d.ts +5 -6
  53. package/dest/examples/util.d.ts.map +1 -1
  54. package/dest/examples/util.js +5 -6
  55. package/dest/index.d.ts +2 -2
  56. package/dest/index.d.ts.map +1 -1
  57. package/dest/index.js +1 -1
  58. package/dest/local-network/banana_fpc.d.ts +10 -0
  59. package/dest/local-network/banana_fpc.d.ts.map +1 -0
  60. package/dest/{sandbox → local-network}/banana_fpc.js +22 -24
  61. package/dest/local-network/index.d.ts +4 -0
  62. package/dest/local-network/index.d.ts.map +1 -0
  63. package/dest/local-network/index.js +3 -0
  64. package/dest/local-network/local-network.d.ts +71 -0
  65. package/dest/local-network/local-network.d.ts.map +1 -0
  66. package/dest/local-network/local-network.js +194 -0
  67. package/dest/local-network/sponsored_fpc.d.ts +5 -0
  68. package/dest/local-network/sponsored_fpc.d.ts.map +1 -0
  69. package/dest/local-network/sponsored_fpc.js +18 -0
  70. package/dest/mnemonic.d.ts +1 -1
  71. package/dest/splash.d.ts +1 -1
  72. package/dest/testing/anvil_test_watcher.d.ts +34 -0
  73. package/dest/testing/anvil_test_watcher.d.ts.map +1 -0
  74. package/dest/testing/anvil_test_watcher.js +144 -0
  75. package/dest/testing/cheat_codes.d.ts +43 -0
  76. package/dest/testing/cheat_codes.d.ts.map +1 -0
  77. package/dest/testing/cheat_codes.js +62 -0
  78. package/dest/testing/epoch_test_settler.d.ts +19 -0
  79. package/dest/testing/epoch_test_settler.d.ts.map +1 -0
  80. package/dest/testing/epoch_test_settler.js +62 -0
  81. package/dest/testing/index.d.ts +5 -0
  82. package/dest/testing/index.d.ts.map +1 -0
  83. package/dest/testing/index.js +4 -0
  84. package/package.json +55 -45
  85. package/scripts/aztec.sh +63 -0
  86. package/scripts/compile.sh +44 -0
  87. package/scripts/extract_function.js +47 -0
  88. package/scripts/flamegraph.sh +59 -0
  89. package/scripts/init.sh +35 -0
  90. package/scripts/new.sh +59 -0
  91. package/scripts/setup_project.sh +31 -0
  92. package/src/bin/index.ts +28 -12
  93. package/src/cli/aztec_start_action.ts +36 -38
  94. package/src/cli/aztec_start_options.ts +161 -222
  95. package/src/cli/cli.ts +20 -11
  96. package/src/cli/cmds/migrate_ha_db.ts +43 -0
  97. package/src/cli/cmds/start_archiver.ts +15 -20
  98. package/src/cli/cmds/start_bot.ts +36 -13
  99. package/src/cli/cmds/start_node.ts +91 -86
  100. package/src/cli/cmds/start_p2p_bootstrap.ts +14 -6
  101. package/src/cli/cmds/start_prover_agent.ts +26 -14
  102. package/src/cli/cmds/start_prover_broker.ts +29 -5
  103. package/src/cli/cmds/start_prover_node.ts +54 -51
  104. package/src/cli/preload_crs.ts +7 -0
  105. package/src/cli/release_version.ts +21 -0
  106. package/src/cli/util.ts +208 -34
  107. package/src/cli/versioning.ts +3 -3
  108. package/src/examples/token.ts +21 -19
  109. package/src/examples/util.ts +6 -8
  110. package/src/index.ts +5 -6
  111. package/src/{sandbox → local-network}/banana_fpc.ts +27 -28
  112. package/src/local-network/index.ts +7 -0
  113. package/src/local-network/local-network.ts +240 -0
  114. package/src/local-network/sponsored_fpc.ts +26 -0
  115. package/src/testing/anvil_test_watcher.ts +166 -0
  116. package/src/testing/cheat_codes.ts +79 -0
  117. package/src/testing/epoch_test_settler.ts +71 -0
  118. package/src/testing/index.ts +4 -0
  119. package/dest/cli/chain_l2_config.d.ts +0 -19
  120. package/dest/cli/chain_l2_config.d.ts.map +0 -1
  121. package/dest/cli/chain_l2_config.js +0 -56
  122. package/dest/cli/cmds/start_blob_sink.d.ts +0 -3
  123. package/dest/cli/cmds/start_blob_sink.d.ts.map +0 -1
  124. package/dest/cli/cmds/start_blob_sink.js +0 -17
  125. package/dest/cli/cmds/start_faucet.d.ts +0 -4
  126. package/dest/cli/cmds/start_faucet.d.ts.map +0 -1
  127. package/dest/cli/cmds/start_faucet.js +0 -20
  128. package/dest/cli/cmds/start_pxe.d.ts +0 -16
  129. package/dest/cli/cmds/start_pxe.d.ts.map +0 -1
  130. package/dest/cli/cmds/start_pxe.js +0 -95
  131. package/dest/cli/get_l1_config.d.ts +0 -7
  132. package/dest/cli/get_l1_config.d.ts.map +0 -1
  133. package/dest/cli/get_l1_config.js +0 -13
  134. package/dest/sandbox/banana_fpc.d.ts +0 -11
  135. package/dest/sandbox/banana_fpc.d.ts.map +0 -1
  136. package/dest/sandbox/index.d.ts +0 -5
  137. package/dest/sandbox/index.d.ts.map +0 -1
  138. package/dest/sandbox/index.js +0 -4
  139. package/dest/sandbox/sandbox.d.ts +0 -76
  140. package/dest/sandbox/sandbox.d.ts.map +0 -1
  141. package/dest/sandbox/sandbox.js +0 -181
  142. package/dest/sandbox/sponsored_fee_payment_method.d.ts +0 -23
  143. package/dest/sandbox/sponsored_fee_payment_method.d.ts.map +0 -1
  144. package/dest/sandbox/sponsored_fee_payment_method.js +0 -36
  145. package/dest/sandbox/sponsored_fpc.d.ts +0 -6
  146. package/dest/sandbox/sponsored_fpc.d.ts.map +0 -1
  147. package/dest/sandbox/sponsored_fpc.js +0 -26
  148. package/src/cli/chain_l2_config.ts +0 -74
  149. package/src/cli/cmds/start_blob_sink.ts +0 -31
  150. package/src/cli/cmds/start_faucet.ts +0 -34
  151. package/src/cli/cmds/start_pxe.ts +0 -129
  152. package/src/cli/get_l1_config.ts +0 -18
  153. package/src/sandbox/index.ts +0 -5
  154. package/src/sandbox/sandbox.ts +0 -229
  155. package/src/sandbox/sponsored_fee_payment_method.ts +0 -46
  156. package/src/sandbox/sponsored_fpc.ts +0 -38
@@ -1,18 +1,25 @@
1
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';
2
+ import { blobClientConfigMapping } from '@aztec/blob-client/client/config';
5
3
  import { botConfigMappings } from '@aztec/bot/config';
4
+ import { l1ContractsConfigMappings } from '@aztec/ethereum/config';
5
+ import { l1ContractAddressesMapping } from '@aztec/ethereum/l1-contract-addresses';
6
+ import { l1ReaderConfigMappings } from '@aztec/ethereum/l1-reader';
7
+ import { getKeys } from '@aztec/foundation/collection';
6
8
  import { booleanConfigHelper, isBooleanConfigValue, omitConfigMappings } from '@aztec/foundation/config';
9
+ import { dataConfigMappings } from '@aztec/kv-store/config';
10
+ import { sharedNodeConfigMappings } from '@aztec/node-lib/config';
7
11
  import { bootnodeConfigMappings, p2pConfigMappings } from '@aztec/p2p/config';
8
- import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker';
12
+ import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker/config';
9
13
  import { proverNodeConfigMappings } from '@aztec/prover-node/config';
10
14
  import { allPxeConfigMappings } from '@aztec/pxe/config';
11
- import { telemetryClientConfigMappings } from '@aztec/telemetry-client';
15
+ import { sequencerClientConfigMappings } from '@aztec/sequencer-client/config';
16
+ import { chainConfigMappings, nodeRpcConfigMappings } from '@aztec/stdlib/config';
17
+ import { telemetryClientConfigMappings } from '@aztec/telemetry-client/config';
18
+ import { worldStateConfigMappings } from '@aztec/world-state/config';
12
19
  import { DefaultMnemonic } from '../mnemonic.js';
13
20
  export const getOptions = (namespace, configMappings)=>{
14
21
  const options = [];
15
- for (const [key, { env, defaultValue: def, parseEnv, description, printDefault }] of Object.entries(configMappings)){
22
+ for (const [key, { env, defaultValue: def, parseEnv, description, printDefault, fallback }] of Object.entries(configMappings)){
16
23
  if (universalOptions.includes(key)) {
17
24
  continue;
18
25
  }
@@ -22,132 +29,120 @@ export const getOptions = (namespace, configMappings)=>{
22
29
  description,
23
30
  defaultValue: def,
24
31
  printDefault,
25
- envVar: env,
32
+ env: env,
33
+ fallback,
26
34
  parseVal: parseEnv
27
35
  });
28
36
  }
29
37
  return options;
30
38
  };
39
+ const configToFlag = (flag, configMapping, overrideDefaultValue)=>{
40
+ if (!configMapping.isBoolean) {
41
+ flag += ' <value>';
42
+ }
43
+ const flagConfig = {
44
+ flag,
45
+ env: undefined,
46
+ defaultValue: undefined,
47
+ parseVal: configMapping.parseEnv,
48
+ ...configMapping
49
+ };
50
+ if (overrideDefaultValue !== undefined) {
51
+ flagConfig.defaultValue = overrideDefaultValue;
52
+ }
53
+ return flagConfig;
54
+ };
31
55
  // These are options used by multiple modules so should be inputted once
32
56
  export const universalOptions = [
33
- 'l1RpcUrls',
34
- 'l1ChainId',
35
- 'l1Contracts',
57
+ 'l1ConsensusHostUrls',
58
+ 'l1ConsensusHostApiKeys',
59
+ 'l1ConsensusHostApiKeyHeaders',
36
60
  'p2pEnabled',
37
- 'dataDirectory'
61
+ 'fishermanMode',
62
+ ...getKeys(chainConfigMappings),
63
+ ...getKeys(l1ContractsConfigMappings),
64
+ ...getKeys(l1ContractAddressesMapping),
65
+ ...getKeys(l1ReaderConfigMappings),
66
+ ...getKeys(dataConfigMappings),
67
+ ...getKeys(worldStateConfigMappings)
38
68
  ];
69
+ export const NETWORK_FLAG = 'network';
39
70
  // Define categories and options
40
71
  export const aztecStartOptions = {
41
- NETWORK: [
72
+ MISC: [
42
73
  {
43
- flag: '--network <value>',
74
+ flag: `--${NETWORK_FLAG} <value>`,
44
75
  description: 'Network to run Aztec on',
45
76
  defaultValue: undefined,
46
- envVar: 'NETWORK'
47
- }
77
+ env: 'NETWORK'
78
+ },
79
+ configToFlag('--auto-update', sharedNodeConfigMappings.autoUpdate),
80
+ configToFlag('--auto-update-url', sharedNodeConfigMappings.autoUpdateUrl),
81
+ configToFlag('--sync-mode', sharedNodeConfigMappings.syncMode),
82
+ configToFlag('--snapshots-urls', sharedNodeConfigMappings.snapshotsUrls),
83
+ configToFlag('--fisherman-mode', sharedNodeConfigMappings.fishermanMode)
48
84
  ],
49
- SANDBOX: [
85
+ LOCAL_NETWORK: [
50
86
  {
51
- flag: '--sandbox',
52
- description: 'Starts Aztec Sandbox',
87
+ flag: '--local-network',
88
+ description: 'Starts Aztec Local Network',
53
89
  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)
90
+ env: undefined
61
91
  },
62
92
  {
63
- flag: '--sandbox.noPXE',
64
- description: 'Do not expose PXE service on sandbox start',
65
- envVar: 'NO_PXE',
66
- ...booleanConfigHelper()
93
+ flag: '--local-network.l1Mnemonic <value>',
94
+ description: 'Mnemonic for L1 accounts. Will be used ',
95
+ defaultValue: DefaultMnemonic,
96
+ env: 'MNEMONIC'
67
97
  }
68
98
  ],
69
99
  API: [
70
100
  {
71
101
  flag: '--port <value>',
72
- description: 'Port to run the Aztec Services on on',
102
+ description: 'Port to run the Aztec Services on',
73
103
  defaultValue: 8080,
74
- envVar: 'AZTEC_PORT',
104
+ env: 'AZTEC_PORT',
105
+ parseVal: (val)=>parseInt(val, 10)
106
+ },
107
+ {
108
+ flag: '--admin-port <value>',
109
+ description: 'Port to run admin APIs of Aztec Services on',
110
+ defaultValue: 8880,
111
+ env: 'AZTEC_ADMIN_PORT',
75
112
  parseVal: (val)=>parseInt(val, 10)
76
113
  },
77
114
  {
78
115
  flag: '--api-prefix <value>',
79
116
  description: 'Prefix for API routes on any service that is started',
80
117
  defaultValue: '',
81
- envVar: 'API_PREFIX'
82
- }
118
+ env: 'API_PREFIX'
119
+ },
120
+ configToFlag('--rpcMaxBatchSize', nodeRpcConfigMappings.rpcMaxBatchSize),
121
+ configToFlag('--rpcMaxBodySize', nodeRpcConfigMappings.rpcMaxBodySize)
83
122
  ],
84
123
  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
- }
124
+ configToFlag('--l1-chain-id', l1ReaderConfigMappings.l1ChainId),
125
+ // Do not set default for CLI: keep undefined unless provided via flag or env
126
+ configToFlag('--l1-rpc-urls', {
127
+ ...l1ReaderConfigMappings.l1RpcUrls,
128
+ defaultValue: undefined
129
+ }),
130
+ configToFlag('--l1-consensus-host-urls', blobClientConfigMapping.l1ConsensusHostUrls),
131
+ configToFlag('--l1-consensus-host-api-keys', blobClientConfigMapping.l1ConsensusHostApiKeys),
132
+ configToFlag('--l1-consensus-host-api-key-headers', blobClientConfigMapping.l1ConsensusHostApiKeyHeaders)
107
133
  ],
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
- }
134
+ 'L1 CONTRACTS': [
135
+ configToFlag('--registry-address', l1ContractAddressesMapping.registryAddress),
136
+ configToFlag('--rollup-version', chainConfigMappings.rollupVersion)
137
+ ],
138
+ STORAGE: [
139
+ configToFlag('--data-directory', dataConfigMappings.dataDirectory),
140
+ configToFlag('--data-store-map-size-kb', dataConfigMappings.dataStoreMapSizeKb)
141
+ ],
142
+ 'WORLD STATE': [
143
+ configToFlag('--world-state-data-directory', worldStateConfigMappings.worldStateDataDirectory),
144
+ configToFlag('--world-state-db-map-size-kb', worldStateConfigMappings.worldStateDbMapSizeKb),
145
+ configToFlag('--world-state-block-history', worldStateConfigMappings.worldStateBlockHistory)
151
146
  ],
152
147
  // We can't easily auto-generate node options as they're parts of modules defined below
153
148
  'AZTEC NODE': [
@@ -155,127 +150,48 @@ export const aztecStartOptions = {
155
150
  flag: '--node',
156
151
  description: 'Starts Aztec Node with options',
157
152
  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()
153
+ env: undefined
210
154
  }
211
155
  ],
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
156
  ARCHIVER: [
234
157
  {
235
158
  flag: '--archiver',
236
159
  description: 'Starts Aztec Archiver with options',
237
160
  defaultValue: undefined,
238
- envVar: undefined
161
+ env: undefined
239
162
  },
240
- // filter out archiverUrl as it's passed separately in --node & --prover-node
241
- ...getOptions('archiver', archiverConfigMappings).filter((opt)=>!opt.flag.includes('archiverUrl'))
163
+ ...getOptions('archiver', omitConfigMappings(archiverConfigMappings, Object.keys(l1ContractsConfigMappings)))
242
164
  ],
243
165
  SEQUENCER: [
244
166
  {
245
167
  flag: '--sequencer',
246
168
  description: 'Starts Aztec Sequencer with options',
247
169
  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)
170
+ env: undefined
171
+ },
172
+ ...getOptions('sequencer', omitConfigMappings(sequencerClientConfigMappings, [
173
+ 'fakeProcessingDelayPerTxMs',
174
+ 'fakeThrowAfterProcessingTxCount',
175
+ 'skipCollectingAttestations',
176
+ 'skipInvalidateBlockAsProposer',
177
+ 'blobSinkMapSizeKb'
178
+ ]))
260
179
  ],
261
180
  'PROVER NODE': [
262
181
  {
263
182
  flag: '--prover-node',
264
183
  description: 'Starts Aztec Prover Node with options',
265
184
  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'
185
+ env: undefined
273
186
  },
274
187
  ...getOptions('proverNode', omitConfigMappings(proverNodeConfigMappings, [
275
188
  // filter out options passed separately
276
- ...Object.keys(archiverConfigMappings),
277
- ...Object.keys(proverBrokerConfigMappings),
278
- ...Object.keys(proverAgentConfigMappings)
189
+ ...getKeys(archiverConfigMappings),
190
+ ...getKeys(proverBrokerConfigMappings),
191
+ ...getKeys(proverAgentConfigMappings),
192
+ ...getKeys(p2pConfigMappings),
193
+ ...getKeys(worldStateConfigMappings),
194
+ ...getKeys(sharedNodeConfigMappings)
279
195
  ]))
280
196
  ],
281
197
  'PROVER BROKER': [
@@ -283,7 +199,7 @@ export const aztecStartOptions = {
283
199
  flag: '--prover-broker',
284
200
  description: 'Starts Aztec proving job broker',
285
201
  defaultValue: undefined,
286
- envVar: undefined
202
+ env: undefined
287
203
  },
288
204
  ...getOptions('proverBroker', // filter out archiver options from prover node options as they're passed separately in --archiver
289
205
  proverBrokerConfigMappings)
@@ -293,56 +209,61 @@ export const aztecStartOptions = {
293
209
  flag: '--prover-agent',
294
210
  description: 'Starts Aztec Prover Agent with options',
295
211
  defaultValue: undefined,
296
- envVar: undefined
212
+ env: undefined
297
213
  },
298
214
  ...getOptions('proverAgent', proverAgentConfigMappings)
299
215
  ],
216
+ 'P2P SUBSYSTEM': [
217
+ {
218
+ flag: '--p2p-enabled [value]',
219
+ description: 'Enable P2P subsystem',
220
+ env: 'P2P_ENABLED',
221
+ ...booleanConfigHelper()
222
+ },
223
+ ...getOptions('p2p', p2pConfigMappings)
224
+ ],
300
225
  'P2P BOOTSTRAP': [
301
226
  {
302
227
  flag: '--p2p-bootstrap',
303
228
  description: 'Starts Aztec P2P Bootstrap with options',
304
229
  defaultValue: undefined,
305
- envVar: undefined
306
- },
307
- ...getOptions('p2pBootstrap', bootnodeConfigMappings)
230
+ env: undefined
231
+ },
232
+ ...getOptions('p2pBootstrap', omitConfigMappings(bootnodeConfigMappings, [
233
+ 'p2pIp',
234
+ 'p2pPort',
235
+ 'peerIdPrivateKey',
236
+ 'bootstrapNodes',
237
+ 'listenAddress'
238
+ ]))
239
+ ],
240
+ TELEMETRY: [
241
+ ...getOptions('tel', telemetryClientConfigMappings)
308
242
  ],
309
243
  BOT: [
310
244
  {
311
245
  flag: '--bot',
312
246
  description: 'Starts Aztec Bot with options',
313
247
  defaultValue: undefined,
314
- envVar: undefined
248
+ env: undefined
315
249
  },
316
250
  ...getOptions('bot', botConfigMappings)
317
251
  ],
252
+ PXE: [
253
+ {
254
+ flag: '--pxe',
255
+ description: 'Starts Aztec PXE with options',
256
+ defaultValue: undefined,
257
+ env: undefined
258
+ },
259
+ ...getOptions('pxe', allPxeConfigMappings)
260
+ ],
318
261
  TXE: [
319
262
  {
320
263
  flag: '--txe',
321
264
  description: 'Starts Aztec TXE with options',
322
265
  defaultValue: undefined,
323
- envVar: undefined
266
+ env: undefined
324
267
  }
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
268
  ]
348
269
  };
package/dest/cli/cli.d.ts CHANGED
@@ -6,4 +6,4 @@ import { Command } from 'commander';
6
6
  * @param debugLogger - logger for logging debug messages.
7
7
  */
8
8
  export declare function injectAztecCommands(program: Command, userLog: LogFn, debugLogger: Logger): Command;
9
- //# sourceMappingURL=cli.d.ts.map
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUtwQzs7OztHQUlHO0FBQ0gsd0JBQWdCLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0E0Q2xHIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAmClG"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CA4ClG"}
package/dest/cli/cli.js CHANGED
@@ -20,14 +20,19 @@ import { addOptions, printAztecStartHelpText } from './util.js';
20
20
  program.configureHelp({
21
21
  sortSubcommands: true
22
22
  });
23
- program.addHelpText('after', `
23
+ if (process.env.AZTEC_SHELL_WRAPPER) {
24
+ program.addHelpText('after', `
25
+ Additional commands:
24
26
 
25
- Additional commands:
26
-
27
- test [options]: starts a dockerized TXE node via
28
- $ aztec start --txe
29
- then runs
30
- $ aztec-nargo test --silence-warnings --oracle-resolver=<TXE_ADDRESS> [options]
27
+ init [folder] [options] creates a new Aztec Noir project.
28
+ new <path> [options] creates a new Aztec Noir project in a new directory.
29
+ compile [options] compiles Aztec Noir contracts.
30
+ test [options] starts a TXE and runs "nargo test" using it as the oracle resolver.
31
31
  `);
32
+ }
33
+ program.command('preload-crs').description('Preload the points data needed for proving and verifying').action(async (options)=>{
34
+ const { preloadCrs } = await import('./preload_crs.js');
35
+ return await preloadCrs(options, userLog, debugLogger);
36
+ });
32
37
  return program;
33
38
  }
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function injectMigrateCommand(program: Command, log: (msg: string) => void): Command;
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0ZV9oYV9kYi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL21pZ3JhdGVfaGFfZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpDLHdCQUFnQixvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEtBQUssSUFBSSxHQUFHLE9BQU8sQ0FzQzFGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate_ha_db.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/migrate_ha_db.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAsC1F"}
@@ -0,0 +1,27 @@
1
+ import { runMigrations } from '@aztec/validator-ha-signer/migrations';
2
+ export function injectMigrateCommand(program, log) {
3
+ const migrateCommand = program.command('migrate-ha-db').description('Run validator-ha-signer database migrations');
4
+ migrateCommand.command('up').description('Apply pending migrations').requiredOption('--database-url <string>', 'PostgreSQL connection string', process.env.DATABASE_URL).option('--verbose', 'Enable verbose output', false).action(async (options)=>{
5
+ const migrations = await runMigrations(options.databaseUrl, {
6
+ direction: 'up',
7
+ verbose: options.verbose
8
+ });
9
+ if (migrations.length > 0) {
10
+ log(`Applied migrations: ${migrations.join(', ')}`);
11
+ } else {
12
+ log('No migrations to apply - schema is up to date');
13
+ }
14
+ });
15
+ migrateCommand.command('down').description('Rollback the last migration').requiredOption('--database-url <string>', 'PostgreSQL connection string', process.env.DATABASE_URL).option('--verbose', 'Enable verbose output', false).action(async (options)=>{
16
+ const migrations = await runMigrations(options.databaseUrl, {
17
+ direction: 'down',
18
+ verbose: options.verbose
19
+ });
20
+ if (migrations.length > 0) {
21
+ log(`Rolled back migrations: ${migrations.join(', ')}`);
22
+ } else {
23
+ log('No migrations to rollback');
24
+ }
25
+ });
26
+ return program;
27
+ }
@@ -6,4 +6,4 @@ export type { ArchiverConfig, DataStoreConfig };
6
6
  export declare function startArchiver(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers): Promise<{
7
7
  config: ArchiverConfig & DataStoreConfig;
8
8
  }>;
9
- //# sourceMappingURL=start_archiver.d.ts.map
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfYXJjaGl2ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGkvY21kcy9zdGFydF9hcmNoaXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQW9FLE1BQU0saUJBQWlCLENBQUM7QUFJeEgsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0sd0JBQXdCLENBQUM7QUFNbEYsWUFBWSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsQ0FBQztBQUVoRCxvQ0FBb0M7QUFDcEMsd0JBQXNCLGFBQWEsQ0FDakMsT0FBTyxFQUFFLEdBQUcsRUFDWixjQUFjLEVBQUUsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQ3ZDLFFBQVEsRUFBRSxxQkFBcUIsR0FDOUIsT0FBTyxDQUFDO0lBQUUsTUFBTSxFQUFFLGNBQWMsR0FBRyxlQUFlLENBQUE7Q0FBRSxDQUFDLENBK0J2RCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"start_archiver.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_archiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAA+C,MAAM,iBAAiB,CAAC;AAG7G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAQlF,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AAEhD,oCAAoC;AACpC,wBAAsB,aAAa,CACjC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC;IAAE,MAAM,EAAE,cAAc,GAAG,eAAe,CAAA;CAAE,CAAC,CAmCvD"}
1
+ {"version":3,"file":"start_archiver.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_archiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAoE,MAAM,iBAAiB,CAAC;AAIxH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAMlF,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AAEhD,oCAAoC;AACpC,wBAAsB,aAAa,CACjC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC;IAAE,MAAM,EAAE,cAAc,GAAG,eAAe,CAAA;CAAE,CAAC,CA+BvD"}
@@ -1,36 +1,42 @@
1
- import { Archiver, KVArchiverDataStore, archiverConfigMappings } from '@aztec/archiver';
2
- import { createLogger } from '@aztec/aztec.js';
3
- import { createBlobSinkClient } from '@aztec/blob-sink/client';
1
+ import { archiverConfigMappings, createArchiver, getArchiverConfigFromEnv } from '@aztec/archiver';
2
+ import { createLogger } from '@aztec/aztec.js/log';
3
+ import { blobClientConfigMapping, createBlobClient } from '@aztec/blob-client/client';
4
+ import { getL1Config } from '@aztec/cli/config';
4
5
  import { dataConfigMappings } from '@aztec/kv-store/config';
5
- import { createStore } from '@aztec/kv-store/lmdb-v2';
6
6
  import { ArchiverApiSchema } from '@aztec/stdlib/interfaces/server';
7
7
  import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
8
- import { getL1Config } from '../get_l1_config.js';
9
8
  import { extractRelevantOptions } from '../util.js';
10
9
  /** Starts a standalone archiver. */ export async function startArchiver(options, signalHandlers, services) {
11
- let archiverConfig = extractRelevantOptions(options, {
10
+ const envConfig = getArchiverConfigFromEnv();
11
+ const cliOptions = extractRelevantOptions(options, {
12
12
  ...archiverConfigMappings,
13
- ...dataConfigMappings
13
+ ...dataConfigMappings,
14
+ ...blobClientConfigMapping
14
15
  }, 'archiver');
16
+ let archiverConfig = {
17
+ ...envConfig,
18
+ ...cliOptions
19
+ };
20
+ archiverConfig.dataStoreMapSizeKb = archiverConfig.archiverStoreMapSizeKb ?? archiverConfig.dataStoreMapSizeKb;
15
21
  if (!archiverConfig.l1Contracts.registryAddress || archiverConfig.l1Contracts.registryAddress.isZero()) {
16
22
  throw new Error('L1 registry address is required to start an Archiver');
17
23
  }
18
- const { addresses, config } = await getL1Config(archiverConfig.l1Contracts.registryAddress, archiverConfig.l1RpcUrls, archiverConfig.l1ChainId);
24
+ const { addresses, config: l1Config } = await getL1Config(archiverConfig.l1Contracts.registryAddress, archiverConfig.l1RpcUrls, archiverConfig.l1ChainId);
19
25
  archiverConfig.l1Contracts = addresses;
20
26
  archiverConfig = {
21
27
  ...archiverConfig,
22
- ...config
28
+ ...l1Config
23
29
  };
24
- const storeLog = createLogger('archiver:lmdb');
25
- const store = await createStore('archiver', KVArchiverDataStore.SCHEMA_VERSION, archiverConfig, storeLog);
26
- const archiverStore = new KVArchiverDataStore(store, archiverConfig.maxLogs);
27
- const telemetry = initTelemetryClient(getTelemetryClientConfig());
28
- // TODO(https://github.com/AztecProtocol/aztec-packages/issues/10056): place CL url in config here
29
- const blobSinkClient = createBlobSinkClient();
30
- const archiver = await Archiver.createAndSync(archiverConfig, archiverStore, {
30
+ const telemetry = await initTelemetryClient(getTelemetryClientConfig());
31
+ const blobClient = createBlobClient(archiverConfig, {
32
+ logger: createLogger('archiver:blob-client:client')
33
+ });
34
+ const archiver = await createArchiver(archiverConfig, {
31
35
  telemetry,
32
- blobSinkClient
33
- }, true);
36
+ blobClient
37
+ }, {
38
+ blockUntilSync: true
39
+ });
34
40
  services.archiver = [
35
41
  archiver,
36
42
  ArchiverApiSchema