@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,
|
|
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
|
-
|
|
71
|
-
|
|
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
|
-
|
|
75
|
-
|
|
76
|
-
data
|
|
77
|
-
]);
|
|
76
|
+
outChunks.push(data);
|
|
77
|
+
outLen += data.length;
|
|
78
78
|
});
|
|
79
79
|
acvm.stderr.on('data', (data)=>{
|
|
80
|
-
|
|
81
|
-
|
|
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(
|
|
85
|
+
resolve(Buffer.concat(outChunks, outLen).toString('utf-8'));
|
|
88
86
|
} else {
|
|
89
|
-
|
|
90
|
-
|
|
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.
|
|
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.
|
|
68
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
69
|
-
"@aztec/native": "3.0.0-nightly.
|
|
70
|
-
"@aztec/noir-acvm_js": "3.0.0-nightly.
|
|
71
|
-
"@aztec/noir-noirc_abi": "3.0.0-nightly.
|
|
72
|
-
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.
|
|
73
|
-
"@aztec/noir-types": "3.0.0-nightly.
|
|
74
|
-
"@aztec/protocol-contracts": "3.0.0-nightly.
|
|
75
|
-
"@aztec/stdlib": "3.0.0-nightly.
|
|
76
|
-
"@aztec/telemetry-client": "3.0.0-nightly.
|
|
77
|
-
"@aztec/world-state": "3.0.0-nightly.
|
|
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.
|
|
84
|
-
"@aztec/merkle-tree": "3.0.0-nightly.
|
|
85
|
-
"@aztec/noir-contracts.js": "3.0.0-nightly.
|
|
86
|
-
"@aztec/noir-test-contracts.js": "3.0.0-nightly.
|
|
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
|
-
|
|
107
|
-
|
|
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
|
-
|
|
111
|
+
acvm.stdout.on('data', (data: Buffer) => {
|
|
112
|
+
outChunks.push(data);
|
|
113
|
+
outLen += data.length;
|
|
111
114
|
});
|
|
112
|
-
acvm.stderr.on('data', data => {
|
|
113
|
-
|
|
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(
|
|
121
|
+
resolve(Buffer.concat(outChunks, outLen).toString('utf-8'));
|
|
118
122
|
} else {
|
|
119
|
-
|
|
120
|
-
|
|
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) {
|