@aztec/simulator 3.0.0-nightly.20251102 → 3.0.0-nightly.20251104

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.
@@ -1 +1 @@
1
- {"version":3,"file":"acvm_native.d.ts","sourceRoot":"","sources":["../../src/private/acvm_native.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAKtE,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,oBAAY,WAAW;IACrB,OAAO,IAAA;IACP,OAAO,IAAA;CACR;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;AAmBnD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,UAAU,EACxB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,UAAU,CAAC,CAsErB;AAED,qBAAa,mBAAoB,YAAW,gBAAgB;IAExD,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,eAAe,CAAC;gBAFhB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,YAAA;IAG5B,sBAAsB,CAC1B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,2BAA2B,EACrC,QAAQ,EAAE,kBAAkB,GAAG,SAAS,GACvC,OAAO,CAAC,WAAW,CAAC;IA6BvB,kBAAkB,CAChB,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,gCAAgC,EAC3C,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,mBAAmB,CAAC;CAGhC"}
1
+ {"version":3,"file":"acvm_native.d.ts","sourceRoot":"","sources":["../../src/private/acvm_native.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAKtE,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,oBAAY,WAAW;IACrB,OAAO,IAAA;IACP,OAAO,IAAA;CACR;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;AAmBnD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,UAAU,EACxB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,UAAU,CAAC,CA8ErB;AAED,qBAAa,mBAAoB,YAAW,gBAAgB;IAExD,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,eAAe,CAAC;gBAFhB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,YAAA;IAG5B,sBAAsB,CAC1B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,2BAA2B,EACrC,QAAQ,EAAE,kBAAkB,GAAG,SAAS,GACvC,OAAO,CAAC,WAAW,CAAC;IA6BvB,kBAAkB,CAChB,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,gCAAgC,EAC3C,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,mBAAmB,CAAC;CAGhC"}
@@ -67,27 +67,26 @@ export var ACVM_RESULT = /*#__PURE__*/ function(ACVM_RESULT) {
67
67
  ];
68
68
  logger.debug(`Calling ACVM with ${args.join(' ')}`);
69
69
  const processPromise = new Promise((resolve, reject)=>{
70
- let outputWitness = Buffer.alloc(0);
71
- let errorBuffer = Buffer.alloc(0);
70
+ const outChunks = [];
71
+ const errChunks = [];
72
+ let outLen = 0;
73
+ let errLen = 0;
72
74
  const acvm = proc.spawn(pathToAcvm, args);
73
75
  acvm.stdout.on('data', (data)=>{
74
- outputWitness = Buffer.concat([
75
- outputWitness,
76
- data
77
- ]);
76
+ outChunks.push(data);
77
+ outLen += data.length;
78
78
  });
79
79
  acvm.stderr.on('data', (data)=>{
80
- errorBuffer = Buffer.concat([
81
- errorBuffer,
82
- data
83
- ]);
80
+ errChunks.push(data);
81
+ errLen += data.length;
84
82
  });
85
83
  acvm.on('close', (code)=>{
86
84
  if (code === 0) {
87
- resolve(outputWitness.toString('utf-8'));
85
+ resolve(Buffer.concat(outChunks, outLen).toString('utf-8'));
88
86
  } else {
89
- logger.error(`From ACVM: ${errorBuffer.toString('utf-8')}`);
90
- reject(errorBuffer.toString('utf-8'));
87
+ const stderr = Buffer.concat(errChunks, errLen);
88
+ logger.error(`From ACVM: ${stderr.toString('utf-8')}`);
89
+ reject(stderr.toString('utf-8'));
91
90
  }
92
91
  });
93
92
  });
@@ -98,6 +97,9 @@ export var ACVM_RESULT = /*#__PURE__*/ function(ACVM_RESULT) {
98
97
  const outputWitnessFileName = `${workingDirectory}/output-witness.gz`;
99
98
  await fs.copyFile(outputWitnessFileName, outputFilename);
100
99
  }
100
+ // TODO: We shouldn't be parsing the witness from stdout, it's not very performant, and we end up with two ways of fetching the witness.
101
+ // We probably should implement the WitnessStack type, run the ACVM with msgpack serialization mode (env variable), and ungzip and parse the witness from
102
+ // the outputted gz witness file.
101
103
  const witness = parseIntoWitnessMap(output);
102
104
  return {
103
105
  status: 0,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/simulator",
3
- "version": "3.0.0-nightly.20251102",
3
+ "version": "3.0.0-nightly.20251104",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./server": "./dest/server.js",
@@ -64,26 +64,26 @@
64
64
  ]
65
65
  },
66
66
  "dependencies": {
67
- "@aztec/constants": "3.0.0-nightly.20251102",
68
- "@aztec/foundation": "3.0.0-nightly.20251102",
69
- "@aztec/native": "3.0.0-nightly.20251102",
70
- "@aztec/noir-acvm_js": "3.0.0-nightly.20251102",
71
- "@aztec/noir-noirc_abi": "3.0.0-nightly.20251102",
72
- "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251102",
73
- "@aztec/noir-types": "3.0.0-nightly.20251102",
74
- "@aztec/protocol-contracts": "3.0.0-nightly.20251102",
75
- "@aztec/stdlib": "3.0.0-nightly.20251102",
76
- "@aztec/telemetry-client": "3.0.0-nightly.20251102",
77
- "@aztec/world-state": "3.0.0-nightly.20251102",
67
+ "@aztec/constants": "3.0.0-nightly.20251104",
68
+ "@aztec/foundation": "3.0.0-nightly.20251104",
69
+ "@aztec/native": "3.0.0-nightly.20251104",
70
+ "@aztec/noir-acvm_js": "3.0.0-nightly.20251104",
71
+ "@aztec/noir-noirc_abi": "3.0.0-nightly.20251104",
72
+ "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251104",
73
+ "@aztec/noir-types": "3.0.0-nightly.20251104",
74
+ "@aztec/protocol-contracts": "3.0.0-nightly.20251104",
75
+ "@aztec/stdlib": "3.0.0-nightly.20251104",
76
+ "@aztec/telemetry-client": "3.0.0-nightly.20251104",
77
+ "@aztec/world-state": "3.0.0-nightly.20251104",
78
78
  "lodash.clonedeep": "^4.5.0",
79
79
  "lodash.merge": "^4.6.2",
80
80
  "tslib": "^2.4.0"
81
81
  },
82
82
  "devDependencies": {
83
- "@aztec/kv-store": "3.0.0-nightly.20251102",
84
- "@aztec/merkle-tree": "3.0.0-nightly.20251102",
85
- "@aztec/noir-contracts.js": "3.0.0-nightly.20251102",
86
- "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251102",
83
+ "@aztec/kv-store": "3.0.0-nightly.20251104",
84
+ "@aztec/merkle-tree": "3.0.0-nightly.20251104",
85
+ "@aztec/noir-contracts.js": "3.0.0-nightly.20251104",
86
+ "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251104",
87
87
  "@jest/globals": "^30.0.0",
88
88
  "@types/jest": "^30.0.0",
89
89
  "@types/lodash.clonedeep": "^4.5.7",
@@ -103,21 +103,26 @@ export async function executeNativeCircuit(
103
103
  logger.debug(`Calling ACVM with ${args.join(' ')}`);
104
104
 
105
105
  const processPromise = new Promise<string>((resolve, reject) => {
106
- let outputWitness = Buffer.alloc(0);
107
- let errorBuffer = Buffer.alloc(0);
106
+ const outChunks: Buffer[] = [];
107
+ const errChunks: Buffer[] = [];
108
+ let outLen = 0;
109
+ let errLen = 0;
108
110
  const acvm = proc.spawn(pathToAcvm, args);
109
- acvm.stdout.on('data', data => {
110
- outputWitness = Buffer.concat([outputWitness, data]);
111
+ acvm.stdout.on('data', (data: Buffer) => {
112
+ outChunks.push(data);
113
+ outLen += data.length;
111
114
  });
112
- acvm.stderr.on('data', data => {
113
- errorBuffer = Buffer.concat([errorBuffer, data]);
115
+ acvm.stderr.on('data', (data: Buffer) => {
116
+ errChunks.push(data);
117
+ errLen += data.length;
114
118
  });
115
119
  acvm.on('close', code => {
116
120
  if (code === 0) {
117
- resolve(outputWitness.toString('utf-8'));
121
+ resolve(Buffer.concat(outChunks, outLen).toString('utf-8'));
118
122
  } else {
119
- logger.error(`From ACVM: ${errorBuffer.toString('utf-8')}`);
120
- reject(errorBuffer.toString('utf-8'));
123
+ const stderr = Buffer.concat(errChunks, errLen);
124
+ logger.error(`From ACVM: ${stderr.toString('utf-8')}`);
125
+ reject(stderr.toString('utf-8'));
121
126
  }
122
127
  });
123
128
  });
@@ -129,6 +134,9 @@ export async function executeNativeCircuit(
129
134
  const outputWitnessFileName = `${workingDirectory}/output-witness.gz`;
130
135
  await fs.copyFile(outputWitnessFileName, outputFilename);
131
136
  }
137
+ // TODO: We shouldn't be parsing the witness from stdout, it's not very performant, and we end up with two ways of fetching the witness.
138
+ // We probably should implement the WitnessStack type, run the ACVM with msgpack serialization mode (env variable), and ungzip and parse the witness from
139
+ // the outputted gz witness file.
132
140
  const witness = parseIntoWitnessMap(output);
133
141
  return { status: ACVM_RESULT.SUCCESS, witness, duration };
134
142
  } catch (error) {