@aztec/simulator 0.38.0 → 0.39.0
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.
- package/dest/acvm/oracle/oracle.d.ts +1 -1
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +8 -23
- package/dest/acvm/oracle/typed_oracle.d.ts +2 -3
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +4 -7
- package/dest/avm/avm_execution_environment.d.ts +4 -3
- package/dest/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/avm/avm_execution_environment.js +17 -11
- package/dest/avm/avm_gas.d.ts.map +1 -1
- package/dest/avm/avm_gas.js +3 -1
- package/dest/avm/avm_machine_state.d.ts +5 -8
- package/dest/avm/avm_machine_state.d.ts.map +1 -1
- package/dest/avm/avm_machine_state.js +10 -22
- package/dest/avm/avm_message_call_result.d.ts +5 -8
- package/dest/avm/avm_message_call_result.d.ts.map +1 -1
- package/dest/avm/avm_message_call_result.js +1 -4
- package/dest/avm/avm_simulator.d.ts.map +1 -1
- package/dest/avm/avm_simulator.js +17 -13
- package/dest/avm/errors.d.ts +43 -2
- package/dest/avm/errors.d.ts.map +1 -1
- package/dest/avm/errors.js +86 -4
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +4 -3
- package/dest/avm/opcodes/conversion.d.ts +16 -0
- package/dest/avm/opcodes/conversion.d.ts.map +1 -0
- package/dest/avm/opcodes/conversion.js +48 -0
- package/dest/avm/opcodes/environment_getters.d.ts +12 -13
- package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/avm/opcodes/environment_getters.js +13 -49
- package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/avm/opcodes/external_calls.js +11 -1
- package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/bytecode_serialization.js +4 -1
- package/dest/avm/serialization/instruction_serialization.d.ts +2 -1
- package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/instruction_serialization.js +3 -1
- package/dest/client/client_execution_context.d.ts +28 -1
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +50 -15
- package/dest/client/db_oracle.d.ts +1 -8
- package/dest/client/db_oracle.d.ts.map +1 -1
- package/dest/client/execution_result.d.ts +4 -1
- package/dest/client/execution_result.d.ts.map +1 -1
- package/dest/client/execution_result.js +16 -3
- package/dest/client/private_execution.d.ts.map +1 -1
- package/dest/client/private_execution.js +3 -1
- package/dest/client/simulator.d.ts +1 -31
- package/dest/client/simulator.d.ts.map +1 -1
- package/dest/client/simulator.js +3 -42
- package/dest/client/view_data_oracle.d.ts +0 -7
- package/dest/client/view_data_oracle.d.ts.map +1 -1
- package/dest/client/view_data_oracle.js +1 -10
- package/dest/common/errors.d.ts +5 -0
- package/dest/common/errors.d.ts.map +1 -1
- package/dest/common/errors.js +6 -1
- package/dest/index.d.ts +1 -0
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -1
- package/dest/public/abstract_phase_manager.d.ts +8 -4
- package/dest/public/abstract_phase_manager.d.ts.map +1 -1
- package/dest/public/abstract_phase_manager.js +38 -14
- package/dest/public/app_logic_phase_manager.d.ts +1 -0
- package/dest/public/app_logic_phase_manager.d.ts.map +1 -1
- package/dest/public/app_logic_phase_manager.js +3 -3
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +1 -4
- package/dest/public/hints_builder.d.ts +3 -3
- package/dest/public/hints_builder.d.ts.map +1 -1
- package/dest/public/hints_builder.js +3 -3
- package/dest/public/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor.js +5 -3
- package/dest/public/setup_phase_manager.d.ts +1 -0
- package/dest/public/setup_phase_manager.d.ts.map +1 -1
- package/dest/public/setup_phase_manager.js +3 -2
- package/dest/public/tail_phase_manager.d.ts +1 -0
- package/dest/public/tail_phase_manager.d.ts.map +1 -1
- package/dest/public/tail_phase_manager.js +2 -1
- package/dest/public/teardown_phase_manager.d.ts +1 -0
- package/dest/public/teardown_phase_manager.d.ts.map +1 -1
- package/dest/public/teardown_phase_manager.js +3 -2
- package/dest/public/transitional_adaptors.d.ts.map +1 -1
- package/dest/public/transitional_adaptors.js +1 -1
- package/dest/rollup/index.d.ts +2 -0
- package/dest/rollup/index.d.ts.map +1 -0
- package/dest/rollup/index.js +2 -0
- package/dest/rollup/rollup.d.ts +77 -0
- package/dest/rollup/rollup.d.ts.map +1 -0
- package/dest/rollup/rollup.js +78 -0
- package/dest/stats/index.d.ts +2 -0
- package/dest/stats/index.d.ts.map +1 -0
- package/dest/stats/index.js +2 -0
- package/dest/stats/stats.d.ts +4 -0
- package/dest/stats/stats.d.ts.map +1 -0
- package/dest/stats/stats.js +11 -0
- package/package.json +8 -8
- package/src/acvm/oracle/oracle.ts +23 -27
- package/src/acvm/oracle/typed_oracle.ts +12 -9
- package/src/avm/avm_execution_environment.ts +34 -42
- package/src/avm/avm_gas.ts +2 -0
- package/src/avm/avm_machine_state.ts +14 -25
- package/src/avm/avm_message_call_result.ts +3 -14
- package/src/avm/avm_simulator.ts +22 -12
- package/src/avm/errors.ts +94 -4
- package/src/avm/journal/journal.ts +3 -2
- package/src/avm/opcodes/conversion.ts +59 -0
- package/src/avm/opcodes/environment_getters.ts +13 -66
- package/src/avm/opcodes/external_calls.ts +11 -0
- package/src/avm/serialization/bytecode_serialization.ts +3 -0
- package/src/avm/serialization/instruction_serialization.ts +2 -0
- package/src/client/client_execution_context.ts +87 -15
- package/src/client/db_oracle.ts +1 -9
- package/src/client/execution_result.ts +21 -2
- package/src/client/private_execution.ts +2 -0
- package/src/client/simulator.ts +2 -80
- package/src/client/view_data_oracle.ts +0 -10
- package/src/common/errors.ts +5 -0
- package/src/index.ts +1 -0
- package/src/public/abstract_phase_manager.ts +46 -18
- package/src/public/app_logic_phase_manager.ts +2 -1
- package/src/public/executor.ts +0 -4
- package/src/public/hints_builder.ts +5 -5
- package/src/public/public_processor.ts +8 -2
- package/src/public/setup_phase_manager.ts +16 -8
- package/src/public/tail_phase_manager.ts +6 -1
- package/src/public/teardown_phase_manager.ts +16 -8
- package/src/public/transitional_adaptors.ts +1 -0
- package/src/rollup/index.ts +1 -0
- package/src/rollup/rollup.ts +160 -0
- package/src/stats/index.ts +1 -0
- package/src/stats/stats.ts +20 -0
|
@@ -29,6 +29,7 @@ export class TailPhaseManager extends AbstractPhaseManager {
|
|
|
29
29
|
publicKernelProof: makeEmptyProof(),
|
|
30
30
|
revertReason: undefined,
|
|
31
31
|
returnValues: undefined,
|
|
32
|
+
gasUsed: undefined,
|
|
32
33
|
};
|
|
33
34
|
}
|
|
34
35
|
async runTailKernelCircuit(previousOutput, previousProof) {
|
|
@@ -65,4 +66,4 @@ export class TailPhaseManager extends AbstractPhaseManager {
|
|
|
65
66
|
return sortByCounter(unencryptedLogsHashes.map(n => ({ ...n, counter: n.counter.toNumber(), isEmpty: () => n.isEmpty() }))).map(h => new SideEffect(h.value, new Fr(h.counter)));
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpbF9waGFzZV9tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy90YWlsX3BoYXNlX21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QixnQkFBZ0IsRUFBVyxNQUFNLHNCQUFzQixDQUFDO0FBQzNGLE9BQU8sRUFDTCxFQUFFLEVBSUYsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6QixzQ0FBc0MsRUFLdEMsb0NBQW9DLEVBQ3BDLFVBQVUsRUFDVixjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLGFBQWEsR0FDZCxNQUFNLG9CQUFvQixDQUFDO0FBSzVCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSXRGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxvQkFBb0I7SUFDeEQsWUFDRSxFQUF3QixFQUN4QixjQUE4QixFQUM5QixZQUEwQyxFQUMxQyxlQUFnQyxFQUNoQyxnQkFBd0IsRUFDZCxpQkFBOEMsRUFDOUMsYUFBNEIsRUFDdEMsUUFBMkIsaUJBQWlCLENBQUMsSUFBSTtRQUVqRCxLQUFLLENBQUMsRUFBRSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBSnhFLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNkI7UUFDOUMsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFJeEMsQ0FBQztJQUVRLEtBQUssQ0FBQyxNQUFNLENBQ25CLEVBQU0sRUFDTiwwQkFBMkQsRUFDM0QseUJBQWdDO1FBRWhDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FDakUsMEJBQTBCLEVBQzFC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
|
|
@@ -19,6 +19,7 @@ export declare class TeardownPhaseManager extends AbstractPhaseManager {
|
|
|
19
19
|
publicKernelProof: Proof;
|
|
20
20
|
revertReason: import("@aztec/circuit-types").SimulationError | undefined;
|
|
21
21
|
returnValues: undefined;
|
|
22
|
+
gasUsed: Gas;
|
|
22
23
|
}>;
|
|
23
24
|
protected getTransactionFee(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs): Fr;
|
|
24
25
|
protected getAvailableGas(tx: Tx, _previousPublicKernelOutput: PublicKernelCircuitPublicInputs): Gas;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teardown_phase_manager.d.ts","sourceRoot":"","sources":["../../src/public/teardown_phase_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EACL,KAAK,EAAE,EACP,KAAK,GAAG,EACR,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,KAAK,EACV,KAAK,+BAA+B,EACrC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAI/D,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,oBAAoB;IAO1D,SAAS,CAAC,iBAAiB,EAAE,2BAA2B;IACxD,SAAS,CAAC,aAAa,EAAE,aAAa;gBANtC,EAAE,EAAE,oBAAoB,EACxB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,4BAA4B,EAC1C,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACd,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,aAAa,EACtC,KAAK,GAAE,iBAA8C;IAKxC,MAAM,CACnB,EAAE,EAAE,EAAE,EACN,0BAA0B,EAAE,+BAA+B,EAC3D,yBAAyB,EAAE,KAAK
|
|
1
|
+
{"version":3,"file":"teardown_phase_manager.d.ts","sourceRoot":"","sources":["../../src/public/teardown_phase_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EACL,KAAK,EAAE,EACP,KAAK,GAAG,EACR,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,KAAK,EACV,KAAK,+BAA+B,EACrC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAI/D,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,oBAAoB;IAO1D,SAAS,CAAC,iBAAiB,EAAE,2BAA2B;IACxD,SAAS,CAAC,aAAa,EAAE,aAAa;gBANtC,EAAE,EAAE,oBAAoB,EACxB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,4BAA4B,EAC1C,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACd,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,aAAa,EACtC,KAAK,GAAE,iBAA8C;IAKxC,MAAM,CACnB,EAAE,EAAE,EAAE,EACN,0BAA0B,EAAE,+BAA+B,EAC3D,yBAAyB,EAAE,KAAK;;;;;;;;;cAwCf,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,+BAA+B,GAAG,EAAE;cAU1F,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,2BAA2B,EAAE,+BAA+B,GAAG,GAAG;CAG9G"}
|
|
@@ -12,7 +12,7 @@ export class TeardownPhaseManager extends AbstractPhaseManager {
|
|
|
12
12
|
}
|
|
13
13
|
async handle(tx, previousPublicKernelOutput, previousPublicKernelProof) {
|
|
14
14
|
this.log.verbose(`Processing tx ${tx.getTxHash()}`);
|
|
15
|
-
const [kernelInputs, publicKernelOutput, publicKernelProof, newUnencryptedFunctionLogs, revertReason] = await this.processEnqueuedPublicCalls(tx, previousPublicKernelOutput, previousPublicKernelProof).catch(
|
|
15
|
+
const [kernelInputs, publicKernelOutput, publicKernelProof, newUnencryptedFunctionLogs, revertReason, _returnValues, gasUsed,] = await this.processEnqueuedPublicCalls(tx, previousPublicKernelOutput, previousPublicKernelProof).catch(
|
|
16
16
|
// the abstract phase manager throws if simulation gives error in a non-revertible phase
|
|
17
17
|
async (err) => {
|
|
18
18
|
await this.publicStateDB.rollbackToCommit();
|
|
@@ -35,6 +35,7 @@ export class TeardownPhaseManager extends AbstractPhaseManager {
|
|
|
35
35
|
publicKernelProof,
|
|
36
36
|
revertReason,
|
|
37
37
|
returnValues: undefined,
|
|
38
|
+
gasUsed,
|
|
38
39
|
};
|
|
39
40
|
}
|
|
40
41
|
getTransactionFee(tx, previousPublicKernelOutput) {
|
|
@@ -50,4 +51,4 @@ export class TeardownPhaseManager extends AbstractPhaseManager {
|
|
|
50
51
|
return tx.data.constants.txContext.gasSettings.getTeardownLimits();
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhcmRvd25fcGhhc2VfbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvdGVhcmRvd25fcGhhc2VfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLGdCQUFnQixFQUFXLE1BQU0sc0JBQXNCLENBQUM7QUFZM0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUl0Rjs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFDNUQsWUFDRSxFQUF3QixFQUN4QixjQUE4QixFQUM5QixZQUEwQyxFQUMxQyxlQUFnQyxFQUNoQyxnQkFBd0IsRUFDZCxpQkFBOEMsRUFDOUMsYUFBNEIsRUFDdEMsUUFBMkIsaUJBQWlCLENBQUMsUUFBUTtRQUVyRCxLQUFLLENBQUMsRUFBRSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBSnhFLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNkI7UUFDOUMsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFJeEMsQ0FBQztJQUVRLEtBQUssQ0FBQyxNQUFNLENBQ25CLEVBQU0sRUFDTiwwQkFBMkQsRUFDM0QseUJBQWdDO1FBRWhDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sQ0FDSixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQiwwQkFBMEIsRUFDMUIsWUFBWSxFQUNaLGFBQWEsRUFDYixPQUFPLEVBQ1IsR0FBRyxNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLEVBQUUsMEJBQTBCLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxLQUFLO1FBQ3hHLHdGQUF3RjtRQUN4RixLQUFLLEVBQUMsR0FBRyxFQUFDLEVBQUU7WUFDVixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM1QyxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FDRixDQUFDO1FBQ0YsRUFBRSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUMvRCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFdEMsNkNBQTZDO1FBQzdDLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMsTUFBTSxPQUFPLEdBQXdCO2dCQUNuQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtnQkFDL0IsTUFBTSxFQUFFLEtBQUs7YUFDZCxDQUFDO1lBQ0YsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPO1lBQ0wsY0FBYztZQUNkLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsaUJBQWlCO1lBQ2pCLFlBQVk7WUFDWixZQUFZLEVBQUUsU0FBUztZQUN2QixPQUFPO1NBQ1IsQ0FBQztJQUNKLENBQUM7SUFFa0IsaUJBQWlCLENBQUMsRUFBTSxFQUFFLDBCQUEyRDtRQUN0RyxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1FBQzVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDO1FBQzdDLGdGQUFnRjtRQUNoRixNQUFNLE9BQU8sR0FBRywwQkFBMEIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwSCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuRyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFa0IsZUFBZSxDQUFDLEVBQU0sRUFBRSwyQkFBNEQ7UUFDckcsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDckUsQ0FBQztDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transitional_adaptors.d.ts","sourceRoot":"","sources":["../../src/public/transitional_adaptors.ts"],"names":[],"mappings":";AAEA,OAAO,EAGL,KAAK,GAAG,EACR,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,MAAM,EACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAGhF,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAElF;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,EAAE,GACjB,uBAAuB,CAiBzB;AAED,wBAAgB,qBAAqB,CACnC,sBAAsB,EAAE,MAAM,EAC9B,cAAc,EAAE,uBAAuB,EACvC,QAAQ,EAAE,EAAE,EAAE,GACb,eAAe,CAiBjB;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,sBAAsB,EACjC,sBAAsB,EAAE,MAAM,EAC9B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,GAAG,EACb,aAAa,EAAE,UAAU,GACxB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"transitional_adaptors.d.ts","sourceRoot":"","sources":["../../src/public/transitional_adaptors.ts"],"names":[],"mappings":";AAEA,OAAO,EAGL,KAAK,GAAG,EACR,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,MAAM,EACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAGhF,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAElF;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,EAAE,GACjB,uBAAuB,CAiBzB;AAED,wBAAgB,qBAAqB,CACnC,sBAAsB,EAAE,MAAM,EAC9B,cAAc,EAAE,uBAAuB,EACvC,QAAQ,EAAE,EAAE,EAAE,GACb,eAAe,CAiBjB;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,sBAAsB,EACjC,sBAAsB,EAAE,MAAM,EAC9B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,GAAG,EACb,aAAa,EAAE,UAAU,GACxB,qBAAqB,CAoBvB;AASD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGvD"}
|
|
@@ -65,4 +65,4 @@ export function isAvmBytecode(bytecode) {
|
|
|
65
65
|
const magicSize = AVM_MAGIC_SUFFIX.length;
|
|
66
66
|
return bytecode.subarray(-magicSize).equals(AVM_MAGIC_SUFFIX);
|
|
67
67
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNpdGlvbmFsX2FkYXB0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy90cmFuc2l0aW9uYWxfYWRhcHRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUdBQWlHO0FBQ2pHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxHQUtiLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUc1RDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsNkJBQTZCLENBQzNDLE9BQXdCLEVBQ3hCLE1BQWMsRUFDZCxlQUFnQyxFQUNoQyxXQUF3QixFQUN4QixjQUFrQjtJQUVsQixPQUFPLElBQUksdUJBQXVCLENBQ2hDLE9BQU8sQ0FBQyxlQUFlLEVBQ3ZCLE9BQU8sQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQzFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUM3QixlQUFlLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFDbkMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxXQUFXO0lBQ25DLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFDaEMsTUFBTSxFQUNOLGVBQWUsRUFDZixPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksRUFDaEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQ2xDLE9BQU8sQ0FBQyxJQUFJLEVBQ1osV0FBVyxFQUNYLGNBQWMsRUFDZCxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FDOUIsQ0FBQztBQUNK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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rollup/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { type BaseOrMergeRollupPublicInputs, type BaseParityInputs, type BaseRollupInputs, type MergeRollupInputs, type ParityPublicInputs, type RootParityInputs, type RootRollupInputs, type RootRollupPublicInputs } from '@aztec/circuits.js';
|
|
2
|
+
import { type SimulationProvider } from '@aztec/simulator';
|
|
3
|
+
/**
|
|
4
|
+
* Circuit simulator for the rollup circuits.
|
|
5
|
+
*/
|
|
6
|
+
export interface RollupSimulator {
|
|
7
|
+
/**
|
|
8
|
+
* Simulates the base parity circuit from its inputs.
|
|
9
|
+
* @param inputs - Inputs to the circuit.
|
|
10
|
+
* @returns The public inputs of the parity circuit.
|
|
11
|
+
*/
|
|
12
|
+
baseParityCircuit(inputs: BaseParityInputs): Promise<ParityPublicInputs>;
|
|
13
|
+
/**
|
|
14
|
+
* Simulates the root parity circuit from its inputs.
|
|
15
|
+
* @param inputs - Inputs to the circuit.
|
|
16
|
+
* @returns The public inputs of the parity circuit.
|
|
17
|
+
*/
|
|
18
|
+
rootParityCircuit(inputs: RootParityInputs): Promise<ParityPublicInputs>;
|
|
19
|
+
/**
|
|
20
|
+
* Simulates the base rollup circuit from its inputs.
|
|
21
|
+
* @param input - Inputs to the circuit.
|
|
22
|
+
* @returns The public inputs as outputs of the simulation.
|
|
23
|
+
*/
|
|
24
|
+
baseRollupCircuit(input: BaseRollupInputs): Promise<BaseOrMergeRollupPublicInputs>;
|
|
25
|
+
/**
|
|
26
|
+
* Simulates the merge rollup circuit from its inputs.
|
|
27
|
+
* @param input - Inputs to the circuit.
|
|
28
|
+
* @returns The public inputs as outputs of the simulation.
|
|
29
|
+
*/
|
|
30
|
+
mergeRollupCircuit(input: MergeRollupInputs): Promise<BaseOrMergeRollupPublicInputs>;
|
|
31
|
+
/**
|
|
32
|
+
* Simulates the root rollup circuit from its inputs.
|
|
33
|
+
* @param input - Inputs to the circuit.
|
|
34
|
+
* @returns The public inputs as outputs of the simulation.
|
|
35
|
+
*/
|
|
36
|
+
rootRollupCircuit(input: RootRollupInputs): Promise<RootRollupPublicInputs>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Implements the rollup circuit simulator.
|
|
40
|
+
*/
|
|
41
|
+
export declare class RealRollupCircuitSimulator implements RollupSimulator {
|
|
42
|
+
private simulationProvider;
|
|
43
|
+
private log;
|
|
44
|
+
private wasmSimulator;
|
|
45
|
+
constructor(simulationProvider: SimulationProvider);
|
|
46
|
+
/**
|
|
47
|
+
* Simulates the base parity circuit from its inputs.
|
|
48
|
+
* @param inputs - Inputs to the circuit.
|
|
49
|
+
* @returns The public inputs of the parity circuit.
|
|
50
|
+
*/
|
|
51
|
+
baseParityCircuit(inputs: BaseParityInputs): Promise<ParityPublicInputs>;
|
|
52
|
+
/**
|
|
53
|
+
* Simulates the root parity circuit from its inputs.
|
|
54
|
+
* @param inputs - Inputs to the circuit.
|
|
55
|
+
* @returns The public inputs of the parity circuit.
|
|
56
|
+
*/
|
|
57
|
+
rootParityCircuit(inputs: RootParityInputs): Promise<ParityPublicInputs>;
|
|
58
|
+
/**
|
|
59
|
+
* Simulates the base rollup circuit from its inputs.
|
|
60
|
+
* @param input - Inputs to the circuit.
|
|
61
|
+
* @returns The public inputs as outputs of the simulation.
|
|
62
|
+
*/
|
|
63
|
+
baseRollupCircuit(input: BaseRollupInputs): Promise<BaseOrMergeRollupPublicInputs>;
|
|
64
|
+
/**
|
|
65
|
+
* Simulates the merge rollup circuit from its inputs.
|
|
66
|
+
* @param input - Inputs to the circuit.
|
|
67
|
+
* @returns The public inputs as outputs of the simulation.
|
|
68
|
+
*/
|
|
69
|
+
mergeRollupCircuit(input: MergeRollupInputs): Promise<BaseOrMergeRollupPublicInputs>;
|
|
70
|
+
/**
|
|
71
|
+
* Simulates the root rollup circuit from its inputs.
|
|
72
|
+
* @param input - Inputs to the circuit.
|
|
73
|
+
* @returns The public inputs as outputs of the simulation.
|
|
74
|
+
*/
|
|
75
|
+
rootRollupCircuit(input: RootRollupInputs): Promise<RootRollupPublicInputs>;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=rollup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/rollup/rollup.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAoB5B,OAAO,EAAE,KAAK,kBAAkB,EAAiB,MAAM,kBAAkB,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzE;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzE;;;;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,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,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAUrF;;;;OAIG;IACU,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAUrF;;;;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;CAgBzF"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
2
|
+
import { elapsed } from '@aztec/foundation/timer';
|
|
3
|
+
import { BaseParityArtifact, MergeRollupArtifact, RootParityArtifact, RootRollupArtifact, SimulatedBaseRollupArtifact, convertBaseParityInputsToWitnessMap, convertBaseParityOutputsFromWitnessMap, convertMergeRollupInputsToWitnessMap, convertMergeRollupOutputsFromWitnessMap, convertRootParityInputsToWitnessMap, convertRootParityOutputsFromWitnessMap, convertRootRollupInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap, convertSimulatedBaseRollupInputsToWitnessMap, convertSimulatedBaseRollupOutputsFromWitnessMap, } from '@aztec/noir-protocol-circuits-types';
|
|
4
|
+
import { WASMSimulator } from '@aztec/simulator';
|
|
5
|
+
/**
|
|
6
|
+
* Implements the rollup circuit simulator.
|
|
7
|
+
*/
|
|
8
|
+
export class RealRollupCircuitSimulator {
|
|
9
|
+
constructor(simulationProvider) {
|
|
10
|
+
this.simulationProvider = simulationProvider;
|
|
11
|
+
this.log = createDebugLogger('aztec:rollup-simulator');
|
|
12
|
+
// Some circuits are so small it is faster to use WASM
|
|
13
|
+
this.wasmSimulator = new WASMSimulator();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Simulates the base parity circuit from its inputs.
|
|
17
|
+
* @param inputs - Inputs to the circuit.
|
|
18
|
+
* @returns The public inputs of the parity circuit.
|
|
19
|
+
*/
|
|
20
|
+
async baseParityCircuit(inputs) {
|
|
21
|
+
const witnessMap = convertBaseParityInputsToWitnessMap(inputs);
|
|
22
|
+
const witness = await this.simulationProvider.simulateCircuit(witnessMap, BaseParityArtifact);
|
|
23
|
+
const result = convertBaseParityOutputsFromWitnessMap(witness);
|
|
24
|
+
return Promise.resolve(result);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Simulates the root parity circuit from its inputs.
|
|
28
|
+
* @param inputs - Inputs to the circuit.
|
|
29
|
+
* @returns The public inputs of the parity circuit.
|
|
30
|
+
*/
|
|
31
|
+
async rootParityCircuit(inputs) {
|
|
32
|
+
const witnessMap = convertRootParityInputsToWitnessMap(inputs);
|
|
33
|
+
const witness = await this.simulationProvider.simulateCircuit(witnessMap, RootParityArtifact);
|
|
34
|
+
const result = convertRootParityOutputsFromWitnessMap(witness);
|
|
35
|
+
return Promise.resolve(result);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Simulates the base rollup circuit from its inputs.
|
|
39
|
+
* @param input - Inputs to the circuit.
|
|
40
|
+
* @returns The public inputs as outputs of the simulation.
|
|
41
|
+
*/
|
|
42
|
+
async baseRollupCircuit(input) {
|
|
43
|
+
const witnessMap = convertSimulatedBaseRollupInputsToWitnessMap(input);
|
|
44
|
+
const witness = await this.simulationProvider.simulateCircuit(witnessMap, SimulatedBaseRollupArtifact);
|
|
45
|
+
const result = convertSimulatedBaseRollupOutputsFromWitnessMap(witness);
|
|
46
|
+
return Promise.resolve(result);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Simulates the merge rollup circuit from its inputs.
|
|
50
|
+
* @param input - Inputs to the circuit.
|
|
51
|
+
* @returns The public inputs as outputs of the simulation.
|
|
52
|
+
*/
|
|
53
|
+
async mergeRollupCircuit(input) {
|
|
54
|
+
const witnessMap = convertMergeRollupInputsToWitnessMap(input);
|
|
55
|
+
const witness = await this.wasmSimulator.simulateCircuit(witnessMap, MergeRollupArtifact);
|
|
56
|
+
const result = convertMergeRollupOutputsFromWitnessMap(witness);
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Simulates the root rollup circuit from its inputs.
|
|
61
|
+
* @param input - Inputs to the circuit.
|
|
62
|
+
* @returns The public inputs as outputs of the simulation.
|
|
63
|
+
*/
|
|
64
|
+
async rootRollupCircuit(input) {
|
|
65
|
+
const witnessMap = convertRootRollupInputsToWitnessMap(input);
|
|
66
|
+
const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(witnessMap, RootRollupArtifact));
|
|
67
|
+
const result = convertRootRollupOutputsFromWitnessMap(witness);
|
|
68
|
+
this.log.debug(`Simulated root rollup circuit`, {
|
|
69
|
+
eventName: 'circuit-simulation',
|
|
70
|
+
circuitName: 'root-rollup',
|
|
71
|
+
duration,
|
|
72
|
+
inputSize: input.toBuffer().length,
|
|
73
|
+
outputSize: result.toBuffer().length,
|
|
74
|
+
});
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbHVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9yb2xsdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsMkJBQTJCLEVBQzNCLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsb0NBQW9DLEVBQ3BDLHVDQUF1QyxFQUN2QyxtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsNENBQTRDLEVBQzVDLCtDQUErQyxHQUNoRCxNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBMkIsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFzQzFFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDBCQUEwQjtJQU1yQyxZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUxsRCxRQUFHLEdBQUcsaUJBQWlCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUUxRCxzREFBc0Q7UUFDOUMsa0JBQWEsR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUVFLENBQUM7SUFFOUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUF3QjtRQUNyRCxNQUFNLFVBQVUsR0FBRyxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFFOUYsTUFBTSxNQUFNLEdBQUcsc0NBQXNDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFL0QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQXdCO1FBQ3JELE1BQU0sVUFBVSxHQUFHLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9ELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUU5RixNQUFNLE1BQU0sR0FBRyxzQ0FBc0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBdUI7UUFDcEQsTUFBTSxVQUFVLEdBQUcsNENBQTRDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1FBRXZHLE1BQU0sTUFBTSxHQUFHLCtDQUErQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUF3QjtRQUN0RCxNQUFNLFVBQVUsR0FBRyxvQ0FBb0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBRTFGLE1BQU0sTUFBTSxHQUFHLHVDQUF1QyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWhFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQXVCO1FBQ3BELE1BQU0sVUFBVSxHQUFHLG1DQUFtQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlELE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUVwSCxNQUFNLE1BQU0sR0FBRyxzQ0FBc0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvRCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsRUFBRTtZQUM5QyxTQUFTLEVBQUUsb0JBQW9CO1lBQy9CLFdBQVcsRUFBRSxhQUFhO1lBQzFCLFFBQVE7WUFDUixTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07WUFDbEMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNO1NBQ0osQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stats/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type CircuitName } from '@aztec/circuit-types/stats';
|
|
2
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
3
|
+
export declare function emitCircuitSimulationStats(circuitName: CircuitName, duration: number, inputSize: number, outputSize: number, logger: Logger): void;
|
|
4
|
+
//# sourceMappingURL=stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/stats/stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAA+B,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,QAWf"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function emitCircuitSimulationStats(circuitName, duration, inputSize, outputSize, logger) {
|
|
2
|
+
const stats = {
|
|
3
|
+
eventName: 'circuit-simulation',
|
|
4
|
+
circuitName,
|
|
5
|
+
inputSize,
|
|
6
|
+
outputSize,
|
|
7
|
+
duration,
|
|
8
|
+
};
|
|
9
|
+
logger.debug('Circuit simulation stats', stats);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhdHMvc3RhdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLDBCQUEwQixDQUN4QyxXQUF3QixFQUN4QixRQUFnQixFQUNoQixTQUFpQixFQUNqQixVQUFrQixFQUNsQixNQUFjO0lBRWQsTUFBTSxLQUFLLEdBQTJCO1FBQ3BDLFNBQVMsRUFBRSxvQkFBb0I7UUFDL0IsV0FBVztRQUNYLFNBQVM7UUFDVCxVQUFVO1FBQ1YsUUFBUTtLQUNULENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2xELENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/simulator",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.39.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"typedocOptions": {
|
|
@@ -45,13 +45,13 @@
|
|
|
45
45
|
]
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@aztec/circuit-types": "0.
|
|
49
|
-
"@aztec/circuits.js": "0.
|
|
50
|
-
"@aztec/foundation": "0.
|
|
51
|
-
"@aztec/noir-protocol-circuits-types": "0.
|
|
52
|
-
"@aztec/protocol-contracts": "0.
|
|
53
|
-
"@aztec/types": "0.
|
|
54
|
-
"@aztec/world-state": "0.
|
|
48
|
+
"@aztec/circuit-types": "0.39.0",
|
|
49
|
+
"@aztec/circuits.js": "0.39.0",
|
|
50
|
+
"@aztec/foundation": "0.39.0",
|
|
51
|
+
"@aztec/noir-protocol-circuits-types": "0.39.0",
|
|
52
|
+
"@aztec/protocol-contracts": "0.39.0",
|
|
53
|
+
"@aztec/types": "0.39.0",
|
|
54
|
+
"@aztec/world-state": "0.39.0",
|
|
55
55
|
"@noir-lang/acvm_js": "portal:../../noir/packages/acvm_js",
|
|
56
56
|
"@noir-lang/types": "portal:../../noir/packages/types",
|
|
57
57
|
"levelup": "^5.1.1",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MerkleTreeId, UnencryptedL2Log } from '@aztec/circuit-types';
|
|
2
|
-
import {
|
|
2
|
+
import { acvmFieldMessageToString, oracleDebugCallToFormattedStr } from '@aztec/circuits.js';
|
|
3
3
|
import { EventSelector, FunctionSelector } from '@aztec/foundation/abi';
|
|
4
4
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
5
5
|
import { Fr, Point } from '@aztec/foundation/fields';
|
|
@@ -53,14 +53,6 @@ export class Oracle {
|
|
|
53
53
|
];
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
// TODO: #5834 Nuke this
|
|
57
|
-
async getPublicKeyAndPartialAddress([address]: ACVMField[]) {
|
|
58
|
-
const { publicKey, partialAddress } = await this.typedOracle.getCompleteAddress(
|
|
59
|
-
AztecAddress.fromField(fromACVMField(address)),
|
|
60
|
-
);
|
|
61
|
-
return [publicKey.x, publicKey.y, partialAddress].map(toACVMField);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
56
|
async getContractInstance([address]: ACVMField[]) {
|
|
65
57
|
const instance = await this.typedOracle.getContractInstance(AztecAddress.fromField(fromACVMField(address)));
|
|
66
58
|
|
|
@@ -173,25 +165,10 @@ export class Oracle {
|
|
|
173
165
|
}
|
|
174
166
|
|
|
175
167
|
async getPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<ACVMField[]> {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
// TODO #5834: This should be reworked to return the public keys as well
|
|
180
|
-
try {
|
|
181
|
-
({ partialAddress } = await this.typedOracle.getCompleteAddress(AztecAddress.fromField(fromACVMField(address))));
|
|
182
|
-
} catch (err) {
|
|
183
|
-
partialAddress = Fr.ZERO;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
try {
|
|
187
|
-
publicKeys = await this.typedOracle.getPublicKeysForAddress(AztecAddress.fromField(fromACVMField(address)));
|
|
188
|
-
} catch (err) {
|
|
189
|
-
publicKeys = Array(4).fill(Point.ZERO);
|
|
190
|
-
}
|
|
168
|
+
const parsedAddress = AztecAddress.fromField(fromACVMField(address));
|
|
169
|
+
const { publicKeys, partialAddress } = await this.typedOracle.getCompleteAddress(parsedAddress);
|
|
191
170
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
return [...acvmPublicKeys, partialAddress].map(toACVMField);
|
|
171
|
+
return [...publicKeys.toFields(), partialAddress].map(toACVMField);
|
|
195
172
|
}
|
|
196
173
|
|
|
197
174
|
async getNotes(
|
|
@@ -438,6 +415,25 @@ export class Oracle {
|
|
|
438
415
|
return toAcvmEnqueuePublicFunctionResult(enqueuedRequest);
|
|
439
416
|
}
|
|
440
417
|
|
|
418
|
+
async setPublicTeardownFunctionCall(
|
|
419
|
+
[contractAddress]: ACVMField[],
|
|
420
|
+
[functionSelector]: ACVMField[],
|
|
421
|
+
[argsHash]: ACVMField[],
|
|
422
|
+
[sideEffectCounter]: ACVMField[],
|
|
423
|
+
[isStaticCall]: ACVMField[],
|
|
424
|
+
[isDelegateCall]: ACVMField[],
|
|
425
|
+
) {
|
|
426
|
+
const teardownRequest = await this.typedOracle.setPublicTeardownFunctionCall(
|
|
427
|
+
AztecAddress.fromString(contractAddress),
|
|
428
|
+
FunctionSelector.fromField(fromACVMField(functionSelector)),
|
|
429
|
+
fromACVMField(argsHash),
|
|
430
|
+
frToNumber(fromACVMField(sideEffectCounter)),
|
|
431
|
+
frToBoolean(fromACVMField(isStaticCall)),
|
|
432
|
+
frToBoolean(fromACVMField(isDelegateCall)),
|
|
433
|
+
);
|
|
434
|
+
return toAcvmEnqueuePublicFunctionResult(teardownRequest);
|
|
435
|
+
}
|
|
436
|
+
|
|
441
437
|
aes128Encrypt(input: ACVMField[], initializationVector: ACVMField[], key: ACVMField[]): ACVMField[] {
|
|
442
438
|
// Convert each field to a number and then to a buffer (1 byte is stored in 1 field)
|
|
443
439
|
const processedInput = Buffer.from(input.map(fromACVMField).map(f => f.toNumber()));
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from '@aztec/circuits.js';
|
|
18
18
|
import { type FunctionSelector } from '@aztec/foundation/abi';
|
|
19
19
|
import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
20
|
-
import { Fr
|
|
20
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
21
21
|
import { type ContractInstance } from '@aztec/types/contracts';
|
|
22
22
|
|
|
23
23
|
/** Nullifier keys which both correspond to the same master nullifier secret key. */
|
|
@@ -93,10 +93,6 @@ export abstract class TypedOracle {
|
|
|
93
93
|
throw new OracleMethodNotAvailableError('getNullifierKeys');
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
getPublicKeyAndPartialAddress(_address: AztecAddress): Promise<Fr[] | undefined> {
|
|
97
|
-
throw new OracleMethodNotAvailableError('getPublicKeyAndPartialAddress');
|
|
98
|
-
}
|
|
99
|
-
|
|
100
96
|
getContractInstance(_address: AztecAddress): Promise<ContractInstance> {
|
|
101
97
|
throw new OracleMethodNotAvailableError('getContractInstance');
|
|
102
98
|
}
|
|
@@ -140,10 +136,6 @@ export abstract class TypedOracle {
|
|
|
140
136
|
throw new OracleMethodNotAvailableError('popCapsule');
|
|
141
137
|
}
|
|
142
138
|
|
|
143
|
-
getPublicKeysForAddress(_address: AztecAddress): Promise<Point[]> {
|
|
144
|
-
throw new OracleMethodNotAvailableError('getPublicKeysForAddress');
|
|
145
|
-
}
|
|
146
|
-
|
|
147
139
|
getNotes(
|
|
148
140
|
_storageSlot: Fr,
|
|
149
141
|
_numSelects: number,
|
|
@@ -243,6 +235,17 @@ export abstract class TypedOracle {
|
|
|
243
235
|
throw new OracleMethodNotAvailableError('enqueuePublicFunctionCall');
|
|
244
236
|
}
|
|
245
237
|
|
|
238
|
+
setPublicTeardownFunctionCall(
|
|
239
|
+
_targetContractAddress: AztecAddress,
|
|
240
|
+
_functionSelector: FunctionSelector,
|
|
241
|
+
_argsHash: Fr,
|
|
242
|
+
_sideEffectCounter: number,
|
|
243
|
+
_isStaticCall: boolean,
|
|
244
|
+
_isDelegateCall: boolean,
|
|
245
|
+
): Promise<PublicCallRequest> {
|
|
246
|
+
throw new OracleMethodNotAvailableError('setPublicTeardownFunctionCall');
|
|
247
|
+
}
|
|
248
|
+
|
|
246
249
|
aes128Encrypt(_input: Buffer, _initializationVector: Buffer, _key: Buffer): Buffer {
|
|
247
250
|
throw new OracleMethodNotAvailableError('encrypt');
|
|
248
251
|
}
|
|
@@ -45,72 +45,64 @@ export class AvmExecutionEnvironment {
|
|
|
45
45
|
this.calldata = [...inputs.toFields(), ...calldata];
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
private deriveEnvironmentForNestedCallInternal(
|
|
49
49
|
targetAddress: AztecAddress,
|
|
50
50
|
calldata: Fr[],
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
functionSelector: FunctionSelector,
|
|
52
|
+
isStaticCall: boolean,
|
|
53
|
+
isDelegateCall: boolean,
|
|
54
|
+
) {
|
|
53
55
|
return new AvmExecutionEnvironment(
|
|
54
|
-
targetAddress,
|
|
56
|
+
/*address=*/ targetAddress,
|
|
55
57
|
/*storageAddress=*/ targetAddress,
|
|
56
|
-
this.address,
|
|
58
|
+
/*sender=*/ this.address,
|
|
57
59
|
this.feePerL2Gas,
|
|
58
60
|
this.feePerDaGas,
|
|
59
61
|
this.contractCallDepth,
|
|
60
62
|
this.header,
|
|
61
63
|
this.globals,
|
|
62
|
-
|
|
63
|
-
|
|
64
|
+
isStaticCall,
|
|
65
|
+
isDelegateCall,
|
|
64
66
|
calldata,
|
|
65
67
|
this.gasSettings,
|
|
66
68
|
this.transactionFee,
|
|
67
|
-
|
|
69
|
+
functionSelector,
|
|
68
70
|
);
|
|
69
71
|
}
|
|
70
72
|
|
|
71
|
-
public
|
|
72
|
-
|
|
73
|
+
public deriveEnvironmentForNestedCall(
|
|
74
|
+
targetAddress: AztecAddress,
|
|
73
75
|
calldata: Fr[],
|
|
74
|
-
|
|
76
|
+
functionSelector: FunctionSelector = FunctionSelector.empty(),
|
|
75
77
|
): AvmExecutionEnvironment {
|
|
76
|
-
return
|
|
77
|
-
|
|
78
|
-
/*storageAddress=*/ address,
|
|
79
|
-
this.sender,
|
|
80
|
-
this.feePerL2Gas,
|
|
81
|
-
this.feePerDaGas,
|
|
82
|
-
this.contractCallDepth,
|
|
83
|
-
this.header,
|
|
84
|
-
this.globals,
|
|
85
|
-
/*isStaticCall=*/ true,
|
|
86
|
-
this.isDelegateCall,
|
|
78
|
+
return this.deriveEnvironmentForNestedCallInternal(
|
|
79
|
+
targetAddress,
|
|
87
80
|
calldata,
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
81
|
+
functionSelector,
|
|
82
|
+
/*isStaticCall=*/ false,
|
|
83
|
+
/*isDelegateCall=*/ false,
|
|
91
84
|
);
|
|
92
85
|
}
|
|
93
86
|
|
|
94
|
-
public
|
|
95
|
-
|
|
87
|
+
public deriveEnvironmentForNestedStaticCall(
|
|
88
|
+
targetAddress: AztecAddress,
|
|
96
89
|
calldata: Fr[],
|
|
97
|
-
|
|
90
|
+
functionSelector: FunctionSelector,
|
|
98
91
|
): AvmExecutionEnvironment {
|
|
99
|
-
return
|
|
100
|
-
|
|
101
|
-
this.storageAddress,
|
|
102
|
-
this.sender,
|
|
103
|
-
this.feePerL2Gas,
|
|
104
|
-
this.feePerDaGas,
|
|
105
|
-
this.contractCallDepth,
|
|
106
|
-
this.header,
|
|
107
|
-
this.globals,
|
|
108
|
-
this.isStaticCall,
|
|
109
|
-
/*isDelegateCall=*/ true,
|
|
92
|
+
return this.deriveEnvironmentForNestedCallInternal(
|
|
93
|
+
targetAddress,
|
|
110
94
|
calldata,
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
95
|
+
functionSelector,
|
|
96
|
+
/*isStaticCall=*/ true,
|
|
97
|
+
/*isDelegateCall=*/ false,
|
|
114
98
|
);
|
|
115
99
|
}
|
|
100
|
+
|
|
101
|
+
public newDelegateCall(
|
|
102
|
+
_targetAddress: AztecAddress,
|
|
103
|
+
_calldata: Fr[],
|
|
104
|
+
_functionSelector: FunctionSelector,
|
|
105
|
+
): AvmExecutionEnvironment {
|
|
106
|
+
throw new Error('Delegate calls not supported!');
|
|
107
|
+
}
|
|
116
108
|
}
|
package/src/avm/avm_gas.ts
CHANGED
|
@@ -123,6 +123,8 @@ export const GasCosts: Record<Opcode, Gas | typeof DynamicGasCost> = {
|
|
|
123
123
|
[Opcode.POSEIDON2]: TemporaryDefaultGasCost,
|
|
124
124
|
[Opcode.SHA256]: TemporaryDefaultGasCost, // temp - may be removed, but alot of contracts rely on i: TemporaryDefaultGasCost,
|
|
125
125
|
[Opcode.PEDERSEN]: TemporaryDefaultGasCost, // temp - may be removed, but alot of contracts rely on i: TemporaryDefaultGasCost,t
|
|
126
|
+
// Conversions
|
|
127
|
+
[Opcode.TORADIXLE]: TemporaryDefaultGasCost,
|
|
126
128
|
};
|
|
127
129
|
|
|
128
130
|
/** Returns the fixed base gas cost for a given opcode, or throws if set to dynamic. */
|