@aztec/aztec 0.0.1-commit.ffe5b04ea → 0.0.1-commit.fff30aa

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 (68) hide show
  1. package/dest/cli/aztec_start_action.d.ts +1 -1
  2. package/dest/cli/aztec_start_action.d.ts.map +1 -1
  3. package/dest/cli/aztec_start_action.js +23 -7
  4. package/dest/cli/aztec_start_options.d.ts +1 -1
  5. package/dest/cli/aztec_start_options.d.ts.map +1 -1
  6. package/dest/cli/aztec_start_options.js +14 -1
  7. package/dest/cli/cmds/compile.d.ts +1 -1
  8. package/dest/cli/cmds/compile.d.ts.map +1 -1
  9. package/dest/cli/cmds/compile.js +9 -1
  10. package/dest/cli/cmds/profile_flamegraph.d.ts +1 -1
  11. package/dest/cli/cmds/profile_flamegraph.d.ts.map +1 -1
  12. package/dest/cli/cmds/profile_flamegraph.js +2 -1
  13. package/dest/cli/cmds/profile_gates.d.ts +1 -1
  14. package/dest/cli/cmds/profile_gates.d.ts.map +1 -1
  15. package/dest/cli/cmds/profile_gates.js +2 -1
  16. package/dest/cli/cmds/standby.d.ts +10 -5
  17. package/dest/cli/cmds/standby.d.ts.map +1 -1
  18. package/dest/cli/cmds/standby.js +33 -14
  19. package/dest/cli/cmds/start_archiver.d.ts +2 -2
  20. package/dest/cli/cmds/start_archiver.d.ts.map +1 -1
  21. package/dest/cli/cmds/start_archiver.js +1 -1
  22. package/dest/cli/cmds/start_node.d.ts +1 -1
  23. package/dest/cli/cmds/start_node.d.ts.map +1 -1
  24. package/dest/cli/cmds/start_node.js +10 -16
  25. package/dest/cli/cmds/start_prover_agent.d.ts +1 -1
  26. package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -1
  27. package/dest/cli/cmds/start_prover_agent.js +3 -15
  28. package/dest/cli/cmds/start_prover_broker.d.ts +1 -1
  29. package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
  30. package/dest/cli/cmds/start_prover_broker.js +7 -1
  31. package/dest/cli/cmds/utils/collect_crate_dirs.d.ts +21 -0
  32. package/dest/cli/cmds/utils/collect_crate_dirs.d.ts.map +1 -0
  33. package/dest/cli/cmds/utils/collect_crate_dirs.js +114 -0
  34. package/dest/cli/cmds/utils/needs_recompile.d.ts +10 -0
  35. package/dest/cli/cmds/utils/needs_recompile.d.ts.map +1 -0
  36. package/dest/cli/cmds/utils/needs_recompile.js +90 -0
  37. package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.d.ts +4 -0
  38. package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.d.ts.map +1 -0
  39. package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.js +62 -0
  40. package/dest/cli/util.js +3 -3
  41. package/dest/testing/anvil_test_watcher.d.ts +1 -1
  42. package/dest/testing/anvil_test_watcher.d.ts.map +1 -1
  43. package/dest/testing/anvil_test_watcher.js +36 -10
  44. package/dest/testing/cheat_codes.d.ts +11 -15
  45. package/dest/testing/cheat_codes.d.ts.map +1 -1
  46. package/dest/testing/cheat_codes.js +34 -32
  47. package/dest/testing/epoch_test_settler.d.ts +1 -1
  48. package/dest/testing/epoch_test_settler.d.ts.map +1 -1
  49. package/dest/testing/epoch_test_settler.js +3 -4
  50. package/package.json +35 -34
  51. package/scripts/aztec.sh +5 -1
  52. package/src/cli/aztec_start_action.ts +12 -7
  53. package/src/cli/aztec_start_options.ts +14 -1
  54. package/src/cli/cmds/compile.ts +11 -1
  55. package/src/cli/cmds/profile_flamegraph.ts +2 -1
  56. package/src/cli/cmds/profile_gates.ts +2 -1
  57. package/src/cli/cmds/standby.ts +37 -16
  58. package/src/cli/cmds/start_archiver.ts +1 -1
  59. package/src/cli/cmds/start_node.ts +15 -8
  60. package/src/cli/cmds/start_prover_agent.ts +3 -6
  61. package/src/cli/cmds/start_prover_broker.ts +8 -1
  62. package/src/cli/cmds/utils/collect_crate_dirs.ts +118 -0
  63. package/src/cli/cmds/utils/needs_recompile.ts +98 -0
  64. package/src/cli/cmds/utils/warn_if_aztec_version_mismatch.ts +77 -0
  65. package/src/cli/util.ts +2 -2
  66. package/src/testing/anvil_test_watcher.ts +33 -10
  67. package/src/testing/cheat_codes.ts +42 -36
  68. package/src/testing/epoch_test_settler.ts +3 -4
@@ -1,3 +1,3 @@
1
1
  import type { LogFn, Logger } from '@aztec/foundation/log';
