@aztec/sequencer-client 0.26.3 → 0.26.6

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 (85) hide show
  1. package/dest/block_builder/solo_block_builder.d.ts +5 -4
  2. package/dest/block_builder/solo_block_builder.d.ts.map +1 -1
  3. package/dest/block_builder/solo_block_builder.js +82 -34
  4. package/dest/client/sequencer-client.d.ts.map +1 -1
  5. package/dest/client/sequencer-client.js +29 -3
  6. package/dest/config.d.ts.map +1 -1
  7. package/dest/config.js +4 -2
  8. package/dest/index.d.ts +9 -7
  9. package/dest/index.d.ts.map +1 -1
  10. package/dest/index.js +9 -8
  11. package/dest/publisher/l1-publisher.js +5 -5
  12. package/dest/publisher/viem-tx-sender.js +2 -2
  13. package/dest/sequencer/abstract_phase_manager.d.ts +12 -15
  14. package/dest/sequencer/abstract_phase_manager.d.ts.map +1 -1
  15. package/dest/sequencer/abstract_phase_manager.js +32 -24
  16. package/dest/sequencer/app_logic_phase_manager.d.ts +1 -6
  17. package/dest/sequencer/app_logic_phase_manager.d.ts.map +1 -1
  18. package/dest/sequencer/app_logic_phase_manager.js +11 -8
  19. package/dest/sequencer/hints_builder.d.ts +13 -0
  20. package/dest/sequencer/hints_builder.d.ts.map +1 -0
  21. package/dest/sequencer/hints_builder.js +21 -0
  22. package/dest/sequencer/index.d.ts +1 -1
  23. package/dest/sequencer/index.d.ts.map +1 -1
  24. package/dest/sequencer/index.js +2 -2
  25. package/dest/sequencer/phase_manager_factory.d.ts.map +1 -1
  26. package/dest/sequencer/phase_manager_factory.js +5 -1
  27. package/dest/sequencer/processed_tx.d.ts +37 -2
  28. package/dest/sequencer/processed_tx.d.ts.map +1 -1
  29. package/dest/sequencer/processed_tx.js +67 -9
  30. package/dest/sequencer/public_processor.d.ts +3 -1
  31. package/dest/sequencer/public_processor.d.ts.map +1 -1
  32. package/dest/sequencer/public_processor.js +18 -11
  33. package/dest/sequencer/sequencer.d.ts.map +1 -1
  34. package/dest/sequencer/sequencer.js +3 -4
  35. package/dest/sequencer/setup_phase_manager.d.ts +1 -6
  36. package/dest/sequencer/setup_phase_manager.d.ts.map +1 -1
  37. package/dest/sequencer/setup_phase_manager.js +3 -5
  38. package/dest/sequencer/tail_phase_manager.d.ts +28 -0
  39. package/dest/sequencer/tail_phase_manager.d.ts.map +1 -0
  40. package/dest/sequencer/tail_phase_manager.js +32 -0
  41. package/dest/sequencer/teardown_phase_manager.d.ts +1 -6
  42. package/dest/sequencer/teardown_phase_manager.d.ts.map +1 -1
  43. package/dest/sequencer/teardown_phase_manager.js +3 -4
  44. package/dest/simulator/acvm_native.d.ts +20 -0
  45. package/dest/simulator/acvm_native.d.ts.map +1 -0
  46. package/dest/simulator/acvm_native.js +96 -0
  47. package/dest/simulator/acvm_wasm.d.ts +7 -0
  48. package/dest/simulator/acvm_wasm.d.ts.map +1 -0
  49. package/dest/simulator/acvm_wasm.js +23 -0
  50. package/dest/simulator/index.d.ts +8 -1
  51. package/dest/simulator/index.d.ts.map +1 -1
  52. package/dest/simulator/index.js +2 -2
  53. package/dest/simulator/public_kernel.d.ts +11 -1
  54. package/dest/simulator/public_kernel.d.ts.map +1 -1
  55. package/dest/simulator/public_kernel.js +34 -6
  56. package/dest/simulator/rollup.d.ts +4 -0
  57. package/dest/simulator/rollup.d.ts.map +1 -1
  58. package/dest/simulator/rollup.js +16 -20
  59. package/dest/simulator/simulation_provider.d.ts +9 -0
  60. package/dest/simulator/simulation_provider.d.ts.map +1 -0
  61. package/dest/simulator/simulation_provider.js +2 -0
  62. package/package.json +15 -13
  63. package/src/block_builder/solo_block_builder.ts +115 -82
  64. package/src/client/sequencer-client.ts +37 -2
  65. package/src/config.ts +4 -0
  66. package/src/index.ts +9 -7
  67. package/src/publisher/l1-publisher.ts +4 -4
  68. package/src/publisher/viem-tx-sender.ts +1 -1
  69. package/src/sequencer/abstract_phase_manager.ts +58 -48
  70. package/src/sequencer/app_logic_phase_manager.ts +12 -22
  71. package/src/sequencer/hints_builder.ts +56 -0
  72. package/src/sequencer/index.ts +1 -1
  73. package/src/sequencer/phase_manager_factory.ts +12 -0
  74. package/src/sequencer/processed_tx.ts +147 -17
  75. package/src/sequencer/public_processor.ts +28 -14
  76. package/src/sequencer/sequencer.ts +2 -3
  77. package/src/sequencer/setup_phase_manager.ts +5 -19
  78. package/src/sequencer/tail_phase_manager.ts +49 -0
  79. package/src/sequencer/teardown_phase_manager.ts +5 -18
  80. package/src/simulator/acvm_native.ts +112 -0
  81. package/src/simulator/acvm_wasm.ts +31 -0
  82. package/src/simulator/index.ts +8 -0
  83. package/src/simulator/public_kernel.ts +62 -8
  84. package/src/simulator/rollup.ts +31 -19
  85. package/src/simulator/simulation_provider.ts +10 -0
