@aztec/aztec 0.0.0-test.1 → 0.0.1-commit.5476d83

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 (139) hide show
  1. package/README.md +1 -1
  2. package/dest/bin/index.d.ts +1 -1
  3. package/dest/bin/index.js +20 -12
  4. package/dest/cli/aztec_start_action.d.ts +1 -1
  5. package/dest/cli/aztec_start_action.d.ts.map +1 -1
  6. package/dest/cli/aztec_start_action.js +36 -37
  7. package/dest/cli/aztec_start_options.d.ts +5 -3
  8. package/dest/cli/aztec_start_options.d.ts.map +1 -1
  9. package/dest/cli/aztec_start_options.js +142 -210
  10. package/dest/cli/cli.d.ts +1 -1
  11. package/dest/cli/cli.d.ts.map +1 -1
  12. package/dest/cli/cli.js +50 -1
  13. package/dest/cli/cmds/start_archiver.d.ts +1 -1
  14. package/dest/cli/cmds/start_archiver.d.ts.map +1 -1
  15. package/dest/cli/cmds/start_archiver.js +18 -10
  16. package/dest/cli/cmds/start_blob_sink.d.ts +1 -1
  17. package/dest/cli/cmds/start_blob_sink.d.ts.map +1 -1
  18. package/dest/cli/cmds/start_blob_sink.js +17 -1
  19. package/dest/cli/cmds/start_bot.d.ts +4 -7
  20. package/dest/cli/cmds/start_bot.d.ts.map +1 -1
  21. package/dest/cli/cmds/start_bot.js +24 -13
  22. package/dest/cli/cmds/start_node.d.ts +2 -2
  23. package/dest/cli/cmds/start_node.d.ts.map +1 -1
  24. package/dest/cli/cmds/start_node.js +67 -80
  25. package/dest/cli/cmds/start_p2p_bootstrap.d.ts +1 -1
  26. package/dest/cli/cmds/start_p2p_bootstrap.d.ts.map +1 -1
  27. package/dest/cli/cmds/start_p2p_bootstrap.js +9 -4
  28. package/dest/cli/cmds/start_prover_agent.d.ts +1 -1
  29. package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -1
  30. package/dest/cli/cmds/start_prover_agent.js +31 -2
  31. package/dest/cli/cmds/start_prover_broker.d.ts +1 -1
  32. package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
  33. package/dest/cli/cmds/start_prover_broker.js +9 -3
  34. package/dest/cli/cmds/start_prover_node.d.ts +1 -1
  35. package/dest/cli/cmds/start_prover_node.d.ts.map +1 -1
  36. package/dest/cli/cmds/start_prover_node.js +43 -45
  37. package/dest/cli/cmds/start_txe.d.ts +1 -1
  38. package/dest/cli/index.d.ts +1 -1
  39. package/dest/cli/preload_crs.d.ts +3 -0
  40. package/dest/cli/preload_crs.d.ts.map +1 -0
  41. package/dest/cli/preload_crs.js +6 -0
  42. package/dest/cli/release_version.d.ts +2 -0
  43. package/dest/cli/release_version.d.ts.map +1 -0
  44. package/dest/cli/release_version.js +14 -0
  45. package/dest/cli/util.d.ts +38 -7
  46. package/dest/cli/util.d.ts.map +1 -1
  47. package/dest/cli/util.js +198 -28
  48. package/dest/cli/versioning.d.ts +1 -1
  49. package/dest/cli/versioning.js +3 -3
  50. package/dest/examples/token.d.ts +1 -1
  51. package/dest/examples/token.js +31 -18
  52. package/dest/examples/util.d.ts +5 -6
  53. package/dest/examples/util.d.ts.map +1 -1
  54. package/dest/examples/util.js +5 -6
  55. package/dest/index.d.ts +2 -2
  56. package/dest/index.d.ts.map +1 -1
  57. package/dest/index.js +1 -1
  58. package/dest/local-network/banana_fpc.d.ts +10 -0
  59. package/dest/local-network/banana_fpc.d.ts.map +1 -0
  60. package/dest/{sandbox → local-network}/banana_fpc.js +19 -21
  61. package/dest/local-network/index.d.ts +4 -0
  62. package/dest/local-network/index.d.ts.map +1 -0
  63. package/dest/local-network/index.js +3 -0
  64. package/dest/local-network/local-network.d.ts +74 -0
  65. package/dest/local-network/local-network.d.ts.map +1 -0
  66. package/dest/{sandbox/sandbox.js → local-network/local-network.js} +59 -57
  67. package/dest/local-network/sponsored_fpc.d.ts +5 -0
  68. package/dest/local-network/sponsored_fpc.d.ts.map +1 -0
  69. package/dest/local-network/sponsored_fpc.js +18 -0
  70. package/dest/mnemonic.d.ts +1 -1
  71. package/dest/splash.d.ts +1 -1
  72. package/dest/testing/anvil_test_watcher.d.ts +34 -0
  73. package/dest/testing/anvil_test_watcher.d.ts.map +1 -0
  74. package/dest/testing/anvil_test_watcher.js +144 -0
  75. package/dest/testing/cheat_codes.d.ts +41 -0
  76. package/dest/testing/cheat_codes.d.ts.map +1 -0
  77. package/dest/testing/cheat_codes.js +62 -0
  78. package/dest/testing/index.d.ts +4 -0
  79. package/dest/testing/index.d.ts.map +1 -0
  80. package/dest/testing/index.js +3 -0
  81. package/package.json +51 -44
  82. package/src/bin/index.ts +24 -12
  83. package/src/cli/aztec_start_action.ts +32 -35
  84. package/src/cli/aztec_start_options.ts +161 -210
  85. package/src/cli/cli.ts +54 -1
  86. package/src/cli/cmds/start_archiver.ts +19 -13
  87. package/src/cli/cmds/start_blob_sink.ts +27 -1
  88. package/src/cli/cmds/start_bot.ts +35 -12
  89. package/src/cli/cmds/start_node.ts +90 -85
  90. package/src/cli/cmds/start_p2p_bootstrap.ts +12 -4
  91. package/src/cli/cmds/start_prover_agent.ts +22 -2
  92. package/src/cli/cmds/start_prover_broker.ts +23 -3
  93. package/src/cli/cmds/start_prover_node.ts +53 -50
  94. package/src/cli/preload_crs.ts +7 -0
  95. package/src/cli/release_version.ts +21 -0
  96. package/src/cli/util.ts +208 -34
  97. package/src/cli/versioning.ts +3 -3
  98. package/src/examples/token.ts +23 -19
  99. package/src/examples/util.ts +6 -8
  100. package/src/index.ts +5 -6
  101. package/src/{sandbox → local-network}/banana_fpc.ts +20 -25
  102. package/src/local-network/index.ts +7 -0
  103. package/src/{sandbox/sandbox.ts → local-network/local-network.ts} +81 -68
  104. package/src/local-network/sponsored_fpc.ts +26 -0
  105. package/src/testing/anvil_test_watcher.ts +166 -0
  106. package/src/testing/cheat_codes.ts +78 -0
  107. package/src/testing/index.ts +3 -0
  108. package/dest/cli/chain_l2_config.d.ts +0 -19
  109. package/dest/cli/chain_l2_config.d.ts.map +0 -1
  110. package/dest/cli/chain_l2_config.js +0 -56
  111. package/dest/cli/cmds/start_faucet.d.ts +0 -4
  112. package/dest/cli/cmds/start_faucet.d.ts.map +0 -1
  113. package/dest/cli/cmds/start_faucet.js +0 -20
  114. package/dest/cli/cmds/start_pxe.d.ts +0 -16
  115. package/dest/cli/cmds/start_pxe.d.ts.map +0 -1
  116. package/dest/cli/cmds/start_pxe.js +0 -95
  117. package/dest/cli/get_l1_config.d.ts +0 -7
  118. package/dest/cli/get_l1_config.d.ts.map +0 -1
  119. package/dest/cli/get_l1_config.js +0 -13
  120. package/dest/sandbox/banana_fpc.d.ts +0 -11
  121. package/dest/sandbox/banana_fpc.d.ts.map +0 -1
  122. package/dest/sandbox/index.d.ts +0 -5
  123. package/dest/sandbox/index.d.ts.map +0 -1
  124. package/dest/sandbox/index.js +0 -4
  125. package/dest/sandbox/sandbox.d.ts +0 -76
  126. package/dest/sandbox/sandbox.d.ts.map +0 -1
  127. package/dest/sandbox/sponsored_fee_payment_method.d.ts +0 -23
  128. package/dest/sandbox/sponsored_fee_payment_method.d.ts.map +0 -1
  129. package/dest/sandbox/sponsored_fee_payment_method.js +0 -36
  130. package/dest/sandbox/sponsored_fpc.d.ts +0 -6
  131. package/dest/sandbox/sponsored_fpc.d.ts.map +0 -1
  132. package/dest/sandbox/sponsored_fpc.js +0 -26
  133. package/src/cli/chain_l2_config.ts +0 -74
  134. package/src/cli/cmds/start_faucet.ts +0 -34
  135. package/src/cli/cmds/start_pxe.ts +0 -129
  136. package/src/cli/get_l1_config.ts +0 -18
  137. package/src/sandbox/index.ts +0 -5
  138. package/src/sandbox/sponsored_fee_payment_method.ts +0 -46
  139. package/src/sandbox/sponsored_fpc.ts +0 -38
