@aztec/aztec 0.0.1-commit.f504929 → 0.0.1-commit.f5d02921e

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 (80) hide show
  1. package/dest/bin/index.js +2 -2
  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 +16 -7
  5. package/dest/cli/aztec_start_options.d.ts +1 -1
  6. package/dest/cli/aztec_start_options.d.ts.map +1 -1
  7. package/dest/cli/aztec_start_options.js +2 -3
  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 +9 -1
  11. package/dest/cli/cmds/profile_flamegraph.d.ts +1 -1
  12. package/dest/cli/cmds/profile_flamegraph.d.ts.map +1 -1
  13. package/dest/cli/cmds/profile_flamegraph.js +2 -1
  14. package/dest/cli/cmds/profile_gates.d.ts +1 -1
  15. package/dest/cli/cmds/profile_gates.d.ts.map +1 -1
  16. package/dest/cli/cmds/profile_gates.js +2 -1
  17. package/dest/cli/cmds/standby.d.ts +32 -0
  18. package/dest/cli/cmds/standby.d.ts.map +1 -0
  19. package/dest/cli/cmds/standby.js +97 -0
  20. package/dest/cli/cmds/start_archiver.d.ts +2 -2
  21. package/dest/cli/cmds/start_archiver.d.ts.map +1 -1
  22. package/dest/cli/cmds/start_archiver.js +1 -1
  23. package/dest/cli/cmds/start_node.d.ts +3 -2
  24. package/dest/cli/cmds/start_node.d.ts.map +1 -1
  25. package/dest/cli/cmds/start_node.js +19 -71
  26. package/dest/cli/cmds/start_prover_broker.d.ts +1 -1
  27. package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
  28. package/dest/cli/cmds/start_prover_broker.js +12 -6
  29. package/dest/cli/cmds/utils/collect_crate_dirs.d.ts +21 -0
  30. package/dest/cli/cmds/utils/collect_crate_dirs.d.ts.map +1 -0
  31. package/dest/cli/cmds/utils/collect_crate_dirs.js +114 -0
  32. package/dest/cli/cmds/utils/needs_recompile.d.ts +10 -0
  33. package/dest/cli/cmds/utils/needs_recompile.d.ts.map +1 -0
  34. package/dest/cli/cmds/utils/needs_recompile.js +90 -0
  35. package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.d.ts +4 -0
  36. package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.d.ts.map +1 -0
  37. package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.js +41 -0
  38. package/dest/cli/util.d.ts +3 -5
  39. package/dest/cli/util.d.ts.map +1 -1
  40. package/dest/cli/util.js +37 -78
  41. package/dest/local-network/local-network.d.ts +1 -1
  42. package/dest/local-network/local-network.d.ts.map +1 -1
  43. package/dest/local-network/local-network.js +9 -1
  44. package/dest/testing/anvil_test_watcher.js +1 -1
  45. package/dest/testing/cheat_codes.js +1 -1
  46. package/dest/testing/epoch_test_settler.d.ts +1 -1
  47. package/dest/testing/epoch_test_settler.d.ts.map +1 -1
  48. package/dest/testing/epoch_test_settler.js +3 -4
  49. package/dest/testing/index.d.ts +2 -1
  50. package/dest/testing/index.d.ts.map +1 -1
  51. package/dest/testing/index.js +1 -0
  52. package/dest/testing/token_allowed_setup.d.ts +7 -0
  53. package/dest/testing/token_allowed_setup.d.ts.map +1 -0
  54. package/dest/testing/token_allowed_setup.js +20 -0
  55. package/package.json +34 -34
  56. package/scripts/aztec.sh +4 -1
  57. package/src/bin/index.ts +2 -2
  58. package/src/cli/aztec_start_action.ts +11 -7
  59. package/src/cli/aztec_start_options.ts +2 -3
  60. package/src/cli/cmds/compile.ts +11 -1
  61. package/src/cli/cmds/profile_flamegraph.ts +2 -1
  62. package/src/cli/cmds/profile_gates.ts +2 -1
  63. package/src/cli/cmds/standby.ts +132 -0
  64. package/src/cli/cmds/start_archiver.ts +1 -1
  65. package/src/cli/cmds/start_node.ts +24 -102
  66. package/src/cli/cmds/start_prover_broker.ts +14 -14
  67. package/src/cli/cmds/utils/collect_crate_dirs.ts +118 -0
  68. package/src/cli/cmds/utils/needs_recompile.ts +98 -0
  69. package/src/cli/cmds/utils/warn_if_aztec_version_mismatch.ts +54 -0
  70. package/src/cli/util.ts +41 -74
  71. package/src/local-network/local-network.ts +6 -0
  72. package/src/testing/anvil_test_watcher.ts +1 -1
  73. package/src/testing/cheat_codes.ts +1 -1
  74. package/src/testing/epoch_test_settler.ts +3 -4
  75. package/src/testing/index.ts +1 -0
  76. package/src/testing/token_allowed_setup.ts +19 -0
  77. package/dest/cli/release_version.d.ts +0 -2
  78. package/dest/cli/release_version.d.ts.map +0 -1
  79. package/dest/cli/release_version.js +0 -14
  80. package/src/cli/release_version.ts +0 -21