2
2
  export declare function aztecStart(options: any, userLog: LogFn, debugLogger: Logger): Promise<void>;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfc3RhcnRfYWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2F6dGVjX3N0YXJ0X2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFhM0Qsd0JBQXNCLFVBQVUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBeUlqRiJ9
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfc3RhcnRfYWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2F6dGVjX3N0YXJ0X2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFhM0Qsd0JBQXNCLFVBQVUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBOElqRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"aztec_start_action.d.ts","sourceRoot":"","sources":["../../src/cli/aztec_start_action.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAa3D,wBAAsB,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,iBAyIjF"}
1
+ {"version":3,"file":"aztec_start_action.d.ts","sourceRoot":"","sources":["../../src/cli/aztec_start_action.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAa3D,wBAAsB,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,iBA8IjF"}
@@ -1,6 +1,6 @@
1
1
  import { getActiveNetworkName } from '@aztec/foundation/config';
2
2
  import { createNamespacedSafeJsonRpcServer, getApiKeyAuthMiddleware, startHttpRpcServer } from '@aztec/foundation/json-rpc/server';
3
- import { AztecNodeApiSchema } from '@aztec/stdlib/interfaces/client';
3
+ import { AztecNodeAdminApiSchema, AztecNodeApiSchema, AztecNodeDebugApiSchema } from '@aztec/stdlib/interfaces/client';
4
4
  import { getPackageVersion } from '@aztec/stdlib/update-checker';
5
5
  import { getVersioningMiddleware } from '@aztec/stdlib/versioning';
6
6
  import { getOtelJsonRpcPropagationMiddleware } from '@aztec/telemetry-client';
@@ -14,13 +14,12 @@ export async function aztecStart(options, userLog, debugLogger) {
14
14
  const signalHandlers = [];
15
15
  const services = {};
16
16
  const adminServices = {};
17
+ const packageVersion = getPackageVersion();
17
18
  let config = undefined;
18
19
  if (options.localNetwork) {
19
- const cliVersion = getPackageVersion() ?? 'unknown';
20
- const localNetwork = extractNamespacedOptions(options, 'local-network');
21
- localNetwork.testAccounts = true;
20
+ const localNetwork = extractNamespacedOptions(options, 'localNetwork');
22
21
  userLog(`${splash}\n${github}\n\n`);
23
- userLog(`Setting up Aztec local network ${cliVersion}, please stand by...`);
22
+ userLog(`Setting up Aztec local network ${packageVersion ?? 'unknown'}, please stand by...`);
24
23
  const { node, stop } = await createLocalNetwork({
25
24
  l1Mnemonic: localNetwork.l1Mnemonic,
26
25
  l1RpcUrls: options.l1RpcUrls,
@@ -38,6 +37,14 @@ export async function aztecStart(options, userLog, debugLogger) {
38
37
  node,
39
38
  AztecNodeApiSchema
40
39
  ];
40
+ adminServices.node = [
41
+ node,
42
+ AztecNodeAdminApiSchema
43
+ ];
44
+ services.nodeDebug = [
45
+ node,
46
+ AztecNodeDebugApiSchema
47
+ ];
41
48
  } else {
42
49
  // Route --prover-node through startNode
43
50
  if (options.proverNode && !options.node) {
@@ -47,6 +54,12 @@ export async function aztecStart(options, userLog, debugLogger) {
47
54
  const { startNode } = await import('./cmds/start_node.js');
48
55
  const networkName = getActiveNetworkName(options.network);
49
56
  ({ config } = await startNode(options, signalHandlers, services, adminServices, userLog, networkName));
57
+ if (options.nodeDebug && services.node) {
58
+ services.nodeDebug = [
59
+ services.node[0],
60
+ AztecNodeDebugApiSchema
61
+ ];
62
+ }
50
63
  } else if (options.bot) {
51
64
  const { startBot } = await import('./cmds/start_bot.js');
52
65
  await startBot(options, signalHandlers, services, userLog);
@@ -75,6 +88,9 @@ export async function aztecStart(options, userLog, debugLogger) {
75
88
  }
76
89
  installSignalHandlers(debugLogger.info, signalHandlers);
77
90
  const versions = getVersions(config);
91
+ const versioningOpts = {
92
+ packageVersion
93
+ };
78
94
  // Start the main JSON-RPC server
79
95
  if (Object.entries(services).length > 0) {
80
96
  const rpcServer = createNamespacedSafeJsonRpcServer(services, {
@@ -82,7 +98,7 @@ export async function aztecStart(options, userLog, debugLogger) {
82
98
  log: debugLogger,
83
99
  middlewares: [
84
100
  getOtelJsonRpcPropagationMiddleware(),
85
- getVersioningMiddleware(versions)
101
+ getVersioningMiddleware(versions, versioningOpts)
86
102
  ],
87
103
  maxBatchSize: options.rpcMaxBatchSize,
88
104
  maxBodySizeBytes: options.rpcMaxBodySize
@@ -96,7 +112,7 @@ export async function aztecStart(options, userLog, debugLogger) {
96
112
  if (Object.entries(adminServices).length > 0) {
97
113
  const adminMiddlewares = [
98
114
  getOtelJsonRpcPropagationMiddleware(),
99
- getVersioningMiddleware(versions)
115
+ getVersioningMiddleware(versions, versioningOpts)
100
116
  ];
101
117
  // Resolve the admin API key (auto-generated and persisted, or opt-out)
102
118
  const apiKeyResolution = await resolveAdminApiKey({
@@ -14,4 +14,4 @@ export declare const NETWORK_FLAG = "network";
14
14
  export declare const aztecStartOptions: {
15
15
  [key: string]: AztecStartOption[];
16
16
  };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfc3RhcnRfb3B0aW9ucy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS9henRlY19zdGFydF9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFDTCxLQUFLLGFBQWEsRUFDbEIsS0FBSyxNQUFNLEVBSVosTUFBTSwwQkFBMEIsQ0FBQztBQWVsQyxNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLFlBQVksRUFBRSxHQUFHLENBQUM7SUFDbEIsWUFBWSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLE1BQU0sQ0FBQztJQUNwQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUN4QixRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNwQixRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEtBQUssR0FBRyxDQUFDO0NBQ2pDO0FBRUQsZUFBTyxNQUFNLFVBQVUsMEZBb0J0QixDQUFDO0FBdUJGLGVBQU8sTUFBTSxnQkFBZ0IsVUFZNUIsQ0FBQztBQUVGLGVBQU8sTUFBTSxZQUFZLFlBQVksQ0FBQztBQUd0QyxlQUFPLE1BQU0saUJBQWlCLEVBQUU7SUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQTtDQXNPbEUsQ0FBQyJ9
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfc3RhcnRfb3B0aW9ucy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS9henRlY19zdGFydF9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFDTCxLQUFLLGFBQWEsRUFDbEIsS0FBSyxNQUFNLEVBSVosTUFBTSwwQkFBMEIsQ0FBQztBQWVsQyxNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLFlBQVksRUFBRSxHQUFHLENBQUM7SUFDbEIsWUFBWSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLE1BQU0sQ0FBQztJQUNwQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUN4QixRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNwQixRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEtBQUssR0FBRyxDQUFDO0NBQ2pDO0FBRUQsZUFBTyxNQUFNLFVBQVUsMEZBb0J0QixDQUFDO0FBdUJGLGVBQU8sTUFBTSxnQkFBZ0IsVUFZNUIsQ0FBQztBQUVGLGVBQU8sTUFBTSxZQUFZLFlBQVksQ0FBQztBQUd0QyxlQUFPLE1BQU0saUJBQWlCLEVBQUU7SUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQTtDQW1QbEUsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"aztec_start_options.d.ts","sourceRoot":"","sources":["../../src/cli/aztec_start_options.ts"],"names":[],"mappings":"AAOA,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,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IACpC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;CACjC;AAED,eAAO,MAAM,UAAU,0FAoBtB,CAAC;AAuBF,eAAO,MAAM,gBAAgB,UAY5B,CAAC;AAEF,eAAO,MAAM,YAAY,YAAY,CAAC;AAGtC,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAsOlE,CAAC"}
1
+ {"version":3,"file":"aztec_start_options.d.ts","sourceRoot":"","sources":["../../src/cli/aztec_start_options.ts"],"names":[],"mappings":"AAOA,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,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IACpC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;CACjC;AAED,eAAO,MAAM,UAAU,0FAoBtB,CAAC;AAuBF,eAAO,MAAM,gBAAgB,UAY5B,CAAC;AAEF,eAAO,MAAM,YAAY,YAAY,CAAC;AAGtC,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAmPlE,CAAC"}
@@ -6,6 +6,7 @@ import { l1ContractAddressesMapping } from '@aztec/ethereum/l1-contract-addresse
6
6
  import { l1ReaderConfigMappings } from '@aztec/ethereum/l1-reader';
7
7
  import { getKeys } from '@aztec/foundation/collection';
8
8
  import { booleanConfigHelper, isBooleanConfigValue, omitConfigMappings } from '@aztec/foundation/config';
9
+ import { dataConfigMappings } from '@aztec/kv-store/config';
9
10
  import { sharedNodeConfigMappings } from '@aztec/node-lib/config';
10
11
  import { bootnodeConfigMappings, p2pConfigMappings } from '@aztec/p2p/config';
11
12
  import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker/config';
@@ -13,7 +14,6 @@ import { proverNodeConfigMappings } from '@aztec/prover-node/config';
13
14
  import { allPxeConfigMappings } from '@aztec/pxe/config';
14
15
  import { sequencerClientConfigMappings } from '@aztec/sequencer-client/config';
15
16
  import { chainConfigMappings, nodeRpcConfigMappings } from '@aztec/stdlib/config';
16
- import { dataConfigMappings } from '@aztec/stdlib/kv-store';
17
17
  import { telemetryClientConfigMappings } from '@aztec/telemetry-client/config';
18
18
  import { worldStateConfigMappings } from '@aztec/world-state/config';
19
19
  import { DefaultMnemonic } from '../mnemonic.js';
@@ -93,6 +93,12 @@ export const aztecStartOptions = {
93
93
  description: 'Mnemonic for L1 accounts. Will be used ',
94
94
  defaultValue: DefaultMnemonic,
95
95
  env: 'MNEMONIC'
96
+ },
97
+ {
98
+ flag: '--local-network.testAccounts',
99
+ description: 'Deploy test accounts on local network start',
100
+ env: 'TEST_ACCOUNTS',
101
+ ...booleanConfigHelper(true)
96
102
  }
97
103
  ],
98
104
  API: [
@@ -131,6 +137,13 @@ export const aztecStartOptions = {
131
137
  env: 'AZTEC_RESET_ADMIN_API_KEY',
132
138
  parseVal: (val)=>val === 'true' || val === '1'
133
139
  },
140
+ {
141
+ flag: '--node-debug',
142
+ description: 'Expose debug endpoints (e.g. mineBlock) on the main RPC port',
143
+ defaultValue: false,
144
+ env: 'AZTEC_NODE_DEBUG',
145
+ parseVal: (val)=>val === undefined || val === 'true' || val === '1'
146
+ },
134
147
  {
135
148
  flag: '--api-prefix <value>',
136
149
  description: 'Prefix for API routes on any service that is started',
@@ -1,4 +1,4 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  import type { Command } from 'commander';
3
3
  export declare function injectCompileCommand(program: Command, log: LogFn): Command;
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL2NvbXBpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHbkQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBOEp6Qyx3QkFBZ0Isb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLE9BQU8sQ0FzQjFFIn0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL2NvbXBpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHbkQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBdUt6Qyx3QkFBZ0Isb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLE9BQU8sQ0FzQjFFIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/compile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8JzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAsB1E"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/compile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuKzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAsB1E"}
@@ -1,8 +1,11 @@
1
+ import { findBbBinary } from '@aztec/bb.js';
1
2
  import { execFileSync } from 'child_process';
2
3
  import { readFile, writeFile } from 'fs/promises';
3
4
  import { join } from 'path';
4
5
  import { readArtifactFiles } from './utils/artifacts.js';
6
+ import { needsRecompile } from './utils/needs_recompile.js';
5
7
  import { run } from './utils/spawn.js';
8
+ import { warnIfAztecVersionMismatch } from './utils/warn_if_aztec_version_mismatch.js';
6
9
  /** Returns paths to contract artifacts in the target directory. */ async function collectContractArtifacts() {
7
10
  let files;
8
11
  try {
@@ -116,8 +119,13 @@ import { run } from './utils/spawn.js';
116
119
  }
117
120
  }
118
121
  /** Compiles Aztec Noir contracts and postprocesses artifacts. */ async function compileAztecContract(nargoArgs, log) {
122
+ await warnIfAztecVersionMismatch(log);
123
+ if (!await needsRecompile()) {
124
+ log('No source changes detected, skipping compilation.');
125
+ return;
126
+ }
119
127
  const nargo = process.env.NARGO ?? 'nargo';
120
- const bb = process.env.BB ?? 'bb';
128
+ const bb = process.env.BB ?? findBbBinary() ?? 'bb';
121
129
  await run(nargo, [
122
130
  'compile',
123
131
  ...nargoArgs
@@ -1,4 +1,4 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  /** Generates a gate count flamegraph SVG for a single contract function. */
3
3
  export declare function profileFlamegraph(artifactPath: string, functionName: string, log: LogFn): Promise<void>;
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZV9mbGFtZWdyYXBoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NtZHMvcHJvZmlsZV9mbGFtZWdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBU25ELDRFQUE0RTtBQUM1RSx3QkFBc0IsaUJBQWlCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQW9EN0cifQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZV9mbGFtZWdyYXBoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NtZHMvcHJvZmlsZV9mbGFtZWdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBU25ELDRFQUE0RTtBQUM1RSx3QkFBc0IsaUJBQWlCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQW9EN0cifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"profile_flamegraph.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/profile_flamegraph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AASnD,4EAA4E;AAC5E,wBAAsB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD7G"}
1
+ {"version":3,"file":"profile_flamegraph.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/profile_flamegraph.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AASnD,4EAA4E;AAC5E,wBAAsB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD7G"}
@@ -1,3 +1,4 @@
1
+ import { findBbBinary } from '@aztec/bb.js';
1
2
  import { readFile, rename, rm, writeFile } from 'fs/promises';
2
3
  import { basename, dirname, join } from 'path';
3
4
  import { makeFunctionArtifact } from './profile_utils.js';
@@ -22,7 +23,7 @@ import { run } from './utils/spawn.js';
22
23
  try {
23
24
  await writeFile(functionArtifact, makeFunctionArtifact(artifact, func));
24
25
  const profiler = process.env.PROFILER_PATH ?? 'noir-profiler';
25
- const bb = process.env.BB ?? 'bb';
26
+ const bb = process.env.BB ?? findBbBinary() ?? 'bb';
26
27
  await run(profiler, [
27
28
  'gates',
28
29
  '--artifact-path',
@@ -1,4 +1,4 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  /** Profiles all compiled artifacts in a target directory and prints gate counts. */
3
3
  export declare function profileGates(targetDir: string, log: LogFn): Promise<void>;
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZV9nYXRlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3Byb2ZpbGVfZ2F0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUErQm5ELG9GQUFvRjtBQUNwRix3QkFBc0IsWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBaUMvRSJ9
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZV9nYXRlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3Byb2ZpbGVfZ2F0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUErQm5ELG9GQUFvRjtBQUNwRix3QkFBc0IsWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBaUMvRSJ9
@@ -1 +1 @@
1
- {"version":3,"file":"profile_gates.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/profile_gates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AA+BnD,oFAAoF;AACpF,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC/E"}
1
+ {"version":3,"file":"profile_gates.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/profile_gates.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AA+BnD,oFAAoF;AACpF,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC/E"}
@@ -1,3 +1,4 @@
1
+ import { findBbBinary } from '@aztec/bb.js';
1
2
  import { asyncPool } from '@aztec/foundation/async-pool';
2
3
  import { execFile as execFileCb } from 'child_process';
3
4
  import { rm } from 'fs/promises';
@@ -23,7 +24,7 @@ const execFile = promisify(execFileCb);
23
24
  return parseGateCount(stdout);
24
25
  }
25
26
  /** Profiles all compiled artifacts in a target directory and prints gate counts. */ export async function profileGates(targetDir, log) {
26
- const bb = process.env.BB ?? 'bb';
27
+ const bb = process.env.BB ?? findBbBinary() ?? 'bb';
27
28
  const { artifacts, tmpDir } = await discoverArtifacts(targetDir);
28
29
  if (artifacts.length === 0) {
29
30
  log('No artifacts found in target directory.');
@@ -12,9 +12,10 @@ export declare function computeExpectedGenesisRoot(config: GenesisStateConfig, u
12
12
  prefilledPublicData: import("@aztec/stdlib/trees").PublicDataTreeLeaf[];
13
13
  }>;
14
14
  /**
15
- * Waits until the canonical rollup's genesis archive root matches the expected local genesis root.
16
- * If the rollup is not yet compatible (e.g. during L1 contract upgrades), enters standby mode:
17
- * starts a lightweight HTTP server for K8s liveness probes and polls every 60s until a compatible rollup appears.
15
+ * Waits until the canonical rollup's genesis archive root, VK tree root, and protocol contracts hash
16
+ * all match the expected local values. If the rollup is not yet compatible (e.g. during L1 contract upgrades),
17
+ * enters standby mode: starts a lightweight HTTP server for K8s liveness probes and polls every 60s
18
+ * until a compatible rollup appears.
18
19
  */
19
20
  export declare function waitForCompatibleRollup(config: {
20
21
  l1RpcUrls: string[];
@@ -23,5 +24,9 @@ export declare function waitForCompatibleRollup(config: {
23
24
  registryAddress: EthAddress;
24
25
  };
25
26
  rollupVersion?: number;
26
- }, expectedGenesisRoot: Fr, port: number | undefined, userLog: LogFn): Promise<void>;
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRieS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YW5kYnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHakQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVqRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVNuRDs7OztHQUlHO0FBQ0gsd0JBQXNCLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsS0FBSzs7O0dBYTFGO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFzQix1QkFBdUIsQ0FDM0MsTUFBTSxFQUFFO0lBQ04sU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3BCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsV0FBVyxFQUFFO1FBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQTtLQUFFLENBQUM7SUFDN0MsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ3hCLEVBQ0QsbUJBQW1CLEVBQUUsRUFBRSxFQUN2QixJQUFJLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDeEIsT0FBTyxFQUFFLEtBQUssR0FDYixPQUFPLENBQUMsSUFBSSxDQUFDLENBMERmIn0=
27
+ }, expected: {
28
+ genesisArchiveRoot: Fr;
29
+ vkTreeRoot: Fr;
30
+ protocolContractsHash: Fr;
31
+ }, port: number | undefined, userLog: LogFn): Promise<void>;
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRieS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YW5kYnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHakQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVqRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVNuRDs7OztHQUlHO0FBQ0gsd0JBQXNCLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsS0FBSzs7O0dBYTFGO0FBd0JEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLHVCQUF1QixDQUMzQyxNQUFNLEVBQUU7SUFDTixTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDcEIsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixXQUFXLEVBQUU7UUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFBO0tBQUUsQ0FBQztJQUM3QyxhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDeEIsRUFDRCxRQUFRLEVBQUU7SUFBRSxrQkFBa0IsRUFBRSxFQUFFLENBQUM7SUFBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO0lBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFBO0NBQUUsRUFDL0UsSUFBSSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQ3hCLE9BQU8sRUFBRSxLQUFLLEdBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQXdEZiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"standby.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/standby.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAGjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AASnD;;;;GAIG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK;;;GAa1F;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE;IACN,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE;QAAE,eAAe,EAAE,UAAU,CAAA;KAAE,CAAC;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,EACD,mBAAmB,EAAE,EAAE,EACvB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,KAAK,GACb,OAAO,CAAC,IAAI,CAAC,CA0Df"}
1
+ {"version":3,"file":"standby.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/standby.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAGjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AASnD;;;;GAIG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK;;;GAa1F;AAwBD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE;IACN,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE;QAAE,eAAe,EAAE,UAAU,CAAA;KAAE,CAAC;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,EACD,QAAQ,EAAE;IAAE,kBAAkB,EAAE,EAAE,CAAC;IAAC,UAAU,EAAE,EAAE,CAAC;IAAC,qBAAqB,EAAE,EAAE,CAAA;CAAE,EAC/E,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,KAAK,GACb,OAAO,CAAC,IAAI,CAAC,CAwDf"}
@@ -27,26 +27,45 @@ const ROLLUP_POLL_INTERVAL_S = 60;
27
27
  prefilledPublicData
28
28
  };
29
29
  }
30
+ async function checkRollupCompatibility(rollup, expected) {
31
+ const mismatches = [];
32
+ const [l1Genesis, l1Vk, l1Protocol] = await Promise.all([
33
+ rollup.getGenesisArchiveTreeRoot(),
34
+ rollup.getVkTreeRoot(),
35
+ rollup.getProtocolContractsHash()
36
+ ]);
37
+ if (!l1Genesis.equals(expected.genesisArchiveRoot)) {
38
+ mismatches.push(`genesis archive root (expected ${expected.genesisArchiveRoot}, got ${l1Genesis})`);
39
+ }
40
+ if (!l1Vk.equals(expected.vkTreeRoot)) {
41
+ mismatches.push(`VK tree root (expected ${expected.vkTreeRoot}, got ${l1Vk})`);
42
+ }
43
+ if (!l1Protocol.equals(expected.protocolContractsHash)) {
44
+ mismatches.push(`protocol contracts hash (expected ${expected.protocolContractsHash}, got ${l1Protocol})`);
45
+ }
46
+ return mismatches;
47
+ }
30
48
  /**
31
- * Waits until the canonical rollup's genesis archive root matches the expected local genesis root.
32
- * If the rollup is not yet compatible (e.g. during L1 contract upgrades), enters standby mode:
33
- * starts a lightweight HTTP server for K8s liveness probes and polls every 60s until a compatible rollup appears.
34
- */ export async function waitForCompatibleRollup(config, expectedGenesisRoot, port, userLog) {
49
+ * Waits until the canonical rollup's genesis archive root, VK tree root, and protocol contracts hash
50
+ * all match the expected local values. If the rollup is not yet compatible (e.g. during L1 contract upgrades),
51
+ * enters standby mode: starts a lightweight HTTP server for K8s liveness probes and polls every 60s
52
+ * until a compatible rollup appears.
53
+ */ export async function waitForCompatibleRollup(config, expected, port, userLog) {
35
54
  const publicClient = getPublicClient(config);
36
55
  const rollupVersion = config.rollupVersion ?? 'canonical';
37
56
  const registry = new RegistryContract(publicClient, config.l1Contracts.registryAddress);
38
57
  const rollupAddress = await registry.getRollupAddress(rollupVersion);
39
58
  const rollup = new RollupContract(publicClient, rollupAddress.toString());
40
- let l1GenesisRoot;
59
+ let mismatches;
41
60
  try {
42
- l1GenesisRoot = await rollup.getGenesisArchiveTreeRoot();
61
+ mismatches = await checkRollupCompatibility(rollup, expected);
43
62
  } catch (err) {
44
- throw new Error(`Could not retrieve genesis archive root from canonical rollup at ${rollupAddress}: ${err.message}`);
63
+ throw new Error(`Could not retrieve rollup config from canonical rollup at ${rollupAddress}: ${err.message}`);
45
64
  }
46
- if (l1GenesisRoot.equals(expectedGenesisRoot)) {
65
+ if (mismatches.length === 0) {
47
66
  return;
48
67
  }
49
- userLog(`Genesis root mismatch: expected ${expectedGenesisRoot}, got ${l1GenesisRoot} from rollup at ${rollupAddress}. ` + `Entering standby mode. Will poll every ${ROLLUP_POLL_INTERVAL_S}s for a compatible rollup...`);
68
+ userLog(`Rollup at ${rollupAddress} is incompatible: ${mismatches.join('; ')}. ` + `Entering standby mode. Will poll every ${ROLLUP_POLL_INTERVAL_S}s for a compatible rollup...`);
50
69
  const standbyServer = await startHttpRpcServer({
51
70
  getApp: ()=>new Koa(),
52
71
  isHealthy: ()=>true
@@ -58,18 +77,18 @@ const ROLLUP_POLL_INTERVAL_S = 60;
58
77
  await retryUntil(async ()=>{
59
78
  const currentRollupAddress = await registry.getRollupAddress(rollupVersion);
60
79
  const currentRollup = new RollupContract(publicClient, currentRollupAddress.toString());
61
- let currentGenesisRoot;
80
+ let currentMismatches;
62
81
  try {
63
- currentGenesisRoot = await currentRollup.getGenesisArchiveTreeRoot();
82
+ currentMismatches = await checkRollupCompatibility(currentRollup, expected);
64
83
  } catch {
65
- userLog(`Failed to fetch genesis root from rollup at ${currentRollupAddress}. Retrying...`);
84
+ userLog(`Failed to fetch rollup config from rollup at ${currentRollupAddress}. Retrying...`);
66
85
  return undefined;
67
86
  }
68
- if (currentGenesisRoot.equals(expectedGenesisRoot)) {
87
+ if (currentMismatches.length === 0) {
69
88
  userLog(`Compatible rollup found at ${currentRollupAddress}. Exiting standby mode.`);
70
89
  return true;
71
90
  }
72
- userLog(`Still waiting. Rollup at ${currentRollupAddress} has genesis root ${currentGenesisRoot}.`);
91
+ userLog(`Still waiting. Rollup at ${currentRollupAddress}: ${currentMismatches.join('; ')}.`);
73
92
  return undefined;
74
93
  }, 'compatible rollup', 0, ROLLUP_POLL_INTERVAL_S);
75
94
  } finally{
@@ -1,9 +1,9 @@
1
1
  import { type ArchiverConfig } from '@aztec/archiver';
2
2
  import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
3
- import { type DataStoreConfig } from '@aztec/stdlib/kv-store';
3
+ import { type DataStoreConfig } from '@aztec/kv-store/config';
4
4
  export type { ArchiverConfig, DataStoreConfig };
5
5
  /** Starts a standalone archiver. */
6
6
  export declare function startArchiver(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers): Promise<{
7
7
  config: ArchiverConfig & DataStoreConfig;
8
8
  }>;
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfYXJjaGl2ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGkvY21kcy9zdGFydF9hcmNoaXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQW9FLE1BQU0saUJBQWlCLENBQUM7QUFJeEgsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0sd0JBQXdCLENBQUM7QUFLbEYsWUFBWSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsQ0FBQztBQUVoRCxvQ0FBb0M7QUFDcEMsd0JBQXNCLGFBQWEsQ0FDakMsT0FBTyxFQUFFLEdBQUcsRUFDWixjQUFjLEVBQUUsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQ3ZDLFFBQVEsRUFBRSxxQkFBcUIsR0FDOUIsT0FBTyxDQUFDO0lBQUUsTUFBTSxFQUFFLGNBQWMsR0FBRyxlQUFlLENBQUE7Q0FBRSxDQUFDLENBK0J2RCJ9
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,EAAE,KAAK,cAAc,EAAoE,MAAM,iBAAiB,CAAC;AAIxH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAKlF,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
+ {"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"}
@@ -2,8 +2,8 @@ import { archiverConfigMappings, createArchiver, getArchiverConfigFromEnv } from
2
2
  import { createLogger } from '@aztec/aztec.js/log';
3
3
  import { blobClientConfigMapping, createBlobClient } from '@aztec/blob-client/client';
4
4
  import { getL1Config } from '@aztec/cli/config';
5
+ import { dataConfigMappings } from '@aztec/kv-store/config';
5
6
  import { ArchiverApiSchema } from '@aztec/stdlib/interfaces/server';
6
- import { dataConfigMappings } from '@aztec/stdlib/kv-store';
7
7
  import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
8
8
  import { extractRelevantOptions } from '../util.js';
9
9
  /** Starts a standalone archiver. */ export async function startArchiver(options, signalHandlers, services) {
@@ -5,4 +5,4 @@ import type { LogFn } from '@aztec/foundation/log';
5
5
  export declare function startNode(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, adminServices: NamespacedApiHandlers, userLog: LogFn, networkName: NetworkNames): Promise<{
6
6
  config: AztecNodeConfig;
7
7
  }>;
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfbm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YXJ0X25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUE2QyxNQUFNLG1CQUFtQixDQUFDO0FBS3BHLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBZSxNQUFNLDBCQUEwQixDQUFDO0FBQzFFLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0UsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUF3Qm5ELHdCQUFzQixTQUFTLENBQzdCLE9BQU8sRUFBRSxHQUFHLEVBQ1osY0FBYyxFQUFFLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUN2QyxRQUFRLEVBQUUscUJBQXFCLEVBQy9CLGFBQWEsRUFBRSxxQkFBcUIsRUFDcEMsT0FBTyxFQUFFLEtBQUssRUFDZCxXQUFXLEVBQUUsWUFBWSxHQUN4QixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFBO0NBQUUsQ0FBQyxDQStKdEMifQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfbm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YXJ0X25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUE2QyxNQUFNLG1CQUFtQixDQUFDO0FBS3BHLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBZSxNQUFNLDBCQUEwQixDQUFDO0FBQzFFLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0UsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUE4Qm5ELHdCQUFzQixTQUFTLENBQzdCLE9BQU8sRUFBRSxHQUFHLEVBQ1osY0FBYyxFQUFFLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUN2QyxRQUFRLEVBQUUscUJBQXFCLEVBQy9CLGFBQWEsRUFBRSxxQkFBcUIsRUFDcEMsT0FBTyxFQUFFLEtBQUssRUFDZCxXQUFXLEVBQUUsWUFBWSxHQUN4QixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFBO0NBQUUsQ0FBQyxDQWdLdEMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"start_node.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAA6C,MAAM,mBAAmB,CAAC;AAKpG,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAwBnD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,aAAa,EAAE,qBAAqB,EACpC,OAAO,EAAE,KAAK,EACd,WAAW,EAAE,YAAY,GACxB,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC,CA+JtC"}
1
+ {"version":3,"file":"start_node.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAA6C,MAAM,mBAAmB,CAAC;AAKpG,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AA8BnD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,aAAa,EAAE,qBAAqB,EACpC,OAAO,EAAE,KAAK,EACd,WAAW,EAAE,YAAY,GACxB,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC,CAgKtC"}
@@ -5,7 +5,9 @@ import { getPublicClient } from '@aztec/ethereum/client';
5
5
  import { getGenesisStateConfigEnvVars } from '@aztec/ethereum/config';
6
6
  import { SecretValue } from '@aztec/foundation/config';
7
7
  import { Agent, makeUndiciFetch } from '@aztec/foundation/json-rpc/undici';
8
- import { ProvingJobConsumerSchema, createProvingJobBrokerClient } from '@aztec/prover-client/broker';
8
+ import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
9
+ import { protocolContractsHash } from '@aztec/protocol-contracts';
10
+ import { ProvingJobConsumerSchema, createProvingJobBrokerClient, proverBrokerBackoff } from '@aztec/prover-client/broker';
9
11
  import { allPxeConfigMappings } from '@aztec/pxe/config';
10
12
  import { AztecNodeAdminApiSchema, AztecNodeApiSchema } from '@aztec/stdlib/interfaces/client';
11
13
  import { P2PApiSchema, ProverNodeApiSchema } from '@aztec/stdlib/interfaces/server';
@@ -37,20 +39,8 @@ export async function startNode(options, signalHandlers, services, adminServices
37
39
  if (nodeConfig.proverBrokerUrl) {
38
40
  // at 1TPS we'd enqueue ~1k chonk verifier proofs and ~1k AVM proofs immediately
39
41
  // set a lower connection limit such that we don't overload the server
40
- // Keep retrying up to 30s
41
- const fetch = makeTracedFetch([
42
- 1,
43
- 2,
44
- 3,
45
- 3,
46
- 3,
47
- 3,
48
- 3,
49
- 3,
50
- 3,
51
- 3,
52
- 3
53
- ], false, makeUndiciFetch(new Agent({
42
+ // Retry indefinitely until the epoch proving times out and the chain reorgs
43
+ const fetch = makeTracedFetch(proverBrokerBackoff, false, makeUndiciFetch(new Agent({
54
44
  connections: 100
55
45
  })));
56
46
  broker = createProvingJobBrokerClient(nodeConfig.proverBrokerUrl, getVersions(nodeConfig), fetch);
@@ -70,7 +60,11 @@ export async function startNode(options, signalHandlers, services, adminServices
70
60
  }
71
61
  // Wait for a compatible rollup before proceeding with full L1 config fetch.
72
62
  // This prevents crashes when the canonical rollup hasn't been upgraded yet.
73
- await waitForCompatibleRollup(nodeConfig, genesisArchiveRoot, options.port, userLog);
63
+ await waitForCompatibleRollup(nodeConfig, {
64
+ genesisArchiveRoot,
65
+ vkTreeRoot: getVKTreeRoot(),
66
+ protocolContractsHash
67
+ }, options.port, userLog);
74
68
  const { addresses, config } = await getL1Config(nodeConfig.l1Contracts.registryAddress, nodeConfig.l1RpcUrls, nodeConfig.l1ChainId, nodeConfig.rollupVersion);
75
69
  process.env.ROLLUP_CONTRACT_ADDRESS ??= addresses.rollupAddress.toString();
76
70
  if (!Fr.fromHexString(config.genesisArchiveTreeRoot).equals(genesisArchiveRoot)) {
@@ -1,4 +1,4 @@
1
1
  import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
2
2
  import type { LogFn } from '@aztec/foundation/log';
3
3
  export declare function startProverAgent(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, userLog: LogFn): Promise<void>;
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfcHJvdmVyX2FnZW50LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NtZHMvc3RhcnRfcHJvdmVyX2FnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0UsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFnQm5ELHdCQUFzQixnQkFBZ0IsQ0FDcEMsT0FBTyxFQUFFLEdBQUcsRUFDWixjQUFjLEVBQUUsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQ3ZDLFFBQVEsRUFBRSxxQkFBcUIsRUFDL0IsT0FBTyxFQUFFLEtBQUssaUJBd0RmIn0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfcHJvdmVyX2FnZW50LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NtZHMvc3RhcnRfcHJvdmVyX2FnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0UsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFpQm5ELHdCQUFzQixnQkFBZ0IsQ0FDcEMsT0FBTyxFQUFFLEdBQUcsRUFDWixjQUFjLEVBQUUsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQ3ZDLFFBQVEsRUFBRSxxQkFBcUIsRUFDL0IsT0FBTyxFQUFFLEtBQUssaUJBb0RmIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"start_prover_agent.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_prover_agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAgBnD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,iBAwDf"}
1
+ {"version":3,"file":"start_prover_agent.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_prover_agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAiBnD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,iBAoDf"}
@@ -1,7 +1,7 @@
1
1
  import { times } from '@aztec/foundation/collection';
2
2
  import { Agent, makeUndiciFetch } from '@aztec/foundation/json-rpc/undici';
3
3
  import { buildServerCircuitProver } from '@aztec/prover-client';
4
- import { ProvingAgent, createProofStore, createProvingJobBrokerClient, proverAgentConfigMappings } from '@aztec/prover-client/broker';
4
+ import { ProvingAgent, createProofStore, createProvingJobBrokerClient, proverAgentConfigMappings, proverBrokerBackoff } from '@aztec/prover-client/broker';
5
5
  import { getProverNodeAgentConfigFromEnv } from '@aztec/prover-node';
6
6
  import { ProverAgentApiSchema } from '@aztec/stdlib/interfaces/server';
7
7
  import { initTelemetryClient, makeTracedFetch, telemetryClientConfigMappings } from '@aztec/telemetry-client';
@@ -25,20 +25,8 @@ export async function startProverAgent(options, signalHandlers, services, userLo
25
25
  process.exit(1);
26
26
  }
27
27
  await preloadCrsDataForServerSideProving(config, userLog);
28
- const fetch = makeTracedFetch(// retry connections every 3s, up to 30s before giving up
29
- [
30
- 1,
31
- 2,
32
- 3,
33
- 3,
34
- 3,
35
- 3,
36
- 3,
37
- 3,
38
- 3,
39
- 3,
40
- 3
41
- ], false, makeUndiciFetch(new Agent({
28
+ // Retry indefinitely until the epoch proving times out and the chain reorgs
29
+ const fetch = makeTracedFetch(proverBrokerBackoff, false, makeUndiciFetch(new Agent({
42
30
  connections: 10
43
31
  })));
44
32
  const broker = createProvingJobBrokerClient(config.proverBrokerUrl, getVersions(), fetch);
@@ -6,4 +6,4 @@ export declare function startProverBroker(options: any, signalHandlers: (() => P
6
6
  broker: ProvingJobBroker;
7
7
  config: ProverBrokerConfig;
8
8
  }>;
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfcHJvdmVyX2Jyb2tlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YXJ0X3Byb3Zlcl9icm9rZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsS0FBSyxrQkFBa0IsRUFLeEIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBTXhFLHdCQUFzQixpQkFBaUIsQ0FDckMsT0FBTyxFQUFFLEdBQUcsRUFDWixjQUFjLEVBQUUsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQ3ZDLFFBQVEsRUFBRSxxQkFBcUIsRUFDL0IsT0FBTyxFQUFFLEtBQUssR0FDYixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUM7SUFBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUE7Q0FBRSxDQUFDLENBdUNuRSJ9
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfcHJvdmVyX2Jyb2tlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YXJ0X3Byb3Zlcl9icm9rZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUduRCxPQUFPLEVBQ0wsS0FBSyxrQkFBa0IsRUFLeEIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBTXhFLHdCQUFzQixpQkFBaUIsQ0FDckMsT0FBTyxFQUFFLEdBQUcsRUFDWixjQUFjLEVBQUUsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQ3ZDLFFBQVEsRUFBRSxxQkFBcUIsRUFDL0IsT0FBTyxFQUFFLEtBQUssR0FDYixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUM7SUFBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUE7Q0FBRSxDQUFDLENBNENuRSJ9
@@ -1 +1 @@
1
- {"version":3,"file":"start_prover_broker.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_prover_broker.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAMxE,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAuCnE"}
1
+ {"version":3,"file":"start_prover_broker.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_prover_broker.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAMxE,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC,CA4CnE"}
@@ -1,5 +1,7 @@
1
1
  import { getL1Config } from '@aztec/cli/config';
2
2
  import { getGenesisStateConfigEnvVars } from '@aztec/ethereum/config';
3
+ import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
4
+ import { protocolContractsHash } from '@aztec/protocol-contracts';
3
5
  import { ProvingJobBrokerSchema, ProvingJobBrokerSchemaWithDebug, createAndStartProvingBroker, proverBrokerConfigMappings } from '@aztec/prover-client/broker';
4
6
  import { getProverNodeBrokerConfigFromEnv } from '@aztec/prover-node';
5
7
  import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
@@ -19,7 +21,11 @@ export async function startProverBroker(options, signalHandlers, services, userL
19
21
  }
20
22
  const genesisConfig = getGenesisStateConfigEnvVars();
21
23
  const { genesisArchiveRoot } = await computeExpectedGenesisRoot(genesisConfig, userLog);
22
- await waitForCompatibleRollup(config, genesisArchiveRoot, options.port, userLog);
24
+ await waitForCompatibleRollup(config, {
25
+ genesisArchiveRoot,
26
+ vkTreeRoot: getVKTreeRoot(),
27
+ protocolContractsHash
28
+ }, options.port, userLog);
23
29
  const { addresses, config: rollupConfig } = await getL1Config(config.l1Contracts.registryAddress, config.l1RpcUrls, config.l1ChainId, config.rollupVersion);
24
30
  config.l1Contracts = addresses;
25
31
  config.rollupVersion = rollupConfig.rollupVersion;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Recursively collects crate directories starting from startCrateDir by following dependencies declared in Nargo.toml
3
+ * files.
4
+ *
5
+ * When `skipGitDeps` is false (default), git-based deps are followed and fetched into the nargo cache
6
+ * (`$HOME/nargo/<domain>/<repo-path>/<tag>`) if not already present.
7
+ *
8
+ * When `skipGitDeps` is true, git-based deps are ignored entirely.
9
+ */
10
+ export declare function collectCrateDirs(startCrateDir: string, opts?: {
11
+ skipGitDeps?: boolean;
12
+ }): Promise<string[]>;
13
+ /**
14
+ * Computes the local nargo cache path for a git dependency, mirroring nargo's own `git_dep_location` function.
15
+ * Path format: `$HOME/nargo/<domain>/<repo-path>/<tag>`
16
+ * e.g. `~/nargo/github.com/AztecProtocol/aztec-packages/v0.82.0`
17
+ *
18
+ * Source: noir/noir-repo/tooling/nargo_toml/src/git.rs
19
+ */
20
+ export declare function nargoGitDepPath(gitUrl: string, tag: string): string;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdF9jcmF0ZV9kaXJzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpL2NtZHMvdXRpbHMvY29sbGVjdF9jcmF0ZV9kaXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUU7SUFBRSxXQUFXLENBQUMsRUFBRSxPQUFPLENBQUE7Q0FBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQWlFakg7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBS25FIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collect_crate_dirs.d.ts","sourceRoot":"","sources":["../../../../src/cli/cmds/utils/collect_crate_dirs.ts"],"names":[],"mappings":"AAQA;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAiEjH;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKnE"}