@@ -1,20 +1,19 @@
1
- import { EthAddress } from '@aztec/aztec.js';
2
- import type { ViemPublicClient, ViemWalletClient } from '@aztec/ethereum';
1
+ import { EthAddress } from '@aztec/aztec.js/addresses';
2
+ import type { ExtendedViemWalletClient } from '@aztec/ethereum';
3
3
  import type { Abi, Narrow } from 'abitype';
4
4
  import type { Hex } from 'viem';
5
5
  /**
6
6
  * Helper function to deploy ETH contracts.
7
- * @param walletClient - A viem WalletClient.
8
- * @param publicClient - A viem PublicClient.
7
+ * @param l1Client - A viem WalletClient extended with public actions.
9
8
  * @param abi - The ETH contract's ABI (as abitype's Abi).
10
9
  * @param bytecode - The ETH contract's bytecode.
11
10
  * @param args - Constructor arguments for the contract.
12
11
  * @returns The ETH address the contract was deployed to.
13
12
  */
14
- export declare function deployL1Contract(walletClient: ViemWalletClient, publicClient: ViemPublicClient, abi: Narrow<Abi | readonly unknown[]>, bytecode: Hex, args?: readonly unknown[]): Promise<EthAddress>;
13
+ export declare function deployL1Contract(l1Client: ExtendedViemWalletClient, abi: Narrow<Abi | readonly unknown[]>, bytecode: Hex, args?: readonly unknown[]): Promise<EthAddress>;
15
14
  /**
16
15
  * Sleep for a given number of milliseconds.
17
16
  * @param ms - the number of milliseconds to sleep for
18
17
  */
19
18
  export declare function delay(ms: number): Promise<void>;
20
- //# sourceMappingURL=util.d.ts.map
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4YW1wbGVzL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHaEUsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMzQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEM7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQixnQkFBZ0IsQ0FDcEMsUUFBUSxFQUFFLHdCQUF3QixFQUNsQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsR0FBRyxTQUFTLE9BQU8sRUFBRSxDQUFDLEVBQ3JDLFFBQVEsRUFBRSxHQUFHLEVBQ2IsSUFBSSxHQUFFLFNBQVMsT0FBTyxFQUFPLEdBQzVCLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FjckI7QUFFRDs7O0dBR0c7QUFDSCx3QkFBZ0IsS0FBSyxDQUFDLEVBQUUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUUvQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/examples/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAG1E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,gBAAgB,EAC9B,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,SAAS,OAAO,EAAE,CAAC,EACrC,QAAQ,EAAE,GAAG,EACb,IAAI,GAAE,SAAS,OAAO,EAAO,GAC5B,OAAO,CAAC,UAAU,CAAC,CAcrB;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/examples/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAGhE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,wBAAwB,EAClC,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,SAAS,OAAO,EAAE,CAAC,EACrC,QAAQ,EAAE,GAAG,EACb,IAAI,GAAE,SAAS,OAAO,EAAO,GAC5B,OAAO,CAAC,UAAU,CAAC,CAcrB;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C"}
@@ -1,20 +1,19 @@
1
- import { EthAddress } from '@aztec/aztec.js';
1
+ import { EthAddress } from '@aztec/aztec.js/addresses';
2
2
  import { jsonStringify } from '@aztec/foundation/json-rpc';
