@aztec/aztec 0.0.1-commit.42ee6df9b → 0.0.1-commit.431c48d

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 (147) hide show
  1. package/dest/bin/index.js +3 -1
  2. package/dest/cli/aztec_start_action.d.ts +1 -1
  3. package/dest/cli/aztec_start_action.d.ts.map +1 -1
  4. package/dest/cli/aztec_start_action.js +33 -33
  5. package/dest/cli/aztec_start_options.d.ts +2 -2
  6. package/dest/cli/aztec_start_options.d.ts.map +1 -1
  7. package/dest/cli/aztec_start_options.js +21 -16
  8. package/dest/cli/cmds/compile.d.ts +1 -1
  9. package/dest/cli/cmds/compile.d.ts.map +1 -1
  10. package/dest/cli/cmds/compile.js +30 -24
  11. package/dest/cli/cmds/profile.d.ts +1 -1
  12. package/dest/cli/cmds/profile.d.ts.map +1 -1
  13. package/dest/cli/cmds/profile.js +1 -1
  14. package/dest/cli/cmds/profile_gates.d.ts +2 -2
  15. package/dest/cli/cmds/profile_gates.d.ts.map +1 -1
  16. package/dest/cli/cmds/profile_gates.js +21 -3
  17. package/dest/cli/cmds/prover.d.ts +4 -0
  18. package/dest/cli/cmds/prover.d.ts.map +1 -0
  19. package/dest/cli/cmds/prover.js +24 -0
  20. package/dest/cli/cmds/standby.d.ts +30 -6
  21. package/dest/cli/cmds/standby.d.ts.map +1 -1
  22. package/dest/cli/cmds/standby.js +48 -5
  23. package/dest/cli/cmds/start_bot.d.ts +1 -1
  24. package/dest/cli/cmds/start_bot.d.ts.map +1 -1
  25. package/dest/cli/cmds/start_bot.js +8 -4
  26. package/dest/cli/cmds/start_node.d.ts +1 -1
  27. package/dest/cli/cmds/start_node.d.ts.map +1 -1
  28. package/dest/cli/cmds/start_node.js +20 -32
  29. package/dest/cli/cmds/start_prover_agent.js +2 -2
  30. package/dest/cli/cmds/start_prover_broker.d.ts +1 -1
  31. package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
  32. package/dest/cli/cmds/start_prover_broker.js +11 -8
  33. package/dest/cli/cmds/start_txe.d.ts +2 -2
  34. package/dest/cli/cmds/start_txe.d.ts.map +1 -1
  35. package/dest/cli/cmds/start_txe.js +6 -5
  36. package/dest/cli/cmds/utils/artifacts.d.ts +6 -1
  37. package/dest/cli/cmds/utils/artifacts.d.ts.map +1 -1
  38. package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.d.ts +2 -2
  39. package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.d.ts.map +1 -1
  40. package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.js +35 -15
  41. package/dest/cli/util.d.ts +10 -5
  42. package/dest/cli/util.d.ts.map +1 -1
  43. package/dest/cli/util.js +26 -53
  44. package/dest/deploy/bridging.d.ts +84 -0
  45. package/dest/deploy/bridging.d.ts.map +1 -0
  46. package/dest/deploy/bridging.js +121 -0
  47. package/dest/deploy/fees.d.ts +120 -0
  48. package/dest/deploy/fees.d.ts.map +1 -0
  49. package/dest/deploy/fees.js +278 -0
  50. package/dest/deploy/graph.d.ts +40 -0
  51. package/dest/deploy/graph.d.ts.map +1 -0
  52. package/dest/deploy/graph.js +120 -0
  53. package/dest/deploy/index.d.ts +19 -0
  54. package/dest/deploy/index.d.ts.map +1 -0
  55. package/dest/deploy/index.js +15 -0
  56. package/dest/deploy/reporter.d.ts +106 -0
  57. package/dest/deploy/reporter.d.ts.map +1 -0
  58. package/dest/deploy/reporter.js +76 -0
  59. package/dest/deploy/runner.d.ts +8 -0
  60. package/dest/deploy/runner.d.ts.map +1 -0
  61. package/dest/deploy/runner.js +886 -0
  62. package/dest/deploy/state.d.ts +19 -0
  63. package/dest/deploy/state.d.ts.map +1 -0
  64. package/dest/deploy/state.js +59 -0
  65. package/dest/deploy/types.d.ts +233 -0
  66. package/dest/deploy/types.d.ts.map +1 -0
  67. package/dest/deploy/types.js +9 -0
  68. package/dest/examples/token.js +3 -3
  69. package/dest/local-network/auth_registry.d.ts +5 -0
  70. package/dest/local-network/auth_registry.d.ts.map +1 -0
  71. package/dest/local-network/auth_registry.js +17 -0
  72. package/dest/local-network/banana_fpc.d.ts +3 -2
  73. package/dest/local-network/banana_fpc.d.ts.map +1 -1
  74. package/dest/local-network/banana_fpc.js +11 -7
  75. package/dest/local-network/local-network.d.ts +10 -32
  76. package/dest/local-network/local-network.d.ts.map +1 -1
  77. package/dest/local-network/local-network.js +52 -73
  78. package/dest/testing/cheat_codes.d.ts +17 -23
  79. package/dest/testing/cheat_codes.d.ts.map +1 -1
  80. package/dest/testing/cheat_codes.js +17 -43
  81. package/dest/testing/epoch_test_settler.d.ts +2 -2
  82. package/dest/testing/epoch_test_settler.d.ts.map +1 -1
  83. package/dest/testing/epoch_test_settler.js +6 -25
  84. package/dest/testing/index.d.ts +2 -2
  85. package/dest/testing/index.d.ts.map +1 -1
  86. package/dest/testing/index.js +1 -1
  87. package/dest/testing/local-network.d.ts +51 -0
  88. package/dest/testing/local-network.d.ts.map +1 -0
  89. package/dest/testing/local-network.js +60 -0
  90. package/dest/testing/token_allowed_setup.d.ts +9 -4
  91. package/dest/testing/token_allowed_setup.d.ts.map +1 -1
  92. package/dest/testing/token_allowed_setup.js +12 -8
  93. package/package.json +37 -34
  94. package/scripts/add_crate.sh +11 -60
  95. package/scripts/aztec.sh +6 -2
  96. package/scripts/init.sh +5 -5
  97. package/scripts/new.sh +2 -2
  98. package/scripts/setup_workspace.sh +3 -2
  99. package/scripts/templates/blank/contract/Nargo.toml +6 -0
  100. package/scripts/templates/blank/contract/src/main.nr +10 -0
  101. package/scripts/templates/blank/test/Nargo.toml +7 -0
  102. package/scripts/templates/blank/test/src/lib.nr +11 -0
  103. package/scripts/templates/counter/contract/Nargo.toml +7 -0
  104. package/scripts/templates/counter/contract/src/main.nr +48 -0
  105. package/scripts/templates/counter/test/Nargo.toml +7 -0
  106. package/scripts/templates/counter/test/src/lib.nr +32 -0
  107. package/src/bin/index.ts +3 -1
  108. package/src/cli/aztec_start_action.ts +38 -25
  109. package/src/cli/aztec_start_options.ts +27 -23
  110. package/src/cli/cmds/compile.ts +35 -24
  111. package/src/cli/cmds/profile.ts +2 -1
  112. package/src/cli/cmds/profile_gates.ts +20 -4
  113. package/src/cli/cmds/prover.ts +42 -0
  114. package/src/cli/cmds/standby.ts +59 -7
  115. package/src/cli/cmds/start_bot.ts +9 -6
  116. package/src/cli/cmds/start_node.ts +25 -32
  117. package/src/cli/cmds/start_prover_agent.ts +2 -2
  118. package/src/cli/cmds/start_prover_broker.ts +10 -11
  119. package/src/cli/cmds/start_txe.ts +7 -5
  120. package/src/cli/cmds/utils/artifacts.ts +5 -0
  121. package/src/cli/cmds/utils/warn_if_aztec_version_mismatch.ts +37 -15
  122. package/src/cli/util.ts +27 -68
  123. package/src/deploy/bridging.ts +191 -0
  124. package/src/deploy/fees.ts +322 -0
  125. package/src/deploy/graph.ts +137 -0
  126. package/src/deploy/index.ts +41 -0
  127. package/src/deploy/reporter.ts +184 -0
  128. package/src/deploy/runner.ts +936 -0
  129. package/src/deploy/state.ts +66 -0
  130. package/src/deploy/types.ts +244 -0
  131. package/src/examples/token.ts +11 -3
  132. package/src/local-network/auth_registry.ts +19 -0
  133. package/src/local-network/banana_fpc.ts +12 -8
  134. package/src/local-network/local-network.ts +61 -83
  135. package/src/testing/cheat_codes.ts +18 -49
  136. package/src/testing/epoch_test_settler.ts +8 -31
  137. package/src/testing/index.ts +1 -1
  138. package/src/testing/local-network.ts +97 -0
  139. package/src/testing/token_allowed_setup.ts +15 -8
  140. package/dest/cli/cmds/start_archiver.d.ts +0 -9
  141. package/dest/cli/cmds/start_archiver.d.ts.map +0 -1
  142. package/dest/cli/cmds/start_archiver.js +0 -48
  143. package/dest/testing/anvil_test_watcher.d.ts +0 -42
  144. package/dest/testing/anvil_test_watcher.d.ts.map +0 -1
  145. package/dest/testing/anvil_test_watcher.js +0 -181
  146. package/src/cli/cmds/start_archiver.ts +0 -50
  147. package/src/testing/anvil_test_watcher.ts +0 -210