@@ -0,0 +1,96 @@
1
+ import { randomBytes } from '@aztec/foundation/crypto';
2
+ import * as proc from 'child_process';
3
+ import fs from 'fs/promises';
4
+ /**
5
+ * Parses a TOML format witness map string into a Map structure
6
+ * @param outputString - The witness map in TOML format
7
+ * @returns The parsed witness map
8
+ */
9
+ function parseIntoWitnessMap(outputString) {
10
+ const lines = outputString.split('\n');
11
+ return new Map(lines
12
+ .filter((line) => line.length)
13
+ .map((line) => {
14
+ const pair = line.replaceAll(' ', '').split('=');
15
+ return [Number(pair[0]), pair[1].replaceAll('"', '')];
16
+ }));
17
+ }
18
+ /**
19
+ *
20
+ * @param inputWitness - The circuit's input witness
21
+ * @param bytecode - The circuit buytecode
22
+ * @param workingDirectory - A directory to use for temporary files by the ACVM
23
+ * @param pathToAcvm - The path to the ACVm binary
24
+ * @returns The completed partial witness outputted from the circuit
25
+ */
26
+ export async function executeNativeCircuit(inputWitness, bytecode, workingDirectory, pathToAcvm) {
27
+ const bytecodeFilename = 'bytecode';
28
+ const witnessFilename = 'input_witness.toml';
29
+ // convert the witness map to TOML format
30
+ let witnessMap = '';
31
+ inputWitness.forEach((value, key) => {
32
+ witnessMap = witnessMap.concat(`${key} = '${value}'\n`);
33
+ });
34
+ // In case the directory is still around from some time previously, remove it
35
+ await fs.rm(workingDirectory, { recursive: true, force: true });
36
+ // Create the new working directory
37
+ await fs.mkdir(workingDirectory, { recursive: true });
38
+ // Write the bytecode and input witness to the working directory
39
+ await fs.writeFile(`${workingDirectory}/${bytecodeFilename}`, bytecode);
40
+ await fs.writeFile(`${workingDirectory}/${witnessFilename}`, witnessMap);
41
+ // Execute the ACVM using the given args
42
+ const args = [
43
+ `execute`,
44
+ `--working-directory`,
45
+ `${workingDirectory}`,
46
+ `--bytecode`,
47
+ `${bytecodeFilename}`,
48
+ `--input-witness`,
49
+ `${witnessFilename}`,
50
+ `--print`,
51
+ ];
52
+ const processPromise = new Promise((resolve, reject) => {
53
+ let outputWitness = Buffer.alloc(0);
54
+ let errorBuffer = Buffer.alloc(0);
55
+ const acvm = proc.spawn(pathToAcvm, args);
56
+ acvm.stdout.on('data', data => {
57
+ outputWitness = Buffer.concat([outputWitness, data]);
58
+ });
59
+ acvm.stderr.on('data', data => {
60
+ errorBuffer = Buffer.concat([errorBuffer, data]);
61
+ });
62
+ acvm.on('close', code => {
63
+ if (code === 0) {
64
+ resolve(outputWitness.toString('utf-8'));
65
+ }
66
+ else {
67
+ reject(errorBuffer.toString('utf-8'));
68
+ }
69
+ });
70
+ });
71
+ try {
72
+ const output = await processPromise;
73
+ return parseIntoWitnessMap(output);
74
+ }
75
+ finally {
76
+ // Clean up the working directory before we leave
77
+ await fs.rm(workingDirectory, { recursive: true, force: true });
78
+ }
79
+ }
80
+ export class NativeACVMSimulator {
81
+ constructor(workingDirectory, pathToAcvm) {
82
+ this.workingDirectory = workingDirectory;
83
+ this.pathToAcvm = pathToAcvm;
84
+ }
85
+ async simulateCircuit(input, compiledCircuit) {
86
+ // Execute the circuit on those initial witness values
87
+ // Decode the bytecode from base64 since the acvm does not know about base64 encoding
88
+ const decodedBytecode = Buffer.from(compiledCircuit.bytecode, 'base64');
89
+ // Provide a unique working directory so we don't get clashes with parallel executions
90
+ const directory = `${this.workingDirectory}/${randomBytes(32).toString('hex')}`;
91
+ // Execute the circuit
92
+ const _witnessMap = await executeNativeCircuit(input, decodedBytecode, directory, this.pathToAcvm);
93
+ return _witnessMap;
94
+ }
95
+ }
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN2bV9uYXRpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2ltdWxhdG9yL2Fjdm1fbmF0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUl2RCxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJN0I7Ozs7R0FJRztBQUNILFNBQVMsbUJBQW1CLENBQUMsWUFBb0I7SUFDL0MsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxPQUFPLElBQUksR0FBRyxDQUNaLEtBQUs7U0FDRixNQUFNLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDckMsR0FBRyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUU7UUFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDLENBQUMsQ0FDTCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLG9CQUFvQixDQUN4QyxZQUF3QixFQUN4QixRQUFnQixFQUNoQixnQkFBd0IsRUFDeEIsVUFBa0I7SUFFbEIsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUM7SUFDcEMsTUFBTSxlQUFlLEdBQUcsb0JBQW9CLENBQUM7SUFFN0MseUNBQXlDO0lBQ3pDLElBQUksVUFBVSxH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
@@ -0,0 +1,7 @@
1
+ import { NoirCompiledCircuit } from '@aztec/types/noir';
2
+ import { WitnessMap } from '@noir-lang/types';
3
+ import { SimulationProvider } from './simulation_provider.js';
4
+ export declare class WASMSimulator implements SimulationProvider {
5
+ simulateCircuit(input: WitnessMap, compiledCircuit: NoirCompiledCircuit): Promise<WitnessMap>;
6
+ }
7
+ //# sourceMappingURL=acvm_wasm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acvm_wasm.d.ts","sourceRoot":"","sources":["../../src/simulator/acvm_wasm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAW9D,qBAAa,aAAc,YAAW,kBAAkB;IAChD,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;CAapG"}
@@ -0,0 +1,23 @@
1
+ import { createBlackBoxSolver, executeCircuitWithBlackBoxSolver } from '@noir-lang/acvm_js';
2
+ let solver;
3
+ const getSolver = () => {
4
+ if (!solver) {
5
+ solver = createBlackBoxSolver();
6
+ }
7
+ return solver;
8
+ };
9
+ export class WASMSimulator {
10
+ async simulateCircuit(input, compiledCircuit) {
11
+ // Execute the circuit on those initial witness values
12
+ //
13
+ // Decode the bytecode from base64 since the acvm does not know about base64 encoding
14
+ const decodedBytecode = Buffer.from(compiledCircuit.bytecode, 'base64');
15
+ //
16
+ // Execute the circuit
17
+ const _witnessMap = await executeCircuitWithBlackBoxSolver(await getSolver(), decodedBytecode, input, () => {
18
+ throw Error('unexpected oracle during execution');
19
+ });
20
+ return _witnessMap;
21
+ }
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN2bV93YXNtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NpbXVsYXRvci9hY3ZtX3dhc20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUE4QixvQkFBb0IsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBS3hILElBQUksTUFBMkMsQ0FBQztBQUVoRCxNQUFNLFNBQVMsR0FBRyxHQUF3QyxFQUFFO0lBQzFELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE1BQU0sR0FBRyxvQkFBb0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLE9BQU8sYUFBYTtJQUN4QixLQUFLLENBQUMsZUFBZSxDQUFDLEtBQWlCLEVBQUUsZUFBb0M7UUFDM0Usc0RBQXNEO1FBQ3RELEVBQUU7UUFDRixxRkFBcUY7UUFDckYsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFLEVBQUU7UUFDRixzQkFBc0I7UUFDdEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxnQ0FBZ0MsQ0FBQyxNQUFNLFNBQVMsRUFBRSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQ3pHLE1BQU0sS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0NBQ0YifQ==
@@ -1,4 +1,4 @@
1
- import { BaseOrMergeRollupPublicInputs, BaseRollupInputs, MergeRollupInputs, PublicKernelCircuitPrivateInputs, PublicKernelCircuitPublicInputs, RootRollupInputs, RootRollupPublicInputs } from '@aztec/circuits.js';
1
+ import { BaseOrMergeRollupPublicInputs, BaseRollupInputs, MergeRollupInputs, PublicKernelCircuitPrivateInputs, PublicKernelCircuitPublicInputs, PublicKernelTailCircuitPrivateInputs, RootRollupInputs, RootRollupPublicInputs } from '@aztec/circuits.js';
2
2
  /**
3
3
  * Circuit simulator for the rollup circuits.
4
4
  */
@@ -44,5 +44,12 @@ export interface PublicKernelCircuitSimulator {
44
44
  * @returns The public inputs as outputs of the simulation.
45
45
  */
46
46
  publicKernelCircuitTeardown(inputs: PublicKernelCircuitPrivateInputs): Promise<PublicKernelCircuitPublicInputs>;
47
+ /**
48
+ * Simulates the public kernel tail circuit from its inputs.
49
+ * @param inputs - Inputs to the circuit.
50
+ * @returns The public inputs as outputs of the simulation.
51
+ */
52
+ publicKernelCircuitTail(inputs: PublicKernelTailCircuitPrivateInputs): Promise<PublicKernelCircuitPublicInputs>;
47
53
  }
54
+ export * from './acvm_wasm.js';
48
55
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/simulator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,EACjB,gCAAgC,EAChC,+BAA+B,EAC/B,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACnF;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACrF;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC7E;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,wBAAwB,CAAC,MAAM,EAAE,gCAAgC,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC7G;;;;OAIG;IACH,2BAA2B,CAAC,MAAM,EAAE,gCAAgC,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAChH;;;;OAIG;IACH,2BAA2B,CAAC,MAAM,EAAE,gCAAgC,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;CACjH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/simulator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,EACjB,gCAAgC,EAChC,+BAA+B,EAC/B,oCAAoC,EACpC,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACnF;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACrF;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC7E;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,wBAAwB,CAAC,MAAM,EAAE,gCAAgC,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC7G;;;;OAIG;IACH,2BAA2B,CAAC,MAAM,EAAE,gCAAgC,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAChH;;;;OAIG;IACH,2BAA2B,CAAC,MAAM,EAAE,gCAAgC,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAChH;;;;OAIG;IACH,uBAAuB,CAAC,MAAM,EAAE,oCAAoC,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;CACjH;AACD,cAAc,gBAAgB,CAAC"}
@@ -1,2 +1,2 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2ltdWxhdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
1
+ export * from './acvm_wasm.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2ltdWxhdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdFQSxjQUFjLGdCQUFnQixDQUFDIn0=
@@ -1,10 +1,14 @@
1
- import { PublicKernelCircuitPrivateInputs, PublicKernelCircuitPublicInputs } from '@aztec/circuits.js';
1
+ import { PublicKernelCircuitPrivateInputs, PublicKernelCircuitPublicInputs, PublicKernelTailCircuitPrivateInputs } from '@aztec/circuits.js';
2
2
  import { PublicKernelCircuitSimulator } from './index.js';
3
+ import { SimulationProvider } from './simulation_provider.js';
3
4
  /**
4
5
  * Implements the PublicKernelCircuitSimulator.
5
6
  */
6
7
  export declare class RealPublicKernelCircuitSimulator implements PublicKernelCircuitSimulator {
8
+ private simulator;
7
9
  private log;
10
+ private wasmSimulator;
11
+ constructor(simulator: SimulationProvider);
8
12
  /**
9
13
  * Simulates the public kernel setup circuit from its inputs.
10
14
  * @param input - Inputs to the circuit.
@@ -23,5 +27,11 @@ export declare class RealPublicKernelCircuitSimulator implements PublicKernelCir
23
27
  * @returns The public inputs as outputs of the simulation.
24
28
  */
25
29
  publicKernelCircuitTeardown(input: PublicKernelCircuitPrivateInputs): Promise<PublicKernelCircuitPublicInputs>;
30
+ /**
31
+ * Simulates the public kernel tail circuit from its inputs.
32
+ * @param input - Inputs to the circuit.
33
+ * @returns The public inputs as outputs of the simulation.
34
+ */
35
+ publicKernelCircuitTail(input: PublicKernelTailCircuitPrivateInputs): Promise<PublicKernelCircuitPublicInputs>;
26
36
  }
27
37
  //# sourceMappingURL=public_kernel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public_kernel.d.ts","sourceRoot":"","sources":["../../src/simulator/public_kernel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AASvG,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE1D;;GAEG;AACH,qBAAa,gCAAiC,YAAW,4BAA4B;IACnF,OAAO,CAAC,GAAG,CAAsD;IAEjE;;;;OAIG;IACU,wBAAwB,CACnC,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,+BAA+B,CAAC;IAe3C;;;;OAIG;IACU,2BAA2B,CACtC,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,+BAA+B,CAAC;IAe3C;;;;OAIG;IACU,2BAA2B,CACtC,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,+BAA+B,CAAC;CAc5C"}
1
+ {"version":3,"file":"public_kernel.d.ts","sourceRoot":"","sources":["../../src/simulator/public_kernel.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gCAAgC,EAChC,+BAA+B,EAC/B,oCAAoC,EACrC,MAAM,oBAAoB,CAAC;AAkB5B,OAAO,EAAE,4BAA4B,EAAiB,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;GAEG;AACH,qBAAa,gCAAiC,YAAW,4BAA4B;IAMvE,OAAO,CAAC,SAAS;IAL7B,OAAO,CAAC,GAAG,CAAsD;IAGjE,OAAO,CAAC,aAAa,CAAsC;gBAEvC,SAAS,EAAE,kBAAkB;IAEjD;;;;OAIG;IACU,wBAAwB,CACnC,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,+BAA+B,CAAC;IAmB3C;;;;OAIG;IACU,2BAA2B,CACtC,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,+BAA+B,CAAC;IAmB3C;;;;OAIG;IACU,2BAA2B,CACtC,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,+BAA+B,CAAC;IAmB3C;;;;OAIG;IACU,uBAAuB,CAClC,KAAK,EAAE,oCAAoC,GAC1C,OAAO,CAAC,+BAA+B,CAAC;CAe5C"}
@@ -1,12 +1,16 @@
1
1
  import { createDebugLogger } from '@aztec/foundation/log';
2
2
  import { elapsed } from '@aztec/foundation/timer';
3
- import { executePublicKernelAppLogic, executePublicKernelSetup, executePublicKernelTeardown, } from '@aztec/noir-protocol-circuits-types';
3
+ import { PublicKernelAppLogicArtifact, PublicKernelSetupArtifact, PublicKernelTailArtifact, PublicKernelTeardownArtifact, convertPublicInnerRollupInputsToWitnessMap, convertPublicInnerRollupOutputFromWitnessMap, convertPublicSetupRollupInputsToWitnessMap, convertPublicSetupRollupOutputFromWitnessMap, convertPublicTailInputsToWitnessMap, convertPublicTailOutputFromWitnessMap, convertPublicTeardownRollupInputsToWitnessMap, convertPublicTeardownRollupOutputFromWitnessMap, } from '@aztec/noir-protocol-circuits-types';
4
+ import { WASMSimulator } from './index.js';
4
5
  /**
5
6
  * Implements the PublicKernelCircuitSimulator.
6
7
  */
7
8
  export class RealPublicKernelCircuitSimulator {
8
- constructor() {
9
+ constructor(simulator) {
10
+ this.simulator = simulator;
9
11
  this.log = createDebugLogger('aztec:public-kernel-simulator');
12
+ // Some circuits are so small it is faster to use WASM
13
+ this.wasmSimulator = new WASMSimulator();
10
14
  }
11
15
  /**
12
16
  * Simulates the public kernel setup circuit from its inputs.
@@ -17,7 +21,9 @@ export class RealPublicKernelCircuitSimulator {
17
21
  if (!input.previousKernel.publicInputs.needsSetup) {
18
22
  throw new Error(`Expected previous kernel inputs to need setup`);
19
23
  }
20
- const [duration, result] = await elapsed(() => executePublicKernelSetup(input));
24
+ const inputWitness = convertPublicSetupRollupInputsToWitnessMap(input);
25
+ const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness, PublicKernelSetupArtifact));
26
+ const result = convertPublicSetupRollupOutputFromWitnessMap(witness);
21
27
  this.log(`Simulated public kernel setup circuit`, {
22
28
  eventName: 'circuit-simulation',
23
29
  circuitName: 'public-kernel-setup',
@@ -36,7 +42,9 @@ export class RealPublicKernelCircuitSimulator {
36
42
  if (!input.previousKernel.publicInputs.needsAppLogic) {
37
43
  throw new Error(`Expected previous kernel inputs to need app logic`);
38
44
  }
39
- const [duration, result] = await elapsed(() => executePublicKernelAppLogic(input));
45
+ const inputWitness = convertPublicInnerRollupInputsToWitnessMap(input);
46
+ const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness, PublicKernelAppLogicArtifact));
47
+ const result = convertPublicInnerRollupOutputFromWitnessMap(witness);
40
48
  this.log(`Simulated public kernel app logic circuit`, {
41
49
  eventName: 'circuit-simulation',
42
50
  circuitName: 'public-kernel-app-logic',
@@ -55,7 +63,9 @@ export class RealPublicKernelCircuitSimulator {
55
63
  if (!input.previousKernel.publicInputs.needsTeardown) {
56
64
  throw new Error(`Expected previous kernel inputs to need teardown`);
57
65
  }
58
- const [duration, result] = await elapsed(() => executePublicKernelTeardown(input));
66
+ const inputWitness = convertPublicTeardownRollupInputsToWitnessMap(input);
67
+ const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness, PublicKernelTeardownArtifact));
68
+ const result = convertPublicTeardownRollupOutputFromWitnessMap(witness);
59
69
  this.log(`Simulated public kernel teardown circuit`, {
60
70
  eventName: 'circuit-simulation',
61
71
  circuitName: 'public-kernel-teardown',
@@ -65,5 +75,23 @@ export class RealPublicKernelCircuitSimulator {
65
75
  });
66
76
  return result;
67
77
  }
78
+ /**
79
+ * Simulates the public kernel tail circuit from its inputs.
80
+ * @param input - Inputs to the circuit.
81
+ * @returns The public inputs as outputs of the simulation.
82
+ */
83
+ async publicKernelCircuitTail(input) {
84
+ const inputWitness = convertPublicTailInputsToWitnessMap(input);
85
+ const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness, PublicKernelTailArtifact));
86
+ const result = convertPublicTailOutputFromWitnessMap(witness);
87
+ this.log(`Simulated public kernel tail circuit`, {
88
+ eventName: 'circuit-simulation',
89
+ circuitName: 'public-kernel-tail',
90
+ duration,
91
+ inputSize: input.toBuffer().length,
92
+ outputSize: result.toBuffer().length,
93
+ });
94
+ return result;
95
+ }
68
96
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2tlcm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaW11bGF0b3IvcHVibGljX2tlcm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUNMLDJCQUEyQixFQUMzQix3QkFBd0IsRUFDeEIsMkJBQTJCLEdBQzVCLE1BQU0scUNBQXFDLENBQUM7QUFJN0M7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0NBQWdDO0lBQTdDO1FBQ1UsUUFBRyxHQUFHLGlCQUFpQixDQUFDLCtCQUErQixDQUFDLENBQUM7SUFtRW5FLENBQUM7SUFqRUM7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyx3QkFBd0IsQ0FDbkMsS0FBdUM7UUFFdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxHQUFHLENBQUMsdUNBQXVDLEVBQUU7WUFDaEQsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixXQUFXLEVBQUUscUJBQXFCO1lBQ2xDLFFBQVE7WUFDUixTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07WUFDbEMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNO1NBQ0osQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLDJCQUEyQixDQUN0QyxLQUF1QztRQUV2QyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLEdBQUcsQ0FBQywyQ0FBMkMsRUFBRTtZQUNwRCxTQUFTLEVBQUUsb0JBQW9CO1lBQy9CLFdBQVcsRUFBRSx5QkFBeUI7WUFDdEMsUUFBUTtZQUNSLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTTtZQUNsQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07U0FDSixDQUFDLENBQUM7UUFDcEMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsMkJBQTJCLENBQ3RDLEtBQXVDO1FBRXZDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUNELE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxFQUFFO1lBQ25ELFNBQVMsRUFBRSxvQkFBb0I7WUFDL0IsV0FBVyxFQUFFLHdCQUF3QjtZQUNyQyxRQUFRO1lBQ1IsU0FBUyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNO1lBQ2xDLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTTtTQUNKLENBQUMsQ0FBQztRQUNwQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YifQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2tlcm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaW11bGF0b3IvcHVibGljX2tlcm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUNMLDRCQUE0QixFQUM1Qix5QkFBeUIsRUFDekIsd0JBQXdCLEVBQ3hCLDRCQUE0QixFQUM1QiwwQ0FBMEMsRUFDMUMsNENBQTRDLEVBQzVDLDBDQUEwQyxFQUMxQyw0Q0FBNEMsRUFDNUMsbUNBQW1DLEVBQ25DLHFDQUFxQyxFQUNyQyw2Q0FBNkMsRUFDN0MsK0NBQStDLEdBQ2hELE1BQU0scUNBQXFDLENBQUM7QUFFN0MsT0FBTyxFQUFnQyxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHekU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0NBQWdDO0lBTTNDLFlBQW9CLFNBQTZCO1FBQTdCLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBTHpDLFFBQUcsR0FBRyxpQkFBaUIsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBRWpFLHNEQUFzRDtRQUM5QyxrQkFBYSxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO0lBRVAsQ0FBQztJQUVyRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLHdCQUF3QixDQUNuQyxLQUF1QztRQUV2QyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxNQUFNLFlBQVksR0FBRywwQ0FBMEMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RSxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdB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
@@ -1,10 +1,14 @@
1
1
  import { BaseOrMergeRollupPublicInputs, BaseRollupInputs, MergeRollupInputs, RootRollupInputs, RootRollupPublicInputs } from '@aztec/circuits.js';
2
2
  import { RollupSimulator } from './index.js';
3
+ import { SimulationProvider } from './simulation_provider.js';
3
4
  /**
4
5
  * Implements the rollup circuit simulator.
5
6
  */
6
7
  export declare class RealRollupCircuitSimulator implements RollupSimulator {
8
+ private simulationProvider;
7
9
  private log;
10
+ private wasmSimulator;
11
+ constructor(simulationProvider: SimulationProvider);
8
12
  /**
9
13
  * Simulates the base rollup circuit from its inputs.
10
14
  * @param input - Inputs to the circuit.
@@ -1 +1 @@
1
- {"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/simulator/rollup.ts"],"names":[],"mappings":"AACA,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,qBAAa,0BAA2B,YAAW,eAAe;IAChE,OAAO,CAAC,GAAG,CAA+C;IAE1D;;;;OAIG;IACU,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAa/F;;;;OAIG;IACU,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAcjG;;;;OAIG;IACU,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAazF"}
1
+ {"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/simulator/rollup.ts"],"names":[],"mappings":"AACA,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAe5B,OAAO,EAAE,eAAe,EAAiB,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;GAEG;AACH,qBAAa,0BAA2B,YAAW,eAAe;IAMpD,OAAO,CAAC,kBAAkB;IALtC,OAAO,CAAC,GAAG,CAA+C;IAG1D,OAAO,CAAC,aAAa,CAAsC;gBAEvC,kBAAkB,EAAE,kBAAkB;IAE1D;;;;OAIG;IACU,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAS/F;;;;OAIG;IACU,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAUjG;;;;OAIG;IACU,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAiBzF"}
@@ -1,12 +1,16 @@
1
1
  import { createDebugLogger } from '@aztec/foundation/log';
2
2
  import { elapsed } from '@aztec/foundation/timer';
3
- import { executeBaseRollup, executeMergeRollup, executeRootRollup } from '@aztec/noir-protocol-circuits-types';
3
+ import { BaseRollupArtifact, MergeRollupArtifact, RootRollupArtifact, convertBaseRollupInputsToWitnessMap, convertBaseRollupOutputsFromWitnessMap, convertMergeRollupInputsToWitnessMap, convertMergeRollupOutputsFromWitnessMap, convertRootRollupInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap, } from '@aztec/noir-protocol-circuits-types';
4
+ import { WASMSimulator } from './index.js';
4
5
  /**
5
6
  * Implements the rollup circuit simulator.
6
7
  */
7
8
  export class RealRollupCircuitSimulator {
8
- constructor() {
9
+ constructor(simulationProvider) {
10
+ this.simulationProvider = simulationProvider;
9
11
  this.log = createDebugLogger('aztec:rollup-simulator');
12
+ // Some circuits are so small it is faster to use WASM
13
+ this.wasmSimulator = new WASMSimulator();
10
14
  }
11
15
  /**
12
16
  * Simulates the base rollup circuit from its inputs.
@@ -14,14 +18,9 @@ export class RealRollupCircuitSimulator {
14
18
  * @returns The public inputs as outputs of the simulation.
15
19
  */
16
20
  async baseRollupCircuit(input) {
17
- const [duration, result] = await elapsed(() => executeBaseRollup(input));
18
- this.log(`Simulated base rollup circuit`, {
19
- eventName: 'circuit-simulation',
20
- circuitName: 'base-rollup',
21
- duration,
22
- inputSize: input.toBuffer().length,
23
- outputSize: result.toBuffer().length,
24
- });
21
+ const witnessMap = convertBaseRollupInputsToWitnessMap(input);
22
+ const witness = await this.simulationProvider.simulateCircuit(witnessMap, BaseRollupArtifact);
23
+ const result = convertBaseRollupOutputsFromWitnessMap(witness);
25
24
  return Promise.resolve(result);
26
25
  }
27
26
  /**
@@ -30,14 +29,9 @@ export class RealRollupCircuitSimulator {
30
29
  * @returns The public inputs as outputs of the simulation.
31
30
  */
32
31
  async mergeRollupCircuit(input) {
33
- const [duration, result] = await elapsed(() => executeMergeRollup(input));
34
- this.log(`Simulated merge rollup circuit`, {
35
- eventName: 'circuit-simulation',
36
- circuitName: 'merge-rollup',
37
- duration,
38
- inputSize: input.toBuffer().length,
39
- outputSize: result.toBuffer().length,
40
- });
32
+ const witnessMap = convertMergeRollupInputsToWitnessMap(input);
33
+ const witness = await this.wasmSimulator.simulateCircuit(witnessMap, MergeRollupArtifact);
34
+ const result = convertMergeRollupOutputsFromWitnessMap(witness);
41
35
  return result;
42
36
  }
43
37
  /**
@@ -46,7 +40,9 @@ export class RealRollupCircuitSimulator {
46
40
  * @returns The public inputs as outputs of the simulation.
47
41
  */
48
42
  async rootRollupCircuit(input) {
49
- const [duration, result] = await elapsed(() => executeRootRollup(input));
43
+ const witnessMap = convertRootRollupInputsToWitnessMap(input);
44
+ const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(witnessMap, RootRollupArtifact));
45
+ const result = convertRootRollupOutputsFromWitnessMap(witness);
50
46
  this.log(`Simulated root rollup circuit`, {
51
47
  eventName: 'circuit-simulation',
52
48
  circuitName: 'root-rollup',
@@ -57,4 +53,4 @@ export class RealRollupCircuitSimulator {
57
53
  return result;
58
54
  }
59
55
  }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbHVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NpbXVsYXRvci9yb2xsdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBSS9HOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDBCQUEwQjtJQUF2QztRQUNVLFFBQUcsR0FBRyxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBeUQ1RCxDQUFDO0lBdkRDOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBdUI7UUFDcEQsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXpFLElBQUksQ0FBQyxHQUFHLENBQUMsK0JBQStCLEVBQUU7WUFDeEMsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixXQUFXLEVBQUUsYUFBYTtZQUMxQixRQUFRO1lBQ1IsU0FBUyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNO1lBQ2xDLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTTtTQUNKLENBQUMsQ0FBQztRQUVwQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBd0I7UUFDdEQsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRTFFLElBQUksQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLEVBQUU7WUFDekMsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixXQUFXLEVBQUUsY0FBYztZQUMzQixRQUFRO1lBQ1IsU0FBUyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNO1lBQ2xDLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTTtTQUNKLENBQUMsQ0FBQztRQUVwQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUF1QjtRQUNwRCxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFekUsSUFBSSxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsRUFBRTtZQUN4QyxTQUFTLEVBQUUsb0JBQW9CO1lBQy9CLFdBQVcsRUFBRSxhQUFhO1lBQzFCLFFBQVE7WUFDUixTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07WUFDbEMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNO1NBQ0osQ0FBQyxDQUFDO1FBRXBDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiJ9
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbHVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NpbXVsYXRvci9yb2xsdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLG9DQUFvQyxFQUNwQyx1Q0FBdUMsRUFDdkMsbUNBQW1DLEVBQ25DLHNDQUFzQyxHQUN2QyxNQUFNLHFDQUFxQyxDQUFDO0FBRTdDLE9BQU8sRUFBbUIsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRzVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDBCQUEwQjtJQU1yQyxZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUxsRCxRQUFHLEdBQUcsaUJBQWlCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUUxRCxzREFBc0Q7UUFDOUMsa0JBQWEsR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUVFLENBQUM7SUFFOUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUF1QjtRQUNwRCxNQUFNLFVBQVUsR0FBRyxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5RCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFFOUYsTUFBTSxNQUFNLEdBQUcsc0NBQXNDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFL0QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQXdCO1FBQ3RELE1BQU0sVUFBVSxHQUFHLG9DQUFvQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9ELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFMUYsTUFBTSxNQUFNLEdBQUcsdUNBQXVDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFaEUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBdUI7UUFDcEQsTUFBTSxVQUFVLEdBQUcsbUNBQW1DLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUQsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBRXBILE1BQU0sTUFBTSxHQUFHLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxHQUFHLENBQUMsK0JBQStCLEVBQUU7WUFDeEMsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixXQUFXLEVBQUUsYUFBYTtZQUMxQixRQUFRO1lBQ1IsU0FBUyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNO1lBQ2xDLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTTtTQUNKLENBQUMsQ0FBQztRQUVwQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YifQ==
@@ -0,0 +1,9 @@
1
+ import { NoirCompiledCircuit } from '@aztec/types/noir';
2
+ import { WitnessMap } from '@noir-lang/types';
3
+ /**
4
+ * Low level simulation interface
5
+ */
6
+ export interface SimulationProvider {
7
+ simulateCircuit(input: WitnessMap, compiledCircuit: NoirCompiledCircuit): Promise<WitnessMap>;
8
+ }
9
+ //# sourceMappingURL=simulation_provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulation_provider.d.ts","sourceRoot":"","sources":["../../src/simulator/simulation_provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC/F"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdGlvbl9wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaW11bGF0b3Ivc2ltdWxhdGlvbl9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/sequencer-client",
3
- "version": "0.26.3",
3
+ "version": "0.26.6",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "typedocOptions": {
@@ -21,18 +21,20 @@
21
21
  "test:integration:run": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --config jest.integration.config.json"
22
22
  },
23
23
  "dependencies": {
24
- "@aztec/circuit-types": "0.26.3",
25
- "@aztec/circuits.js": "0.26.3",
26
- "@aztec/ethereum": "0.26.3",
27
- "@aztec/foundation": "0.26.3",
28
- "@aztec/l1-artifacts": "0.26.3",
29
- "@aztec/merkle-tree": "0.26.3",
30
- "@aztec/noir-protocol-circuits-types": "0.26.3",
31
- "@aztec/p2p": "0.26.3",
32
- "@aztec/protocol-contracts": "0.26.3",
33
- "@aztec/simulator": "0.26.3",
34
- "@aztec/types": "0.26.3",
35
- "@aztec/world-state": "0.26.3",
24
+ "@aztec/circuit-types": "0.26.6",
25
+ "@aztec/circuits.js": "0.26.6",
26
+ "@aztec/ethereum": "0.26.6",
27
+ "@aztec/foundation": "0.26.6",
28
+ "@aztec/l1-artifacts": "0.26.6",
29
+ "@aztec/merkle-tree": "0.26.6",
30
+ "@aztec/noir-protocol-circuits-types": "0.26.6",
31
+ "@aztec/p2p": "0.26.6",
32
+ "@aztec/protocol-contracts": "0.26.6",
33
+ "@aztec/simulator": "0.26.6",
34
+ "@aztec/types": "0.26.6",
35
+ "@aztec/world-state": "0.26.6",
36
+ "@noir-lang/acvm_js": "portal:../../noir/packages/acvm_js",
37
+ "@noir-lang/types": "portal:../../noir/packages/types",
36
38
  "lodash.chunk": "^4.2.0",
37
39
  "lodash.pick": "^4.4.0",
38
40
  "tslib": "^2.4.0",