3
3
  /**
4
4
  * Helper function to deploy ETH contracts.
5
- * @param walletClient - A viem WalletClient.
6
- * @param publicClient - A viem PublicClient.
5
+ * @param l1Client - A viem WalletClient extended with public actions.
7
6
  * @param abi - The ETH contract's ABI (as abitype's Abi).
8
7
  * @param bytecode - The ETH contract's bytecode.
9
8
  * @param args - Constructor arguments for the contract.
10
9
  * @returns The ETH address the contract was deployed to.
11
- */ export async function deployL1Contract(walletClient, publicClient, abi, bytecode, args = []) {
12
- const hash = await walletClient.deployContract({
10
+ */ export async function deployL1Contract(l1Client, abi, bytecode, args = []) {
11
+ const hash = await l1Client.deployContract({
13
12
  abi,
14
13
  bytecode,
15
14
  args
16
15
  });
17
- const receipt = await publicClient.waitForTransactionReceipt({
16
+ const receipt = await l1Client.waitForTransactionReceipt({
18
17
  hash
19
18
  });
20
19
  const contractAddress = receipt.contractAddress;
package/dest/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { createSandbox, getDeployedBananaCoinAddress, getDeployedBananaFPCAddress, getDeployedSponsoredFPCAddress, SponsoredFeePaymentMethod, } from './sandbox/index.js';
2
- //# sourceMappingURL=index.d.ts.map
1
+ export { createLocalNetwork, registerDeployedBananaCoinInWalletAndGetAddress, registerDeployedBananaFPCInWalletAndGetAddress, registerDeployedSponsoredFPCInWalletAndGetAddress, } from './local-network/index.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLCtDQUErQyxFQUMvQyw4Q0FBOEMsRUFDOUMsaURBQWlELEdBQ2xELE1BQU0sMEJBQTBCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,2BAA2B,EAC3B,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,+CAA+C,EAC/C,8CAA8C,EAC9C,iDAAiD,GAClD,MAAM,0BAA0B,CAAC"}
package/dest/index.js CHANGED
@@ -1 +1 @@
1
- export { createSandbox, getDeployedBananaCoinAddress, getDeployedBananaFPCAddress, getDeployedSponsoredFPCAddress, SponsoredFeePaymentMethod } from './sandbox/index.js';
1
+ export { createLocalNetwork, registerDeployedBananaCoinInWalletAndGetAddress, registerDeployedBananaFPCInWalletAndGetAddress, registerDeployedSponsoredFPCInWalletAndGetAddress } from './local-network/index.js';
@@ -0,0 +1,10 @@
1
+ import { type InitialAccountData } from '@aztec/accounts/testing';
2
+ import type { Wallet } from '@aztec/aztec.js/wallet';
3
+ import type { LogFn } from '@aztec/foundation/log';
4
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
+ export declare function getBananaCoinAddress(initialAccounts: InitialAccountData[]): Promise<AztecAddress>;
6
+ export declare function getBananaFPCAddress(initialAccounts: InitialAccountData[]): Promise<AztecAddress>;
7
+ export declare function setupBananaFPC(initialAccounts: InitialAccountData[], wallet: Wallet, log: LogFn): Promise<void>;
8
+ export declare function registerDeployedBananaCoinInWalletAndGetAddress(wallet: Wallet): Promise<AztecAddress>;
9
+ export declare function registerDeployedBananaFPCInWalletAndGetAddress(wallet: Wallet): Promise<AztecAddress>;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuYW5hX2ZwYy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvY2FsLW5ldHdvcmsvYmFuYW5hX2ZwYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxrQkFBa0IsRUFBOEIsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUduRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUF3QjNELHdCQUFzQixvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsa0JBQWtCLEVBQUUseUJBRS9FO0FBV0Qsd0JBQXNCLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSx5QkFFOUU7QUFFRCx3QkFBc0IsY0FBYyxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssaUJBY3JHO0FBRUQsd0JBQXNCLCtDQUErQyxDQUFDLE1BQU0sRUFBRSxNQUFNLHlCQU1uRjtBQUVELHdCQUFzQiw4Q0FBOEMsQ0FBQyxNQUFNLEVBQUUsTUFBTSx5QkFNbEYifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banana_fpc.d.ts","sourceRoot":"","sources":["../../src/local-network/banana_fpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA8B,MAAM,yBAAyB,CAAC;AAC9F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAwB3D,wBAAsB,oBAAoB,CAAC,eAAe,EAAE,kBAAkB,EAAE,yBAE/E;AAWD,wBAAsB,mBAAmB,CAAC,eAAe,EAAE,kBAAkB,EAAE,yBAE9E;AAED,wBAAsB,cAAc,CAAC,eAAe,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAcrG;AAED,wBAAsB,+CAA+C,CAAC,MAAM,EAAE,MAAM,yBAMnF;AAED,wBAAsB,8CAA8C,CAAC,MAAM,EAAE,MAAM,yBAMlF"}
@@ -1,9 +1,9 @@
1
- import { getInitialTestAccounts } from '@aztec/accounts/testing';
1
+ import { getInitialTestAccountsData } from '@aztec/accounts/testing';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
3
  import { FPCContract } from '@aztec/noir-contracts.js/FPC';
4
4
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
5
5
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
6
- import { getContractInstanceFromDeployParams } from '@aztec/stdlib/contract';
6
+ import { getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
7
7
  const BANANA_COIN_SALT = new Fr(0);
8
8
  const bananaCoinArgs = {
9
9
  name: 'BC',
@@ -16,7 +16,7 @@ function getBananaAdmin(initialAccounts) {
16
16
  }
17
17
  async function getBananaCoinInstance(initialAccounts) {
18
18
  const admin = getBananaAdmin(initialAccounts);
19
- return await getContractInstanceFromDeployParams(TokenContract.artifact, {
19
+ return await getContractInstanceFromInstantiationParams(TokenContract.artifact, {
20
20
  constructorArgs: [
21
21
  admin,
22
22
  bananaCoinArgs.name,
@@ -32,7 +32,7 @@ export async function getBananaCoinAddress(initialAccounts) {
32
32
  async function getBananaFPCInstance(initialAccounts) {
33
33
  const bananaCoin = await getBananaCoinAddress(initialAccounts);
34
34
  const admin = getBananaAdmin(initialAccounts);
35
- return await getContractInstanceFromDeployParams(FPCContract.artifact, {
35
+ return await getContractInstanceFromInstantiationParams(FPCContract.artifact, {
36
36
  constructorArgs: [
37
37
  bananaCoin,
38
38
  admin
@@ -43,15 +43,17 @@ async function getBananaFPCInstance(initialAccounts) {
43
43
  export async function getBananaFPCAddress(initialAccounts) {
44
44
  return (await getBananaFPCInstance(initialAccounts)).address;
45
45
  }
46
- export async function setupBananaFPC(initialAccounts, deployer, log) {
46
+ export async function setupBananaFPC(initialAccounts, wallet, log) {
47
47
  const bananaCoinAddress = await getBananaCoinAddress(initialAccounts);
48
48
  const admin = getBananaAdmin(initialAccounts);
49
49
  const [bananaCoin, fpc] = await Promise.all([
50
- TokenContract.deploy(deployer, admin, bananaCoinArgs.name, bananaCoinArgs.symbol, bananaCoinArgs.decimal).send({
50
+ TokenContract.deploy(wallet, admin, bananaCoinArgs.name, bananaCoinArgs.symbol, bananaCoinArgs.decimal).send({
51
+ from: admin,
51
52
  contractAddressSalt: BANANA_COIN_SALT,
52
53
  universalDeploy: true
53
54
  }).deployed(),
54
- FPCContract.deploy(deployer, bananaCoinAddress, admin).send({
55
+ FPCContract.deploy(wallet, bananaCoinAddress, admin).send({
56
+ from: admin,
55
57
  contractAddressSalt: BANANA_FPC_SALT,
56
58
  universalDeploy: true
57
59
  }).deployed()
@@ -59,21 +61,17 @@ export async function setupBananaFPC(initialAccounts, deployer, log) {
59
61
  log(`BananaCoin: ${bananaCoin.address}`);
60
62
  log(`FPC: ${fpc.address}`);
61
63
  }
62
- export async function getDeployedBananaCoinAddress(pxe) {
63
- const initialAccounts = await getInitialTestAccounts();
64
- const bananaCoin = await getBananaCoinAddress(initialAccounts);
65
- const contracts = await pxe.getContracts();
66
- if (!contracts.find((c)=>c.equals(bananaCoin))) {
67
- throw new Error('BananaCoin not deployed.');
68
- }
69
- return bananaCoin;
64
+ export async function registerDeployedBananaCoinInWalletAndGetAddress(wallet) {
65
+ const initialAccounts = await getInitialTestAccountsData();
66
+ const bananaCoin = await getBananaCoinInstance(initialAccounts);
67
+ // The following is no-op if the contract is already registered
68
+ await wallet.registerContract(bananaCoin, TokenContract.artifact);
69
+ return bananaCoin.address;
70
70
  }
71
- export async function getDeployedBananaFPCAddress(pxe) {
72
- const initialAccounts = await getInitialTestAccounts();
71
+ export async function registerDeployedBananaFPCInWalletAndGetAddress(wallet) {
72
+ const initialAccounts = await getInitialTestAccountsData();
73
73
  const fpc = await getBananaFPCInstance(initialAccounts);
74
- const contracts = await pxe.getContracts();
75
- if (!contracts.find((c)=>c.equals(fpc.address))) {
76
- throw new Error('BananaFPC not deployed.');
77
- }
74
+ // The following is no-op if the contract is already registered
75
+ await wallet.registerContract(fpc, FPCContract.artifact);
78
76
  return fpc.address;
79
77
  }
@@ -0,0 +1,4 @@
1
+ export * from './local-network.js';
2
+ export { registerDeployedBananaCoinInWalletAndGetAddress, registerDeployedBananaFPCInWalletAndGetAddress, } from './banana_fpc.js';
3
+ export { registerDeployedSponsoredFPCInWalletAndGetAddress } from './sponsored_fpc.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2NhbC1uZXR3b3JrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsT0FBTyxFQUNMLCtDQUErQyxFQUMvQyw4Q0FBOEMsR0FDL0MsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsaURBQWlELEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/local-network/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EACL,+CAA+C,EAC/C,8CAA8C,GAC/C,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iDAAiD,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './local-network.js';
2
+ export { registerDeployedBananaCoinInWalletAndGetAddress, registerDeployedBananaFPCInWalletAndGetAddress } from './banana_fpc.js';
3
+ export { registerDeployedSponsoredFPCInWalletAndGetAddress } from './sponsored_fpc.js';
@@ -0,0 +1,74 @@
1
+ #!/usr/bin/env -S node --no-warnings
2
+ import { type AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
3
+ import { EthAddress } from '@aztec/aztec.js/addresses';
4
+ import { type BlobSinkClientInterface } from '@aztec/blob-sink/client';
5
+ import { Fr } from '@aztec/foundation/fields';
6
+ import { type LogFn } from '@aztec/foundation/log';
7
+ import { DateProvider } from '@aztec/foundation/timer';
8
+ import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
9
+ import { type TelemetryClient } from '@aztec/telemetry-client';
10
+ import { type HDAccount, type PrivateKeyAccount } from 'viem';
11
+ /**
12
+ * Function to deploy our L1 contracts to the local network L1
13
+ * @param aztecNodeConfig - The Aztec Node Config
14
+ * @param hdAccount - Account for publishing L1 contracts
15
+ */
16
+ export declare function deployContractsToL1(aztecNodeConfig: AztecNodeConfig, hdAccount: HDAccount | PrivateKeyAccount, contractDeployLogger?: import("@aztec/foundation/log").Logger, opts?: {
17
+ assumeProvenThroughBlockNumber?: number;
18
+ salt?: number;
19
+ genesisArchiveRoot?: Fr;
20
+ feeJuicePortalInitialBalance?: bigint;
21
+ }): Promise<{
22
+ coinIssuerAddress: EthAddress;
23
+ feeJuiceAddress: EthAddress;
24
+ feeJuicePortalAddress: EthAddress;
25
+ governanceAddress: EthAddress;
26
+ governanceProposerAddress: EthAddress;
27
+ inboxAddress: EthAddress;
28
+ outboxAddress: EthAddress;
29
+ registryAddress: EthAddress;
30
+ rewardDistributorAddress: EthAddress;
31
+ rollupAddress: EthAddress;
32
+ stakingAssetAddress: EthAddress;
33
+ } & {
34
+ slashFactoryAddress?: EthAddress | undefined;
35
+ feeAssetHandlerAddress?: EthAddress | undefined;
36
+ stakingAssetHandlerAddress?: EthAddress | undefined;
37
+ zkPassportVerifierAddress?: EthAddress | undefined;
38
+ gseAddress?: EthAddress | undefined;
39
+ dateGatedRelayerAddress?: EthAddress | undefined;
40
+ } & {
41
+ rollupAddress: EthAddress;
42
+ } & {
43
+ rollupAddress: EthAddress;
44
+ }>;
45
+ /** Local network settings. */
46
+ export type LocalNetworkConfig = AztecNodeConfig & {
47
+ /** Mnemonic used to derive the L1 deployer private key.*/
48
+ l1Mnemonic: string;
49
+ /** Salt used to deploy L1 contracts.*/
50
+ deployAztecContractsSalt: string;
51
+ /** Whether to deploy test accounts on local network start.*/
52
+ testAccounts: boolean;
53
+ };
54
+ /**
55
+ * Create and start a new Aztec Node and PXE. Deploys L1 contracts.
56
+ * Does not start any HTTP services nor populate any initial accounts.
57
+ * @param config - Optional local network settings.
58
+ */
59
+ export declare function createLocalNetwork(config: Partial<LocalNetworkConfig> | undefined, userLog: LogFn): Promise<{
60
+ node: AztecNodeService;
61
+ stop: () => Promise<void>;
62
+ }>;
63
+ /**
64
+ * Create and start a new Aztec RPC HTTP Server
65
+ * @param config - Optional Aztec node settings.
66
+ */
67
+ export declare function createAztecNode(config?: Partial<AztecNodeConfig>, deps?: {
68
+ telemetry?: TelemetryClient;
69
+ blobSinkClient?: BlobSinkClientInterface;
70
+ dateProvider?: DateProvider;
71
+ }, options?: {
72
+ prefilledPublicData?: PublicDataTreeLeaf[];
73
+ }): Promise<AztecNodeService>;
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtbmV0d29yay5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvY2FsLW5ldHdvcmsvbG9jYWwtbmV0d29yay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFFLGdCQUFnQixFQUFvQixNQUFNLG1CQUFtQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyx1QkFBdUIsRUFBd0IsTUFBTSx5QkFBeUIsQ0FBQztBQVk3RixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssS0FBSyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQW9CLE1BQU0seUJBQXlCLENBQUM7QUFHekUsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsS0FBSyxlQUFlLEVBR3JCLE1BQU0seUJBQXlCLENBQUM7QUFJakMsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFFLEtBQUssaUJBQWlCLEVBQTJELE1BQU0sTUFBTSxDQUFDO0FBY3ZIOzs7O0dBSUc7QUFDSCx3QkFBc0IsbUJBQW1CLENBQ3ZDLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLFNBQVMsRUFBRSxTQUFTLEdBQUcsaUJBQWlCLEVBQ3hDLG9CQUFvQix5Q0FBUyxFQUM3QixJQUFJLEdBQUU7SUFDSiw4QkFBOEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN4QyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDZCxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN4Qiw0QkFBNEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ1A7QUFFRCw4QkFBOEI7QUFDOUIsTUFBTSxNQUFNLGtCQUFrQixHQUFHLGVBQWUsR0FBRztJQUNqRCwwREFBMEQ7SUFDMUQsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQix1Q0FBdUM7SUFDdkMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDO0lBQ2pDLDZEQUE2RDtJQUM3RCxZQUFZLEVBQUUsT0FBTyxDQUFDO0NBQ3ZCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsd0JBQXNCLGtCQUFrQixDQUFDLE1BQU0seUNBQWtDLEVBQUUsT0FBTyxFQUFFLEtBQUs7OztHQWdIaEc7QUFFRDs7O0dBR0c7QUFDSCx3QkFBc0IsZUFBZSxDQUNuQyxNQUFNLEdBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBTSxFQUNyQyxJQUFJLEdBQUU7SUFBRSxTQUFTLENBQUMsRUFBRSxlQUFlLENBQUM7SUFBQyxjQUFjLENBQUMsRUFBRSx1QkFBdUIsQ0FBQztJQUFDLFlBQVksQ0FBQyxFQUFFLFlBQVksQ0FBQTtDQUFPLEVBQ2pILE9BQU8sR0FBRTtJQUFFLG1CQUFtQixDQUFDLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQTtDQUFPLDZCQVc3RCJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-network.d.ts","sourceRoot":"","sources":["../../src/local-network/local-network.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAoB,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,KAAK,uBAAuB,EAAwB,MAAM,yBAAyB,CAAC;AAY7F,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAoB,MAAM,yBAAyB,CAAC;AAGzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,iBAAiB,EAA2D,MAAM,MAAM,CAAC;AAcvH;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,GAAG,iBAAiB,EACxC,oBAAoB,yCAAS,EAC7B,IAAI,GAAE;IACJ,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,EAAE,CAAC;IACxB,4BAA4B,CAAC,EAAE,MAAM,CAAC;CAClC;;;;;;;;;;;;;;;;;;;;;;;GAkCP;AAED,8BAA8B;AAC9B,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG;IACjD,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,wBAAwB,EAAE,MAAM,CAAC;IACjC,6DAA6D;IAC7D,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,yCAAkC,EAAE,OAAO,EAAE,KAAK;;;GAgHhG;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,eAAe,CAAC;IAAC,cAAc,CAAC,EAAE,uBAAuB,CAAC;IAAC,YAAY,CAAC,EAAE,YAAY,CAAA;CAAO,EACjH,OAAO,GAAE;IAAE,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAAO,6BAW7D"}
@@ -1,30 +1,32 @@
1
1
  #!/usr/bin/env -S node --no-warnings
2
- import { getSchnorrWallet } from '@aztec/accounts/schnorr';
3
- import { deployFundedSchnorrAccounts, getInitialTestAccounts } from '@aztec/accounts/testing';
2
+ import { getInitialTestAccountsData } from '@aztec/accounts/testing';
4
3
  import { AztecNodeService, getConfigEnvVars } from '@aztec/aztec-node';
5
- import { AnvilTestWatcher, EthCheatCodes, SignerlessWallet } from '@aztec/aztec.js';
4
+ import { EthAddress } from '@aztec/aztec.js/addresses';
6
5
  import { createBlobSinkClient } from '@aztec/blob-sink/client';
7
- import { setupCanonicalL2FeeJuice } from '@aztec/cli/setup-contracts';
8
- import { GENESIS_ARCHIVE_ROOT, GENESIS_BLOCK_HASH } from '@aztec/constants';
9
- import { NULL_KEY, createEthereumChain, deployL1Contracts, getL1ContractsConfigEnvVars, waitForPublicClient } from '@aztec/ethereum';
6
+ import { GENESIS_ARCHIVE_ROOT } from '@aztec/constants';
7
+ import { NULL_KEY, createEthereumChain, deployL1Contracts, deployMulticall3, getL1ContractsConfigEnvVars, waitForPublicClient } from '@aztec/ethereum';
8
+ import { EthCheatCodes } from '@aztec/ethereum/test';
9
+ import { SecretValue } from '@aztec/foundation/config';
10
10
  import { Fr } from '@aztec/foundation/fields';
11
11
  import { createLogger } from '@aztec/foundation/log';
12
+ import { TestDateProvider } from '@aztec/foundation/timer';
12
13
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
13
- import { ProtocolContractAddress, protocolContractTreeRoot } from '@aztec/protocol-contracts';
14
- import { createPXEService, getPXEServiceConfig } from '@aztec/pxe/server';
14
+ import { protocolContractsHash } from '@aztec/protocol-contracts';
15
15
  import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
16
+ import { TestWallet, deployFundedSchnorrAccounts } from '@aztec/test-wallet/server';
16
17
  import { getGenesisValues } from '@aztec/world-state/testing';
17
18
  import { createPublicClient, fallback, http as httpViemTransport } from 'viem';
18
- import { mnemonicToAccount } from 'viem/accounts';
19
+ import { mnemonicToAccount, privateKeyToAddress } from 'viem/accounts';
19
20
  import { foundry } from 'viem/chains';
20
21
  import { createAccountLogs } from '../cli/util.js';
21
22
  import { DefaultMnemonic } from '../mnemonic.js';
23
+ import { AnvilTestWatcher } from '../testing/anvil_test_watcher.js';
22
24
  import { getBananaFPCAddress, setupBananaFPC } from './banana_fpc.js';
23
- import { getSponsoredFPCAddress, setupSponsoredFPC } from './sponsored_fpc.js';
24
- const logger = createLogger('sandbox');
25
+ import { getSponsoredFPCAddress } from './sponsored_fpc.js';
26
+ const logger = createLogger('local-network');
25
27
  const localAnvil = foundry;
26
28
  /**
27
- * Function to deploy our L1 contracts to the sandbox L1
29
+ * Function to deploy our L1 contracts to the local network L1
28
30
  * @param aztecNodeConfig - The Aztec Node Config
29
31
  * @param hdAccount - Account for publishing L1 contracts
30
32
  */ export async function deployContractsToL1(aztecNodeConfig, hdAccount, contractDeployLogger = logger, opts = {}) {
@@ -35,50 +37,58 @@ const localAnvil = foundry;
35
37
  const l1Contracts = await deployL1Contracts(aztecNodeConfig.l1RpcUrls, hdAccount, chain.chainInfo, contractDeployLogger, {
36
38
  ...getL1ContractsConfigEnvVars(),
37
39
  ...aztecNodeConfig,
38
- l2FeeJuiceAddress: ProtocolContractAddress.FeeJuice.toField(),
39
40
  vkTreeRoot: getVKTreeRoot(),
40
- protocolContractTreeRoot,
41
+ protocolContractsHash,
41
42
  genesisArchiveRoot: opts.genesisArchiveRoot ?? new Fr(GENESIS_ARCHIVE_ROOT),
42
- genesisBlockHash: opts.genesisBlockHash ?? new Fr(GENESIS_BLOCK_HASH),
43
- salt: opts.salt
43
+ salt: opts.salt,
44
+ feeJuicePortalInitialBalance: opts.feeJuicePortalInitialBalance,
45
+ aztecTargetCommitteeSize: 0,
46
+ slasherFlavor: 'none',
47
+ realVerifier: false
44
48
  });
49
+ await deployMulticall3(l1Contracts.l1Client, logger);
45
50
  aztecNodeConfig.l1Contracts = l1Contracts.l1ContractAddresses;
51
+ aztecNodeConfig.rollupVersion = l1Contracts.rollupVersion;
46
52
  return aztecNodeConfig.l1Contracts;
47
53
  }
48
54
  /**
49
55
  * Create and start a new Aztec Node and PXE. Deploys L1 contracts.
50
56
  * Does not start any HTTP services nor populate any initial accounts.
51
- * @param config - Optional Sandbox settings.
52
- */ export async function createSandbox(config = {}, userLog) {
53
- // sandbox is meant for test envs. We should only need one l1RpcUrl
57
+ * @param config - Optional local network settings.
58
+ */ export async function createLocalNetwork(config = {}, userLog) {
59
+ // local network is meant for test envs. We should only need one l1RpcUrl
54
60
  const l1RpcUrl = config.l1RpcUrls?.[0];
55
61
  if (!l1RpcUrl) {
56
62
  throw new Error('An L1 RPC URL is required');
57
63
  }
58
64
  if ((config.l1RpcUrls?.length || 0) > 1) {
59
- logger.warn(`Multiple L1 RPC URLs provided. Sandbox will only use the first one: ${l1RpcUrl}`);
65
+ logger.warn(`Multiple L1 RPC URLs provided. Local networks will only use the first one: ${l1RpcUrl}`);
60
66
  }
61
67
  const aztecNodeConfig = {
62
68
  ...getConfigEnvVars(),
63
69
  ...config
64
70
  };
65
71
  const hdAccount = mnemonicToAccount(config.l1Mnemonic || DefaultMnemonic);
66
- if (!aztecNodeConfig.publisherPrivateKey || aztecNodeConfig.publisherPrivateKey === NULL_KEY) {
72
+ if (aztecNodeConfig.publisherPrivateKeys == undefined || !aztecNodeConfig.publisherPrivateKeys.length || aztecNodeConfig.publisherPrivateKeys[0].getValue() === NULL_KEY) {
67
73
  const privKey = hdAccount.getHdKey().privateKey;
68
- aztecNodeConfig.publisherPrivateKey = `0x${Buffer.from(privKey).toString('hex')}`;
74
+ aztecNodeConfig.publisherPrivateKeys = [
75
+ new SecretValue(`0x${Buffer.from(privKey).toString('hex')}`)
76
+ ];
69
77
  }
70
- if (!aztecNodeConfig.validatorPrivateKey || aztecNodeConfig.validatorPrivateKey === NULL_KEY) {
78
+ if (!aztecNodeConfig.validatorPrivateKeys?.getValue().length) {
71
79
  const privKey = hdAccount.getHdKey().privateKey;
72
- aztecNodeConfig.validatorPrivateKey = `0x${Buffer.from(privKey).toString('hex')}`;
80
+ aztecNodeConfig.validatorPrivateKeys = new SecretValue([
81
+ `0x${Buffer.from(privKey).toString('hex')}`
82
+ ]);
73
83
  }
84
+ aztecNodeConfig.coinbase = EthAddress.fromString(privateKeyToAddress(aztecNodeConfig.validatorPrivateKeys.getValue()[0]));
74
85
  const initialAccounts = await (async ()=>{
75
- if (config.testAccounts) {
86
+ if (config.testAccounts === true || config.testAccounts === undefined) {
76
87
  if (aztecNodeConfig.p2pEnabled) {
77
88
  userLog(`Not setting up test accounts as we are connecting to a network`);
78
- } else if (config.noPXE) {
79
- userLog(`Not setting up test accounts as we are not exposing a PXE`);
80
89
  } else {
81
- return await getInitialTestAccounts();
90
+ userLog(`Setting up test accounts`);
91
+ return await getInitialTestAccountsData();
82
92
  }
83
93
  }
84
94
  return [];
@@ -90,14 +100,15 @@ const localAnvil = foundry;
90
100
  bananaFPC,
91
101
  sponsoredFPC
92
102
  ] : [];
93
- const { genesisArchiveRoot, genesisBlockHash, prefilledPublicData } = await getGenesisValues(fundedAddresses);
103
+ const { genesisArchiveRoot, prefilledPublicData, fundingNeeded } = await getGenesisValues(fundedAddresses);
94
104
  let watcher = undefined;
105
+ const dateProvider = new TestDateProvider();
95
106
  if (!aztecNodeConfig.p2pEnabled) {
96
107
  const l1ContractAddresses = await deployContractsToL1(aztecNodeConfig, hdAccount, undefined, {
97
108
  assumeProvenThroughBlockNumber: Number.MAX_SAFE_INTEGER,
98
109
  genesisArchiveRoot,
99
- genesisBlockHash,
100
- salt: config.l1Salt ? parseInt(config.l1Salt) : undefined
110
+ salt: config.deployAztecContractsSalt ? parseInt(config.deployAztecContractsSalt) : undefined,
111
+ feeJuicePortalInitialBalance: fundingNeeded
101
112
  });
102
113
  const chain = aztecNodeConfig.l1RpcUrls.length > 0 ? createEthereumChain([
103
114
  l1RpcUrl
@@ -112,33 +123,37 @@ const localAnvil = foundry;
112
123
  });
113
124
  watcher = new AnvilTestWatcher(new EthCheatCodes([
114
125
  l1RpcUrl
115
- ]), l1ContractAddresses.rollupAddress, publicClient);
116
- watcher.setIsSandbox(true);
126
+ ], dateProvider), l1ContractAddresses.rollupAddress, publicClient, dateProvider);
127
+ watcher.setisLocalNetwork(true);
117
128
  await watcher.start();
118
129
  }
119
130
  const telemetry = initTelemetryClient(getTelemetryClientConfig());
120
- // Create a local blob sink client inside the sandbox, no http connectivity
131
+ // Create a local blob sink client inside the local network, no http connectivity
121
132
  const blobSinkClient = createBlobSinkClient();
122
133
  const node = await createAztecNode(aztecNodeConfig, {
123
134
  telemetry,
124
- blobSinkClient
135
+ blobSinkClient,
136
+ dateProvider
125
137
  }, {
126
138
  prefilledPublicData
127
139
  });
128
- const pxe = await createAztecPXE(node);
129
- await setupCanonicalL2FeeJuice(new SignerlessWallet(pxe), aztecNodeConfig.l1Contracts.feeJuicePortalAddress, undefined, logger.info);
130
140
  if (initialAccounts.length) {
141
+ const PXEConfig = {
142
+ proverEnabled: aztecNodeConfig.realProofs
143
+ };
144
+ const wallet = await TestWallet.create(node, PXEConfig);
131
145
  userLog('Setting up funded test accounts...');
132
- const accounts = await deployFundedSchnorrAccounts(pxe, initialAccounts);
133
- const accountsWithSecrets = accounts.map((account, i)=>({
134
- account,
146
+ const accountManagers = await deployFundedSchnorrAccounts(wallet, node, initialAccounts);
147
+ const accountsWithSecrets = accountManagers.map((manager, i)=>({
148
+ account: manager,
135
149
  secretKey: initialAccounts[i].secret
136
150
  }));
137
- const accLogs = await createAccountLogs(accountsWithSecrets, pxe);
151
+ const accLogs = await createAccountLogs(accountsWithSecrets, wallet);
138
152
  userLog(accLogs.join(''));
139
- const deployer = await getSchnorrWallet(pxe, initialAccounts[0].address, initialAccounts[0].signingKey);
140
- await setupBananaFPC(initialAccounts, deployer, userLog);
141
- await setupSponsoredFPC(deployer, userLog);
153
+ await setupBananaFPC(initialAccounts, wallet, userLog);
154
+ userLog(`SponsoredFPC: ${await getSponsoredFPCAddress()}`);
155
+ // We no longer need the wallet once we've setup the accounts so we stop the underlying PXE job queue
156
+ await wallet.stop();
142
157
  }
143
158
  const stop = async ()=>{
144
159
  await node.stop();
@@ -146,7 +161,6 @@ const localAnvil = foundry;
146
161
  };
147
162
  return {
148
163
  node,
149
- pxe,
150
164
  stop
151
165
  };
152
166
  }
@@ -164,18 +178,6 @@ const localAnvil = foundry;
164
178
  ...config.l1Contracts
165
179
  }
166
180
  };
167
- logger.info('createAztecNode', aztecNodeConfig);
168
181
  const node = await AztecNodeService.createAndSync(aztecNodeConfig, deps, options);
169
182
  return node;
170
183
  }
171
- /**
172
- * Create and start a new Aztec PXE HTTP Server
173
- * @param config - Optional PXE settings.
174
- */ export async function createAztecPXE(node, config = {}) {
175
- const pxeServiceConfig = {
176
- ...getPXEServiceConfig(),
177
- ...config
178
- };
179
- const pxe = await createPXEService(node, pxeServiceConfig);
180
- return pxe;
181
- }
@@ -0,0 +1,5 @@
1
+ import type { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ import type { Wallet } from '@aztec/aztec.js/wallet';
3
+ export declare function getSponsoredFPCAddress(): Promise<AztecAddress>;
4
+ export declare function registerDeployedSponsoredFPCInWalletAndGetAddress(wallet: Wallet): Promise<AztecAddress>;
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvbnNvcmVkX2ZwYy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvY2FsLW5ldHdvcmsvc3BvbnNvcmVkX2ZwYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU05RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVVyRCx3QkFBc0Isc0JBQXNCLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUVwRTtBQUVELHdCQUFzQixpREFBaUQsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FLN0cifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sponsored_fpc.d.ts","sourceRoot":"","sources":["../../src/local-network/sponsored_fpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAM9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAUrD,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,YAAY,CAAC,CAEpE;AAED,wBAAsB,iDAAiD,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAK7G"}
@@ -0,0 +1,18 @@
1
+ import { getContractInstanceFromInstantiationParams } from '@aztec/aztec.js/contracts';
2
+ import { Fr } from '@aztec/aztec.js/fields';
3
+ import { SPONSORED_FPC_SALT } from '@aztec/constants';
4
+ import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
5
+ async function getSponsoredFPCInstance() {
6
+ return await getContractInstanceFromInstantiationParams(SponsoredFPCContract.artifact, {
7
+ salt: new Fr(SPONSORED_FPC_SALT)
8
+ });
9
+ }
10
+ export async function getSponsoredFPCAddress() {
11
+ return (await getSponsoredFPCInstance()).address;
12
+ }
13
+ export async function registerDeployedSponsoredFPCInWalletAndGetAddress(wallet) {
14
+ const fpc = await getSponsoredFPCInstance();
15
+ // The following is no-op if the contract is already registered
16
+ await wallet.registerContract(fpc, SponsoredFPCContract.artifact);
17
+ return fpc.address;
18
+ }
@@ -1,2 +1,2 @@
1
1
  export declare const DefaultMnemonic = "test test test test test test test test test test test junk";
2
- //# sourceMappingURL=mnemonic.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW5lbW9uaWMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tbmVtb25pYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFPLE1BQU0sZUFBZSxnRUFBZ0UsQ0FBQyJ9
package/dest/splash.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export declare const splash: string;
2
2
  export declare const github = "https://github.com/AztecProtocol";
3
- //# sourceMappingURL=splash.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsYXNoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3BsYXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQU8sTUFBTSxNQUFNLEVBQUUsTUFPa0IsQ0FBQztBQUV4QyxlQUFPLE1BQU0sTUFBTSxxQ0FBcUMsQ0FBQyJ9
@@ -0,0 +1,34 @@
1
+ import type { ViemClient } from '@aztec/ethereum';
2
+ import { EthCheatCodes } from '@aztec/ethereum/test';
3
+ import type { EthAddress } from '@aztec/foundation/eth-address';
4
+ import type { TestDateProvider } from '@aztec/foundation/timer';
5
+ /**
6
+ * Represents a watcher for a rollup contract.
7
+ *
8
+ * It started on a network like anvil where time traveling is allowed, and auto-mine is turned on
9
+ * it will periodically check if the current slot have already been filled, e.g., there was an L2
10
+ * block within the slot. And if so, it will time travel into the next slot.
11
+ */
12
+ export declare class AnvilTestWatcher {
13
+ private cheatcodes;
14
+ private dateProvider?;
15
+ private isLocalNetwork;
16
+ private rollup;
17
+ private rollupCheatCodes;
18
+ private l2SlotDuration;
19
+ private filledRunningPromise?;
20
+ private syncDateProviderPromise?;
21
+ private markingAsProvenRunningPromise?;
22
+ private logger;
23
+ private isMarkingAsProven;
24
+ constructor(cheatcodes: EthCheatCodes, rollupAddress: EthAddress, l1Client: ViemClient, dateProvider?: TestDateProvider | undefined);
25
+ setIsMarkingAsProven(isMarkingAsProven: boolean): void;
26
+ setisLocalNetwork(isLocalNetwork: boolean): void;
27
+ start(): Promise<void>;
28
+ stop(): Promise<void>;
29
+ trigger(): Promise<void>;
30
+ markAsProven(): Promise<void>;
31
+ syncDateProviderToL1IfBehind(): Promise<void>;
32
+ warpTimeIfNeeded(): Promise<void>;
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW52aWxfdGVzdF93YXRjaGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGluZy9hbnZpbF90ZXN0X3dhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBb0IsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUdoRSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBS2hFOzs7Ozs7R0FNRztBQUNILHFCQUFhLGdCQUFnQjtJQWdCekIsT0FBTyxDQUFDLFVBQVU7SUFHbEIsT0FBTyxDQUFDLFlBQVksQ0FBQztJQWxCdkIsT0FBTyxDQUFDLGNBQWMsQ0FBa0I7SUFFeEMsT0FBTyxDQUFDLE1BQU0sQ0FBc0Q7SUFDcEUsT0FBTyxDQUFDLGdCQUFnQixDQUFtQjtJQUMzQyxPQUFPLENBQUMsY0FBYyxDQUFVO0lBRWhDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFpQjtJQUM5QyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBaUI7SUFDakQsT0FBTyxDQUFDLDZCQUE2QixDQUFDLENBQWlCO0lBRXZELE9BQU8sQ0FBQyxNQUFNLENBQWlEO0lBRS9ELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBUTtJQUVqQyxZQUNVLFVBQVUsRUFBRSxhQUFhLEVBQ2pDLGFBQWEsRUFBRSxVQUFVLEVBQ3pCLFFBQVEsRUFBRSxVQUFVLEVBQ1osWUFBWSxDQUFDLDhCQUFrQixFQWF4QztJQUVELG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLE9BQU8sUUFHOUM7SUFFRCxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsT0FBTyxRQUV4QztJQUVLLEtBQUssa0JBeUJWO0lBRUssSUFBSSxrQkFJVDtJQUVLLE9BQU8sa0JBSVo7SUFFSyxZQUFZLGtCQUtqQjtJQUVLLDRCQUE0QixrQkFlakM7SUFFSyxnQkFBZ0Isa0JBd0NyQjtDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anvil_test_watcher.d.ts","sourceRoot":"","sources":["../../src/testing/anvil_test_watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAoB,MAAM,sBAAsB,CAAC;AAEvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKhE;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAgBzB,OAAO,CAAC,UAAU;IAGlB,OAAO,CAAC,YAAY,CAAC;IAlBvB,OAAO,CAAC,cAAc,CAAkB;IAExC,OAAO,CAAC,MAAM,CAAsD;IACpE,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,cAAc,CAAU;IAEhC,OAAO,CAAC,oBAAoB,CAAC,CAAiB;IAC9C,OAAO,CAAC,uBAAuB,CAAC,CAAiB;IACjD,OAAO,CAAC,6BAA6B,CAAC,CAAiB;IAEvD,OAAO,CAAC,MAAM,CAAiD;IAE/D,OAAO,CAAC,iBAAiB,CAAQ;IAEjC,YACU,UAAU,EAAE,aAAa,EACjC,aAAa,EAAE,UAAU,EACzB,QAAQ,EAAE,UAAU,EACZ,YAAY,CAAC,8BAAkB,EAaxC;IAED,oBAAoB,CAAC,iBAAiB,EAAE,OAAO,QAG9C;IAED,iBAAiB,CAAC,cAAc,EAAE,OAAO,QAExC;IAEK,KAAK,kBAyBV;IAEK,IAAI,kBAIT;IAEK,OAAO,kBAIZ;IAEK,YAAY,kBAKjB;IAEK,4BAA4B,kBAejC;IAEK,gBAAgB,kBAwCrB;CACF"}