@@ -39,6 +39,7 @@ import { createAccountLogs } from '../cli/util.js';
39
39
  import { DefaultMnemonic } from '../mnemonic.js';
40
40
  import { AnvilTestWatcher } from '../testing/anvil_test_watcher.js';
41
41
  import { EpochTestSettler } from '../testing/epoch_test_settler.js';
42
+ import { getTokenAllowedSetupFunctions } from '../testing/token_allowed_setup.js';
42
43
  import { getBananaFPCAddress, setupBananaFPC } from './banana_fpc.js';
43
44
  import { getSponsoredFPCAddress } from './sponsored_fpc.js';
44
45
 
@@ -102,9 +103,14 @@ export async function createLocalNetwork(config: Partial<LocalNetworkConfig> = {
102
103
  logger.warn(`Multiple L1 RPC URLs provided. Local networks will only use the first one: ${l1RpcUrl}`);
103
104
  }
104
105
 
106
+ // The local network deploys a banana FPC with Token contracts, so include Token entries
107
+ // in the setup allowlist so FPC-based fee payments work out of the box.
108
+ const tokenAllowList = await getTokenAllowedSetupFunctions();
109
+
105
110
  const aztecNodeConfig: AztecNodeConfig = {
106
111
  ...getConfigEnvVars(),
107
112
  ...config,
113
+ txPublicSetupAllowListExtend: [...tokenAllowList, ...(config.txPublicSetupAllowListExtend ?? [])],
108
114
  };
109
115
  const hdAccount = mnemonicToAccount(config.l1Mnemonic || DefaultMnemonic);
110
116
  if (
@@ -130,7 +130,7 @@ export class AnvilTestWatcher {
130
130
  return;
131
131
  }
132
132
 
133
- const l1Time = (await this.cheatcodes.timestamp()) * 1000;
133
+ const l1Time = (await this.cheatcodes.lastBlockTimestamp()) * 1000;
134
134
  const wallTime = this.dateProvider.now();
135
135
  if (l1Time > wallTime) {
136
136
  this.logger.warn(`L1 is ahead of wall time. Syncing wall time to L1 time`);
@@ -72,7 +72,7 @@ export class CheatCodes {
72
72
  * @param duration - The duration to advance time by (in seconds)
73
73
  */
74
74
  async warpL2TimeAtLeastBy(sequencerClient: SequencerClient, node: AztecNode, duration: bigint | number) {
75
- const currentTimestamp = await this.eth.timestamp();
75
+ const currentTimestamp = await this.eth.lastBlockTimestamp();
76
76
  const targetTimestamp = BigInt(currentTimestamp) + BigInt(duration);
77
77
  await this.warpL2TimeAtLeastTo(sequencerClient, node, targetTimestamp);
78
78
  }
@@ -4,7 +4,7 @@ import { type EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
4
4
  import type { Logger } from '@aztec/foundation/log';
5
5
  import { EpochMonitor } from '@aztec/prover-node';
6
6
  import type { EthAddress, L2BlockSource } from '@aztec/stdlib/block';
7
- import { computeL2ToL1MembershipWitnessFromMessagesInEpoch } from '@aztec/stdlib/messaging';
7
+ import { computeEpochOutHash } from '@aztec/stdlib/messaging';
8
8
 
9
9
  export class EpochTestSettler {
10
10
  private rollupCheatCodes: RollupCheatCodes;
@@ -51,9 +51,8 @@ export class EpochTestSettler {
51
51
  messagesInEpoch[checkpointIndex].push(block.body.txEffects.map(txEffect => txEffect.l2ToL1Msgs));
52
52
  }
53
53
 
54
- const [firstMessage] = messagesInEpoch.flat(3);
55
- if (firstMessage) {
56
- const { root: outHash } = computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoch, firstMessage);
54
+ const outHash = computeEpochOutHash(messagesInEpoch);
55
+ if (!outHash.isZero()) {
57
56
  await this.rollupCheatCodes.insertOutbox(epoch, outHash.toBigInt());
58
57
  } else {
59
58
  this.log.info(`No L2 to L1 messages in epoch ${epoch}`);
@@ -2,3 +2,4 @@ export { AnvilTestWatcher } from './anvil_test_watcher.js';
2
2
  export { EthCheatCodes, RollupCheatCodes } from '@aztec/ethereum/test';
3
3
  export { CheatCodes } from './cheat_codes.js';
4
4
  export { EpochTestSettler } from './epoch_test_settler.js';
5
+ export { getTokenAllowedSetupFunctions } from './token_allowed_setup.js';
@@ -0,0 +1,19 @@
1
+ import { TokenContractArtifact } from '@aztec/noir-contracts.js/Token';
2
+ import { buildAllowedElement } from '@aztec/p2p/msg_validators';
3
+ import { getContractClassFromArtifact } from '@aztec/stdlib/contract';
4
+ import type { AllowedElement } from '@aztec/stdlib/interfaces/server';
5
+
6
+ /**
7
+ * Returns Token-specific allowlist entries needed for FPC-based fee payments.
8
+ * These are test-only: FPC-based fee payment with custom tokens won't work on mainnet alpha.
9
+ */
10
+ export async function getTokenAllowedSetupFunctions(): Promise<AllowedElement[]> {
11
+ const tokenClassId = (await getContractClassFromArtifact(TokenContractArtifact)).id;
12
+ const target = { classId: tokenClassId };
13
+ return Promise.all([
14
+ // Token: needed for private transfers via FPC (transfer_to_public enqueues this)
15
+ buildAllowedElement(TokenContractArtifact, target, '_increase_public_balance', { onlySelf: true }),
16
+ // Token: needed for public transfers via FPC (fee_entrypoint_public enqueues this)
17
+ buildAllowedElement(TokenContractArtifact, target, 'transfer_in_public'),
18
+ ]);
19
+ }
@@ -1,2 +0,0 @@
1
- export declare const getCliVersion: () => any;
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsZWFzZV92ZXJzaW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL3JlbGVhc2VfdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxlQUFPLE1BQU0sYUFBYSxXQWV6QixDQUFDIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"release_version.d.ts","sourceRoot":"","sources":["../../src/cli/release_version.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa,WAezB,CAAC"}
@@ -1,14 +0,0 @@
1
- import { fileURLToPath } from '@aztec/foundation/url';
2
- import { readFileSync } from 'fs';
3
- import { dirname, resolve } from 'path';
4
- export const getCliVersion = ()=>{
5
- const packageJsonPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../package.json');
6
- const cliVersion = JSON.parse(readFileSync(packageJsonPath).toString()).version;
7
- // If the version is 0.1.0, this is a placeholder version and we are in a docker container; query release please for the latest version
8
- if (cliVersion === '0.1.0') {
9
- const releasePleasePath = resolve(dirname(fileURLToPath(import.meta.url)), '../../../../.release-please-manifest.json');
10
- const releaseVersion = JSON.parse(readFileSync(releasePleasePath).toString())['.'];
11
- return releaseVersion;
12
- }
13
- return cliVersion;
14
- };
@@ -1,21 +0,0 @@
1
- import { fileURLToPath } from '@aztec/foundation/url';
2
-
3
- import { readFileSync } from 'fs';
4
- import { dirname, resolve } from 'path';
5
-
6
- export const getCliVersion = () => {
7
- const packageJsonPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../package.json');
8
- const cliVersion: string = JSON.parse(readFileSync(packageJsonPath).toString()).version;
9
-
10
- // If the version is 0.1.0, this is a placeholder version and we are in a docker container; query release please for the latest version
11
- if (cliVersion === '0.1.0') {
12
- const releasePleasePath = resolve(
13
- dirname(fileURLToPath(import.meta.url)),
14
- '../../../../.release-please-manifest.json',
15
- );
16
- const releaseVersion = JSON.parse(readFileSync(releasePleasePath).toString())['.'];
17
- return releaseVersion;
18
- }
19
-
20
- return cliVersion;
21
- };