@@ -3,10 +3,12 @@ import { getSponsoredFPCAddress } from '@aztec/cli/cli-utils';
3
3
  import { getPublicClient } from '@aztec/ethereum/client';
4
4
  import { RegistryContract, RollupContract } from '@aztec/ethereum/contracts';
5
5
  import { startHttpRpcServer } from '@aztec/foundation/json-rpc/server';
6
+ import { createLogger } from '@aztec/foundation/log';
6
7
  import { retryUntil } from '@aztec/foundation/retry';
7
8
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
8
9
  import { getGenesisValues } from '@aztec/world-state/testing';
9
10
  import Koa from 'koa';
11
+ import { isShuttingDown, softShutdown } from '../util.js';
10
12
  const ROLLUP_POLL_INTERVAL_S = 60;
11
13
  /**
12
14
  * Computes the expected genesis archive root from the genesis state config.
@@ -17,17 +19,21 @@ const ROLLUP_POLL_INTERVAL_S = 60;
17
19
  const sponsoredFPCAccounts = config.sponsoredFPC ? [
18
20
  await getSponsoredFPCAddress()
19
21
  ] : [];
20
- const prefundAddresses = (config.prefundAddresses ?? []).map((a)=>AztecAddress.fromString(a));
22
+ const prefundAddresses = (config.prefundAddresses ?? []).map((a)=>AztecAddress.fromStringUnsafe(a));
21
23
  const initialFundedAccounts = testAccounts.concat(sponsoredFPCAccounts).concat(prefundAddresses);
22
24
  userLog(`Initial funded accounts: ${initialFundedAccounts.map((a)=>a.toString()).join(', ')}`);
23
- const { genesisArchiveRoot, prefilledPublicData } = await getGenesisValues(initialFundedAccounts);
25
+ const { genesisArchiveRoot, genesis } = await getGenesisValues(initialFundedAccounts);
24
26
  userLog(`Genesis archive root: ${genesisArchiveRoot.toString()}`);
25
27
  return {
26
28
  genesisArchiveRoot,
27
- prefilledPublicData
29
+ genesis
28
30
  };
29
31
  }
30
- async function checkRollupCompatibility(rollup, expected) {
32
+ /**
33
+ * Compares the rollup's on-chain protocol constants (genesis archive root, VK tree root, protocol
34
+ * contracts hash) against the node's expected local values. Returns a list of human-readable mismatch
35
+ * descriptions, empty if the rollup is compatible.
36
+ */ export async function checkRollupCompatibility(rollup, expected) {
31
37
  const mismatches = [];
32
38
  const [l1Genesis, l1Vk, l1Protocol] = await Promise.all([
33
39
  rollup.getGenesisArchiveTreeRoot(),
@@ -53,7 +59,7 @@ async function checkRollupCompatibility(rollup, expected) {
53
59
  */ export async function waitForCompatibleRollup(config, expected, port, userLog) {
54
60
  const publicClient = getPublicClient(config);
55
61
  const rollupVersion = config.rollupVersion ?? 'canonical';
56
- const registry = new RegistryContract(publicClient, config.l1Contracts.registryAddress);
62
+ const registry = new RegistryContract(publicClient, config.registryAddress);
57
63
  const rollupAddress = await registry.getRollupAddress(rollupVersion);
58
64
  const rollup = new RollupContract(publicClient, rollupAddress.toString());
59
65
  let mismatches;
@@ -95,3 +101,40 @@ async function checkRollupCompatibility(rollup, expected) {
95
101
  await new Promise((resolve, reject)=>standbyServer.close((err)=>err ? reject(err) : resolve()));
96
102
  }
97
103
  }
104
+ /**
105
+ * Polls the canonical rollup's protocol constants every 10 minutes and soft-shuts-down the node once they
106
+ * diverge from the node's expected local values (i.e. an incompatible rollup has become canonical on L1).
107
+ * The HTTP health server is left running so K8s probes keep passing on the wound-down pod. This is the
108
+ * inverse of {@link waitForCompatibleRollup}; it should only be set up for nodes following the canonical
109
+ * rollup. Reuses the {@link checkRollupCompatibility} diff and the generic VersionChecker poll primitive.
110
+ */ export async function setupAutoShutdown(config, registryAddress, rollupVersion, expected, signalHandlers) {
111
+ const { VersionChecker } = await import('@aztec/stdlib/update-checker');
112
+ const logger = createLogger('auto_shutdown');
113
+ const publicClient = getPublicClient(config);
114
+ const registry = new RegistryContract(publicClient, registryAddress);
115
+ const check = {
116
+ name: 'rollup',
117
+ currentVersion: 'compatible',
118
+ getLatestVersion: async ()=>{
119
+ const rollupAddress = await registry.getRollupAddress(rollupVersion);
120
+ const rollup = new RollupContract(publicClient, rollupAddress.toString());
121
+ const mismatches = await checkRollupCompatibility(rollup, expected);
122
+ return mismatches.length === 0 ? 'compatible' : `incompatible: ${mismatches.join('; ')}`;
123
+ }
124
+ };
125
+ const checker = new VersionChecker([
126
+ check
127
+ ], 600_000, logger);
128
+ checker.on('newVersion', ({ latestVersion })=>{
129
+ if (isShuttingDown()) {
130
+ return;
131
+ }
132
+ logger.warn('Canonical rollup is no longer compatible; auto-shutting down node', {
133
+ latestVersion
134
+ });
135
+ // softShutdown never rejects (it awaits handlers via allSettled); fire-and-forget from the listener.
136
+ void softShutdown(logger.info.bind(logger), signalHandlers);
137
+ });
138
+ checker.start();
139
+ signalHandlers.push(()=>checker.stop());
140
+ }
@@ -5,4 +5,4 @@ import type { TelemetryClient } from '@aztec/telemetry-client';
5
5
  import { EmbeddedWallet } from '@aztec/wallets/embedded';
6
6
  export declare function startBot(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, userLog: LogFn): Promise<void>;
7
7
  export declare function addBot(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, wallet: EmbeddedWallet, aztecNode: AztecNode, telemetry: TelemetryClient, aztecNodeAdmin?: AztecNodeAdmin, userLog?: LogFn): Promise<void>;
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfYm90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NtZHMvc3RhcnRfYm90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0UsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHbkQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFFLEtBQUssY0FBYyxFQUF5QixNQUFNLGlDQUFpQyxDQUFDO0FBQzdHLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBTS9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUt6RCx3QkFBc0IsUUFBUSxDQUM1QixPQUFPLEVBQUUsR0FBRyxFQUNaLGNBQWMsRUFBRSxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFDdkMsUUFBUSxFQUFFLHFCQUFxQixFQUMvQixPQUFPLEVBQUUsS0FBSyxpQkF3QmY7QUFFRCx3QkFBc0IsTUFBTSxDQUMxQixPQUFPLEVBQUUsR0FBRyxFQUNaLGNBQWMsRUFBRSxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFDdkMsUUFBUSxFQUFFLHFCQUFxQixFQUMvQixNQUFNLEVBQUUsY0FBYyxFQUN0QixTQUFTLEVBQUUsU0FBUyxFQUNwQixTQUFTLEVBQUUsZUFBZSxFQUMxQixjQUFjLENBQUMsRUFBRSxjQUFjLEVBQy9CLE9BQU8sQ0FBQyxFQUFFLEtBQUssaUJBbUJoQiJ9
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfYm90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NtZHMvc3RhcnRfYm90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0UsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHbkQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFFLEtBQUssY0FBYyxFQUF5QixNQUFNLGlDQUFpQyxDQUFDO0FBQzdHLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBTS9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUt6RCx3QkFBc0IsUUFBUSxDQUM1QixPQUFPLEVBQUUsR0FBRyxFQUNaLGNBQWMsRUFBRSxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFDdkMsUUFBUSxFQUFFLHFCQUFxQixFQUMvQixPQUFPLEVBQUUsS0FBSyxpQkFzQmY7QUFFRCx3QkFBc0IsTUFBTSxDQUMxQixPQUFPLEVBQUUsR0FBRyxFQUNaLGNBQWMsRUFBRSxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFDdkMsUUFBUSxFQUFFLHFCQUFxQixFQUMvQixNQUFNLEVBQUUsY0FBYyxFQUN0QixTQUFTLEVBQUUsU0FBUyxFQUNwQixTQUFTLEVBQUUsZUFBZSxFQUMxQixjQUFjLENBQUMsRUFBRSxjQUFjLEVBQy9CLE9BQU8sQ0FBQyxFQUFFLEtBQUssaUJBd0JoQiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"start_bot.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_bot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAyB,MAAM,iCAAiC,CAAC;AAC7G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAM/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAKzD,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,iBAwBf;AAED,wBAAsB,MAAM,CAC1B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,eAAe,EAC1B,cAAc,CAAC,EAAE,cAAc,EAC/B,OAAO,CAAC,EAAE,KAAK,iBAmBhB"}
1
+ {"version":3,"file":"start_bot.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_bot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAyB,MAAM,iCAAiC,CAAC;AAC7G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAM/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAKzD,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,iBAsBf;AAED,wBAAsB,MAAM,CAC1B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,eAAe,EAC1B,cAAc,CAAC,EAAE,cAAc,EAC/B,OAAO,CAAC,EAAE,KAAK,iBAwBhB"}
@@ -7,9 +7,9 @@ import { EmbeddedWallet } from '@aztec/wallets/embedded';
7
7
  import { extractRelevantOptions, stringifyConfig } from '../util.js';
8
8
  import { getVersions } from '../versioning.js';
9
9
  export async function startBot(options, signalHandlers, services, userLog) {
10
- const { proverNode, archiver, sequencer, p2pBootstrap, txe, prover } = options;
11
- if (proverNode || archiver || sequencer || p2pBootstrap || txe || prover) {
12
- userLog(`Starting a bot with --prover-node, --prover, --archiver, --sequencer, --p2p-bootstrap, or --txe is not supported.`);
10
+ const { proverNode, sequencer, p2pBootstrap, txe, prover } = options;
11
+ if (proverNode || sequencer || p2pBootstrap || txe || prover) {
12
+ userLog(`Starting a bot with --prover-node, --prover, --sequencer, --p2p-bootstrap, or --txe is not supported.`);
13
13
  process.exit(1);
14
14
  }
15
15
  const fetch = makeTracedFetch([
@@ -33,10 +33,14 @@ export async function startBot(options, signalHandlers, services, userLog) {
33
33
  export async function addBot(options, signalHandlers, services, wallet, aztecNode, telemetry, aztecNodeAdmin, userLog) {
34
34
  const config = extractRelevantOptions(options, botConfigMappings, 'bot');
35
35
  userLog?.(`Starting bot with config ${stringifyConfig(config)}`);
36
+ // The bot wallet's embedded PXE syncs to this tip (see start_bot.ts/start_node.ts which build the wallet from the
37
+ // same options). L1-to-L2 readiness checks must be evaluated at this tip rather than at 'latest', or the bot can
38
+ // consider a message ready while the PXE simulation anchors to an older block that cannot prove its membership yet.
39
+ const { syncChainTip } = extractRelevantOptions(options, allPxeConfigMappings, 'pxe');
36
40
  const db = await (config.dataDirectory ? createStore('bot', BotStore.SCHEMA_VERSION, config) : openTmpStore('bot', true, config.dataStoreMapSizeKb));
37
41
  const store = new BotStore(db);
38
42
  await store.cleanupOldClaims();
39
- const botRunner = new BotRunner(config, wallet, aztecNode, telemetry, aztecNodeAdmin, store);
43
+ const botRunner = new BotRunner(config, wallet, aztecNode, telemetry, aztecNodeAdmin, store, syncChainTip);
40
44
  if (!config.noStart) {
41
45
  void botRunner.start(); // Do not block since bot setup takes time
42
46
  }
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfbm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YXJ0X25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUE2QyxNQUFNLG1CQUFtQixDQUFDO0FBS3BHLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBZSxNQUFNLDBCQUEwQixDQUFDO0FBQzFFLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0UsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUE4Qm5ELHdCQUFzQixTQUFTLENBQzdCLE9BQU8sRUFBRSxHQUFHLEVBQ1osY0FBYyxFQUFFLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUN2QyxRQUFRLEVBQUUscUJBQXFCLEVBQy9CLGFBQWEsRUFBRSxxQkFBcUIsRUFDcEMsT0FBTyxFQUFFLEtBQUssRUFDZCxXQUFXLEVBQUUsWUFBWSxHQUN4QixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFBO0NBQUUsQ0FBQyxDQWdLdEMifQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfbm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YXJ0X25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLEtBQUssZUFBZSxFQUlyQixNQUFNLG1CQUFtQixDQUFDO0FBSTNCLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBZSxNQUFNLDBCQUEwQixDQUFDO0FBQzFFLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0UsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUF3Qm5ELHdCQUFzQixTQUFTLENBQzdCLE9BQU8sRUFBRSxHQUFHLEVBQ1osY0FBYyxFQUFFLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUN2QyxRQUFRLEVBQUUscUJBQXFCLEVBQy9CLGFBQWEsRUFBRSxxQkFBcUIsRUFDcEMsT0FBTyxFQUFFLEtBQUssRUFDZCxXQUFXLEVBQUUsWUFBWSxHQUN4QixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFBO0NBQUUsQ0FBQyxDQTJKdEMifQ==
@@ -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;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"}
1
+ {"version":3,"file":"start_node.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EAIrB,MAAM,mBAAmB,CAAC;AAI3B,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,CA2JtC"}
@@ -1,7 +1,6 @@
1
- import { aztecNodeConfigMappings, getConfigEnvVars } from '@aztec/aztec-node';
1
+ import { aztecNodeConfigMappings, getConfigEnvVars, registerAztecNodeRpcHandlers } from '@aztec/aztec-node';
2
2
  import { Fr } from '@aztec/aztec.js/fields';
3
3
  import { getL1Config } from '@aztec/cli/config';
4
- import { getPublicClient } from '@aztec/ethereum/client';
5
4
  import { getGenesisStateConfigEnvVars } from '@aztec/ethereum/config';
6
5
  import { SecretValue } from '@aztec/foundation/config';
7
6
  import { Agent, makeUndiciFetch } from '@aztec/foundation/json-rpc/undici';
@@ -9,14 +8,13 @@ import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
9
8
  import { protocolContractsHash } from '@aztec/protocol-contracts';
10
9
  import { ProvingJobConsumerSchema, createProvingJobBrokerClient, proverBrokerBackoff } from '@aztec/prover-client/broker';
11
10
  import { allPxeConfigMappings } from '@aztec/pxe/config';
12
- import { AztecNodeAdminApiSchema, AztecNodeApiSchema } from '@aztec/stdlib/interfaces/client';
13
- import { P2PApiSchema, ProverNodeApiSchema } from '@aztec/stdlib/interfaces/server';
11
+ import { ProverNodeApiSchema } from '@aztec/stdlib/interfaces/server';
14
12
  import { initTelemetryClient, makeTracedFetch, telemetryClientConfigMappings } from '@aztec/telemetry-client';
15
13
  import { EmbeddedWallet } from '@aztec/wallets/embedded';
16
14
  import { createAztecNode } from '../../local-network/index.js';
17
- import { extractNamespacedOptions, extractRelevantOptions, preloadCrsDataForVerifying, setupVersionChecker } from '../util.js';
15
+ import { extractNamespacedOptions, extractRelevantOptions, preloadCrsDataForVerifying } from '../util.js';
18
16
  import { getVersions } from '../versioning.js';
19
- import { computeExpectedGenesisRoot, waitForCompatibleRollup } from './standby.js';
17
+ import { computeExpectedGenesisRoot, setupAutoShutdown, waitForCompatibleRollup } from './standby.js';
20
18
  import { startProverBroker } from './start_prover_broker.js';
21
19
  export async function startNode(options, signalHandlers, services, adminServices, userLog, networkName) {
22
20
  // All options set from environment variables
@@ -53,9 +51,9 @@ export async function startNode(options, signalHandlers, services, adminServices
53
51
  }
54
52
  await preloadCrsDataForVerifying(nodeConfig, userLog);
55
53
  const genesisConfig = getGenesisStateConfigEnvVars();
56
- const { genesisArchiveRoot, prefilledPublicData } = await computeExpectedGenesisRoot(genesisConfig, userLog);
54
+ const { genesisArchiveRoot, genesis } = await computeExpectedGenesisRoot(genesisConfig, userLog);
57
55
  const followsCanonicalRollup = typeof nodeConfig.rollupVersion !== 'number' || nodeConfig.rollupVersion === 'canonical';
58
- if (!nodeConfig.l1Contracts.registryAddress || nodeConfig.l1Contracts.registryAddress.isZero()) {
56
+ if (!nodeConfig.registryAddress || nodeConfig.registryAddress.isZero()) {
59
57
  throw new Error('L1 registry address is required to start Aztec Node');
60
58
  }
61
59
  // Wait for a compatible rollup before proceeding with full L1 config fetch.
@@ -65,18 +63,14 @@ export async function startNode(options, signalHandlers, services, adminServices
65
63
  vkTreeRoot: getVKTreeRoot(),
66
64
  protocolContractsHash
67
65
  }, options.port, userLog);
68
- const { addresses, config } = await getL1Config(nodeConfig.l1Contracts.registryAddress, nodeConfig.l1RpcUrls, nodeConfig.l1ChainId, nodeConfig.rollupVersion);
66
+ const { addresses, config } = await getL1Config(nodeConfig.registryAddress, nodeConfig.l1RpcUrls, nodeConfig.l1ChainId, nodeConfig.rollupVersion);
69
67
  process.env.ROLLUP_CONTRACT_ADDRESS ??= addresses.rollupAddress.toString();
70
68
  if (!Fr.fromHexString(config.genesisArchiveTreeRoot).equals(genesisArchiveRoot)) {
71
69
  throw new Error(`The computed genesis archive tree root ${genesisArchiveRoot} does not match the expected genesis archive tree root ${config.genesisArchiveTreeRoot} for the rollup deployed at ${addresses.rollupAddress}`);
72
70
  }
73
- // TODO(#12272): will clean this up.
74
71
  nodeConfig = {
75
72
  ...nodeConfig,
76
- l1Contracts: {
77
- ...addresses,
78
- slashFactoryAddress: nodeConfig.l1Contracts.slashFactoryAddress
79
- },
73
+ ...addresses,
80
74
  ...config
81
75
  };
82
76
  if (!options.sequencer && !nodeConfig.fishermanMode) {
@@ -109,25 +103,16 @@ export async function startNode(options, signalHandlers, services, adminServices
109
103
  telemetry,
110
104
  proverBroker: broker
111
105
  }, {
112
- prefilledPublicData
106
+ genesis
107
+ });
108
+ registerAztecNodeRpcHandlers(node, services, adminServices, {
109
+ debug: options.nodeDebug,
110
+ p2pHealthMinPeers: nodeConfig.p2pHealthMinPeers
113
111
  });
114
- // Add node and p2p to services list
115
- services.node = [
116
- node,
117
- AztecNodeApiSchema
118
- ];
119
- services.p2p = [
120
- node.getP2P(),
121
- P2PApiSchema
122
- ];
123
- adminServices.nodeAdmin = [
124
- node,
125
- AztecNodeAdminApiSchema
126
- ];
127
112
  // Register prover-node services if the prover node subsystem is running
128
113
  const proverNode = node.getProverNode();
129
114
  if (proverNode) {
130
- services.prover = [
115
+ adminServices.prover = [
131
116
  proverNode,
132
117
  ProverNodeApiSchema
133
118
  ];
@@ -149,10 +134,13 @@ export async function startNode(options, signalHandlers, services, adminServices
149
134
  });
150
135
  await addBot(options, signalHandlers, services, wallet, node, telemetry, undefined);
151
136
  }
152
- if (nodeConfig.enableVersionCheck && networkName !== 'local') {
153
- const cacheDir = process.env.DATA_DIRECTORY ? `${process.env.DATA_DIRECTORY}/cache` : undefined;
137
+ if (nodeConfig.enableAutoShutdown && networkName !== 'local' && followsCanonicalRollup) {
154
138
  try {
155
- await setupVersionChecker(networkName, followsCanonicalRollup, getPublicClient(nodeConfig), signalHandlers, cacheDir);
139
+ await setupAutoShutdown(nodeConfig, nodeConfig.registryAddress, nodeConfig.rollupVersion ?? 'canonical', {
140
+ genesisArchiveRoot,
141
+ vkTreeRoot: getVKTreeRoot(),
142
+ protocolContractsHash
143
+ }, signalHandlers);
156
144
  } catch {
157
145
  /* no-op */ }
158
146
  }
@@ -8,8 +8,8 @@ import { initTelemetryClient, makeTracedFetch, telemetryClientConfigMappings } f
8
8
  import { extractRelevantOptions, preloadCrsDataForServerSideProving } from '../util.js';
9
9
  import { getVersions } from '../versioning.js';
10
10
  export async function startProverAgent(options, signalHandlers, services, userLog) {
11
- if (options.node || options.sequencer || options.pxe || options.p2pBootstrap || options.txe) {
12
- userLog(`Starting a prover agent with --node, --sequencer, --pxe, --p2p-bootstrap, or --txe is not supported.`);
11
+ if (options.node || options.sequencer || options.p2pBootstrap || options.txe) {
12
+ userLog(`Starting a prover agent with --node, --sequencer, --p2p-bootstrap, or --txe is not supported.`);
13
13
  process.exit(1);
14
14
  }
15
15
  const config = {
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfcHJvdmVyX2Jyb2tlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YXJ0X3Byb3Zlcl9icm9rZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUduRCxPQUFPLEVBQ0wsS0FBSyxrQkFBa0IsRUFLeEIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBTXhFLHdCQUFzQixpQkFBaUIsQ0FDckMsT0FBTyxFQUFFLEdBQUcsRUFDWixjQUFjLEVBQUUsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQ3ZDLFFBQVEsRUFBRSxxQkFBcUIsRUFDL0IsT0FBTyxFQUFFLEtBQUssR0FDYixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUM7SUFBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUE7Q0FBRSxDQUFDLENBNENuRSJ9
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfcHJvdmVyX2Jyb2tlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YXJ0X3Byb3Zlcl9icm9rZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUduRCxPQUFPLEVBQ0wsS0FBSyxrQkFBa0IsRUFLeEIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBTXhFLHdCQUFzQixpQkFBaUIsQ0FDckMsT0FBTyxFQUFFLEdBQUcsRUFDWixjQUFjLEVBQUUsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQ3ZDLFFBQVEsRUFBRSxxQkFBcUIsRUFDL0IsT0FBTyxFQUFFLEtBQUssR0FDYixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUM7SUFBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUE7Q0FBRSxDQUFDLENBMkNuRSJ9
@@ -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;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
+ {"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,CA2CnE"}
@@ -8,27 +8,30 @@ import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } fro
8
8
  import { extractRelevantOptions } from '../util.js';
9
9
  import { computeExpectedGenesisRoot, waitForCompatibleRollup } from './standby.js';
10
10
  export async function startProverBroker(options, signalHandlers, services, userLog) {
11
- if (options.node || options.sequencer || options.pxe || options.p2pBootstrap || options.txe) {
12
- userLog(`Starting a prover broker with --node, --sequencer, --pxe, --p2p-bootstrap, or --txe is not supported.`);
11
+ if (options.node || options.sequencer || options.p2pBootstrap || options.txe) {
12
+ userLog(`Starting a prover broker with --node, --sequencer, --p2p-bootstrap, or --txe is not supported.`);
13
13
  process.exit(1);
14
14
  }
15
- const config = {
15
+ const baseConfig = {
16
16
  ...getProverNodeBrokerConfigFromEnv(),
17
17
  ...extractRelevantOptions(options, proverBrokerConfigMappings, 'proverBroker')
18
18
  };
19
- if (!config.l1Contracts.registryAddress || config.l1Contracts.registryAddress.isZero()) {
19
+ if (!baseConfig.registryAddress || baseConfig.registryAddress.isZero()) {
20
20
  throw new Error('L1 registry address is required to start Aztec Node without --deploy-aztec-contracts option');
21
21
  }
22
22
  const genesisConfig = getGenesisStateConfigEnvVars();
23
23
  const { genesisArchiveRoot } = await computeExpectedGenesisRoot(genesisConfig, userLog);
24
- await waitForCompatibleRollup(config, {
24
+ await waitForCompatibleRollup(baseConfig, {
25
25
  genesisArchiveRoot,
26
26
  vkTreeRoot: getVKTreeRoot(),
27
27
  protocolContractsHash
28
28
  }, options.port, userLog);
29
- const { addresses, config: rollupConfig } = await getL1Config(config.l1Contracts.registryAddress, config.l1RpcUrls, config.l1ChainId, config.rollupVersion);
30
- config.l1Contracts = addresses;
31
- config.rollupVersion = rollupConfig.rollupVersion;
29
+ const { addresses, config: rollupConfig } = await getL1Config(baseConfig.registryAddress, baseConfig.l1RpcUrls, baseConfig.l1ChainId, baseConfig.rollupVersion);
30
+ const config = {
31
+ ...baseConfig,
32
+ ...addresses,
33
+ rollupVersion: rollupConfig.rollupVersion
34
+ };
32
35
  const client = await initTelemetryClient(getTelemetryClientConfig());
33
36
  const broker = await createAndStartProvingBroker(config, client);
34
37
  services.proverBroker = [
@@ -1,3 +1,3 @@
1
1
  import type { Logger } from '@aztec/foundation/log';
2
- export declare function startTXE(options: any, debugLogger: Logger): Promise<void>;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfdHhlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NtZHMvc3RhcnRfdHhlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3BELHdCQUFzQixRQUFRLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFVL0QifQ==
2
+ export declare function startTXE(options: any, signalHandlers: Array<() => Promise<void>>, debugLogger: Logger): Promise<void>;
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfdHhlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NtZHMvc3RhcnRfdHhlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3BELHdCQUFzQixRQUFRLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBWTNHIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"start_txe.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_txe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,iBAU/D"}
1
+ {"version":3,"file":"start_txe.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_txe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,iBAY3G"}
@@ -1,11 +1,12 @@
1
1
  import { startHttpRpcServer } from '@aztec/foundation/json-rpc/server';
2
- import { createTXERpcServer } from '@aztec/txe';
3
- export async function startTXE(options, debugLogger) {
2
+ import { createTXERpcServer } from '@aztec/txe/server';
3
+ export async function startTXE(options, signalHandlers, debugLogger) {
4
4
  debugLogger.info(`Setting up TXE...`);
5
- const txeServer = createTXERpcServer(debugLogger);
6
- const { port } = await startHttpRpcServer(txeServer, {
5
+ const txeServer = await createTXERpcServer(debugLogger);
6
+ const httpServer = await startHttpRpcServer(txeServer, {
7
7
  port: options.port,
8
8
  timeoutMs: 1e3 * 60 * 5
9
9
  });
10
- debugLogger.info(`TXE listening on port ${port}`);
10
+ signalHandlers.push(()=>new Promise((resolve)=>httpServer.close(()=>resolve())));
11
+ debugLogger.info(`TXE listening on port ${httpServer.port}`);
11
12
  }
@@ -3,6 +3,11 @@ export interface CompiledArtifact {
3
3
  file_map: unknown;
4
4
  functions: ContractFunction[];
5
5
  bytecode?: string;
6
+ /**
7
+ * Set to true by the AVM transpiler (invoked via `bb aztec_process`) once the contract has been transpiled and its
8
+ * verification keys generated. Absent on raw `nargo compile` output, hence optional.
9
+ */
10
+ transpiled?: boolean;
6
11
  }
7
12
  export interface ContractFunction {
8
13
  name: string;
@@ -18,4 +23,4 @@ export interface ArtifactFile {
18
23
  }
19
24
  /** Reads all JSON artifact files from a target directory and returns their parsed contents. */
20
25
  export declare function readArtifactFiles(targetDir: string): Promise<ArtifactFile[]>;
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWZhY3RzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpL2NtZHMvdXRpbHMvYXJ0aWZhY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUNyQixRQUFRLEVBQUUsT0FBTyxDQUFDO0lBQ2xCLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0lBQzlCLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNuQjtBQUVELE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLEdBQUcsRUFBRSxPQUFPLENBQUM7SUFDYixRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLGFBQWEsRUFBRSxPQUFPLENBQUM7SUFDdkIsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDNUI7QUFFRCxNQUFNLFdBQVcsWUFBWTtJQUMzQixJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNqQixPQUFPLEVBQUUsZ0JBQWdCLENBQUM7Q0FDM0I7QUFFRCwrRkFBK0Y7QUFDL0Ysd0JBQXNCLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBa0JsRiJ9
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWZhY3RzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpL2NtZHMvdXRpbHMvYXJ0aWZhY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUNyQixRQUFRLEVBQUUsT0FBTyxDQUFDO0lBQ2xCLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0lBQzlCLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNsQjs7O09BR0c7SUFDSCxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDdEI7QUFFRCxNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixHQUFHLEVBQUUsT0FBTyxDQUFDO0lBQ2IsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNqQixhQUFhLEVBQUUsT0FBTyxDQUFDO0lBQ3ZCLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxDQUFDO0NBQzVCO0FBRUQsTUFBTSxXQUFXLFlBQVk7SUFDM0IsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsT0FBTyxFQUFFLGdCQUFnQixDQUFDO0NBQzNCO0FBRUQsK0ZBQStGO0FBQy9GLHdCQUFzQixpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQWtCbEYifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../../src/cli/cmds/utils/artifacts.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,+FAA+F;AAC/F,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAkBlF"}
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../../src/cli/cmds/utils/artifacts.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,+FAA+F;AAC/F,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAkBlF"}
@@ -1,4 +1,4 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
- /** Warns if the `aztec` dependency tag in any crate's Nargo.toml doesn't match the CLI version. */
2
+ /** Warns if any aztec-nr git dependency in a crate's Nargo.toml has a tag that doesn't match the CLI version. */
3
3
  export declare function warnIfAztecVersionMismatch(log: LogFn, cliVersion?: string): Promise<void>;
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Fybl9pZl9henRlY192ZXJzaW9uX21pc21hdGNoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpL2NtZHMvdXRpbHMvd2Fybl9pZl9henRlY192ZXJzaW9uX21pc21hdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBU25ELG1HQUFtRztBQUNuRyx3QkFBc0IsMEJBQTBCLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQTJDL0YifQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Fybl9pZl9henRlY192ZXJzaW9uX21pc21hdGNoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpL2NtZHMvdXRpbHMvd2Fybl9pZl9henRlY192ZXJzaW9uX21pc21hdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBMkJuRCxpSEFBaUg7QUFDakgsd0JBQXNCLDBCQUEwQixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0ErQy9GIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"warn_if_aztec_version_mismatch.d.ts","sourceRoot":"","sources":["../../../../src/cli/cmds/utils/warn_if_aztec_version_mismatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AASnD,mGAAmG;AACnG,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C/F"}
1
+ {"version":3,"file":"warn_if_aztec_version_mismatch.d.ts","sourceRoot":"","sources":["../../../../src/cli/cmds/utils/warn_if_aztec_version_mismatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AA2BnD,iHAAiH;AACjH,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C/F"}
@@ -1,12 +1,24 @@
1
- import { getPackageVersion } from '@aztec/stdlib/update-checker';
1
+ import { DEV_VERSION, getPackageVersion } from '@aztec/stdlib/update-checker';
2
2
  import TOML from '@iarna/toml';
3
3
  import { readFile } from 'fs/promises';
4
4
  import { join } from 'path';
5
5
  import { collectCrateDirs } from './collect_crate_dirs.js';
6
- /** Warns if the `aztec` dependency tag in any crate's Nargo.toml doesn't match the CLI version. */ export async function warnIfAztecVersionMismatch(log, cliVersion) {
6
+ /** Returns true if the given git URL points to the AztecProtocol/aztec-nr repository. */ function isAztecNrGitUrl(gitUrl) {
7
+ let url;
8
+ try {
9
+ url = new URL(gitUrl);
10
+ } catch {
11
+ return false;
12
+ }
13
+ if (url.hostname !== 'github.com') {
14
+ return false;
15
+ }
16
+ const repoPath = url.pathname.replace(/^\//, '').replace(/\.git$/, '').replace(/\/$/, '');
17
+ return repoPath === 'AztecProtocol/aztec-nr';
18
+ }
19
+ /** Warns if any aztec-nr git dependency in a crate's Nargo.toml has a tag that doesn't match the CLI version. */ export async function warnIfAztecVersionMismatch(log, cliVersion) {
7
20
  const version = cliVersion ?? getPackageVersion();
8
- if (!version) {
9
- log(`WARNING: aztec CLI version not found. Skipping dependency compatibility check.`);
21
+ if (version === DEV_VERSION) {
10
22
  return;
11
23
  }
12
24
  const expectedTag = `v${version}`;
@@ -23,19 +35,27 @@ import { collectCrateDirs } from './collect_crate_dirs.js';
23
35
  continue;
24
36
  }
25
37
  const parsed = TOML.parse(content);
26
- const aztecDep = parsed.dependencies?.aztec;
27
- if (!aztecDep || typeof aztecDep !== 'object' || typeof aztecDep.tag !== 'string') {
28
- continue;
29
- }
30
- if (aztecDep.tag !== expectedTag) {
31
- mismatches.push({
32
- file: tomlPath,
33
- tag: aztecDep.tag
34
- });
38
+ const deps = parsed.dependencies ?? {};
39
+ for (const [depName, dep] of Object.entries(deps)){
40
+ // Skip non-object deps (e.g. malformed entries) and anything that isn't a tagged git dep.
41
+ if (!dep || typeof dep !== 'object' || typeof dep.git !== 'string' || typeof dep.tag !== 'string') {
42
+ continue;
43
+ }
44
+ // Only flag deps that are sourced from the aztec-nr repo.
45
+ if (!isAztecNrGitUrl(dep.git)) {
46
+ continue;
47
+ }
48
+ if (dep.tag !== expectedTag) {
49
+ mismatches.push({
50
+ file: tomlPath,
51
+ depName,
52
+ tag: dep.tag
53
+ });
54
+ }
35
55
  }
36
56
  }
37
57
  if (mismatches.length > 0) {
38
- const details = mismatches.map((m)=>` ${m.file} (${m.tag})`).join('\n');
39
- log(`WARNING: Aztec dependency version mismatch detected.\n` + `The following crates have an aztec dependency that does not match the CLI version (${expectedTag}):\n` + `${details}\n\n` + `See https://docs.aztec.network/errors/9 for how to update your dependencies.`);
58
+ const details = mismatches.map((m)=>` ${m.file} — ${m.depName} (${m.tag})`).join('\n');
59
+ log(`WARNING: Aztec dependency version mismatch detected.\n` + `The following aztec-nr dependencies do not match the CLI version (${expectedTag}):\n` + `${details}\n\n` + `See https://docs.aztec.network/errors/9 for how to update your dependencies.`);
40
60
  }
41
61
  }
@@ -1,8 +1,7 @@
1
1
  import type { AztecNodeConfig } from '@aztec/aztec-node';
2
2
  import type { AccountManager } from '@aztec/aztec.js/wallet';
3
- import type { ViemClient } from '@aztec/ethereum/types';
4
- import type { ConfigMappingsType, NetworkNames } from '@aztec/foundation/config';
5
- import { type LogFn } from '@aztec/foundation/log';
3
+ import type { ConfigMappingsType } from '@aztec/foundation/config';
4
+ import type { LogFn } from '@aztec/foundation/log';
6
5
  import type { ProverConfig } from '@aztec/stdlib/interfaces/server';
7
6
  import type { EmbeddedWallet } from '@aztec/wallets/embedded';
8
7
  import type { Command } from 'commander';
@@ -19,6 +18,13 @@ export declare const enum ExitCode {
19
18
  }
20
19
  export declare function shutdown(logFn: LogFn, exitCode: ExitCode, cb?: Array<() => Promise<void>>): Promise<never>;
21
20
  export declare function isShuttingDown(): boolean;
21
+ /**
22
+ * Stops the node's subsystems (via the registered signal handlers) without exiting the process, leaving
23
+ * the HTTP health server listening so K8s liveness/readiness probes keep passing. Unlike {@link shutdown}
24
+ * this deliberately does not latch `shutdownPromise` or call `process.exit`; instead it re-arms
25
+ * SIGTERM/SIGINT so a later K8s pod deletion still terminates the wound-down pod with a clean exit.
26
+ */
27
+ export declare function softShutdown(logFn: LogFn, signalHandlers: Array<() => Promise<void>>): Promise<void>;
22
28
  export declare const installSignalHandlers: (logFn: LogFn, cb?: (() => Promise<void>)[] | undefined) => void;
23
29
  /**
24
30
  * Creates logs for the initial accounts
@@ -61,6 +67,5 @@ export declare function preloadCrsDataForVerifying({ realProofs }: Pick<AztecNod
61
67
  * @param log - Logging function
62
68
  */
63
69
  export declare function preloadCrsDataForServerSideProving({ realProofs }: Pick<ProverConfig, 'realProofs'>, log: LogFn): Promise<void>;
64
- export declare function setupVersionChecker(network: NetworkNames, followsCanonicalRollup: boolean, publicClient: ViemClient, signalHandlers: Array<() => Promise<void>>, cacheDir?: string): Promise<void>;
65
70
  export declare function stringifyConfig(config: object): string;
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzdELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxLQUFLLEtBQUssRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc5RCxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHekMsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFFcEYsMEJBQWtCLFFBQVE7SUFDeEIsT0FBTyxJQUFJO0lBQ1gsS0FBSyxJQUFJO0lBQ1QsY0FBYyxLQUFLO0lBQ25CLGVBQWUsS0FBSztJQUVwQixNQUFNLE1BQU07SUFDWixNQUFNLE1BQU07SUFDWixPQUFPLE1BQU07SUFDYixPQUFPLE1BQU07Q0FDZDtBQUdELHdCQUFnQixRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FnQjFHO0FBRUQsd0JBQWdCLGNBQWMsSUFBSSxPQUFPLENBRXhDO0FBRUQsZUFBTyxNQUFNLHFCQUFxQixrRUFhakMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsd0JBQXNCLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxxQkF5QmhHO0FBRUQsd0JBQWdCLGFBQWEsQ0FBQyxRQUFRLEVBQUU7SUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQTtDQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBaUIvRjtBQUVELHdCQUFnQixjQUFjLENBQzVCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsWUFBWSxFQUFFLE1BQU0sRUFDcEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxlQUFlLEVBQUUsTUFBTSxFQUN2QixnQkFBZ0IsRUFBRSxNQUFNLEdBQ3ZCLE1BQU0sQ0FLUjtBQWlDRCxlQUFPLE1BQU0sVUFBVSxxREFTdEIsQ0FBQztBQUVGLGVBQU8sTUFBTSx1QkFBdUIsY0F5Qm5DLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILGVBQU8sTUFBTSx3QkFBd0IsMEVBU3BDLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsZUFBTyxNQUFNLHNCQUFzQixHQUFJLENBQUMsd0ZBa0N2QyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILHdCQUFzQiwwQkFBMEIsQ0FDOUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxFQUNuRCxHQUFHLEVBQUUsS0FBSyxHQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLZjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBc0Isa0NBQWtDLENBQ3RELEVBQUUsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFDaEQsR0FBRyxFQUFFLEtBQUssR0FDVCxPQUFPLENBQUMsSUFBSSxDQUFDLENBS2Y7QUFFRCx3QkFBc0IsbUJBQW1CLENBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQ3JCLHNCQUFzQixFQUFFLE9BQU8sRUFDL0IsWUFBWSxFQUFFLFVBQVUsRUFDeEIsY0FBYyxFQUFFLEtBQUssQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUMxQyxRQUFRLENBQUMsRUFBRSxNQUFNLEdBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0E4Q2Y7QUFFRCx3QkFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUl0RCJ9
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHOUQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFxQixNQUFNLDBCQUEwQixDQUFDO0FBRXBGLDBCQUFrQixRQUFRO0lBQ3hCLE9BQU8sSUFBSTtJQUNYLEtBQUssSUFBSTtJQUNULGNBQWMsS0FBSztJQUNuQixlQUFlLEtBQUs7SUFFcEIsTUFBTSxNQUFNO0lBQ1osTUFBTSxNQUFNO0lBQ1osT0FBTyxNQUFNO0lBQ2IsT0FBTyxNQUFNO0NBQ2Q7QUFHRCx3QkFBZ0IsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBZ0IxRztBQUVELHdCQUFnQixjQUFjLElBQUksT0FBTyxDQUV4QztBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBVTFHO0FBRUQsZUFBTyxNQUFNLHFCQUFxQixrRUFhakMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsd0JBQXNCLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxxQkF5QmhHO0FBRUQsd0JBQWdCLGFBQWEsQ0FBQyxRQUFRLEVBQUU7SUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQTtDQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBaUIvRjtBQUVELHdCQUFnQixjQUFjLENBQzVCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsWUFBWSxFQUFFLE1BQU0sRUFDcEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxlQUFlLEVBQUUsTUFBTSxFQUN2QixnQkFBZ0IsRUFBRSxNQUFNLEdBQ3ZCLE1BQU0sQ0FLUjtBQWlDRCxlQUFPLE1BQU0sVUFBVSxxREFTdEIsQ0FBQztBQUVGLGVBQU8sTUFBTSx1QkFBdUIsY0F5Qm5DLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILGVBQU8sTUFBTSx3QkFBd0IsMEVBU3BDLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsZUFBTyxNQUFNLHNCQUFzQixHQUFJLENBQUMsd0ZBa0N2QyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILHdCQUFzQiwwQkFBMEIsQ0FDOUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxFQUNuRCxHQUFHLEVBQUUsS0FBSyxHQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLZjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBc0Isa0NBQWtDLENBQ3RELEVBQUUsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFDaEQsR0FBRyxFQUFFLEtBQUssR0FDVCxPQUFPLENBQUMsSUFBSSxDQUFDLENBS2Y7QUFFRCx3QkFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUl0RCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/cli/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEjF,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,EAAE,KAAK,gBAAgB,EAAqB,MAAM,0BAA0B,CAAC;AAEpF,0BAAkB,QAAQ;IACxB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,cAAc,KAAK;IACnB,eAAe,KAAK;IAEpB,MAAM,MAAM;IACZ,MAAM,MAAM;IACZ,OAAO,MAAM;IACb,OAAO,MAAM;CACd;AAGD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAgB1G;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,eAAO,MAAM,qBAAqB,kEAajC,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,eAAe,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,cAAc,qBAyBhG;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAiB/F;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAKR;AAiCD,eAAO,MAAM,UAAU,qDAStB,CAAC;AAEF,eAAO,MAAM,uBAAuB,cAyBnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,0EASpC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,wFAkCvC,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,EACnD,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;GAIG;AACH,wBAAsB,kCAAkC,CACtD,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAChD,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,YAAY,EACrB,sBAAsB,EAAE,OAAO,EAC/B,YAAY,EAAE,UAAU,EACxB,cAAc,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAC1C,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAItD"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/cli/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,KAAK,gBAAgB,EAAqB,MAAM,0BAA0B,CAAC;AAEpF,0BAAkB,QAAQ;IACxB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,cAAc,KAAK;IACnB,eAAe,KAAK;IAEpB,MAAM,MAAM;IACZ,MAAM,MAAM;IACZ,OAAO,MAAM;IACb,OAAO,MAAM;CACd;AAGD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAgB1G;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAU1G;AAED,eAAO,MAAM,qBAAqB,kEAajC,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,eAAe,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,cAAc,qBAyBhG;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAiB/F;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAKR;AAiCD,eAAO,MAAM,UAAU,qDAStB,CAAC;AAEF,eAAO,MAAM,uBAAuB,cAyBnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,0EASpC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,wFAkCvC,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,EACnD,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;GAIG;AACH,wBAAsB,kCAAkC,CACtD,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAChD,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAItD"}