@aztec/simulator 0.34.0 → 0.35.1
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/acvm.d.ts +4 -1
- package/dest/acvm/acvm.d.ts.map +1 -1
- package/dest/acvm/acvm.js +5 -5
- package/dest/acvm/deserialize.d.ts +3 -5
- package/dest/acvm/deserialize.d.ts.map +1 -1
- package/dest/acvm/deserialize.js +6 -9
- package/dest/acvm/oracle/oracle.d.ts +2 -0
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +12 -4
- package/dest/acvm/oracle/typed_oracle.d.ts +2 -0
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +7 -1
- package/dest/avm/avm_execution_environment.d.ts +4 -2
- package/dest/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/avm/avm_execution_environment.js +7 -5
- package/dest/avm/avm_gas.js +2 -2
- package/dest/avm/avm_machine_state.d.ts +2 -0
- package/dest/avm/avm_machine_state.d.ts.map +1 -1
- package/dest/avm/avm_machine_state.js +24 -6
- package/dest/avm/avm_memory_types.js +2 -2
- package/dest/avm/avm_simulator.js +2 -2
- package/dest/avm/fixtures/index.d.ts +3 -0
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +11 -4
- package/dest/avm/journal/journal.d.ts +1 -0
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +12 -1
- package/dest/avm/opcodes/accrued_substate.d.ts +2 -1
- package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/avm/opcodes/accrued_substate.js +13 -5
- package/dest/avm/opcodes/context_getters.js +2 -2
- package/dest/avm/opcodes/external_calls.d.ts +2 -2
- package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/avm/opcodes/external_calls.js +7 -6
- package/dest/avm/opcodes/hashing.d.ts +8 -8
- package/dest/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/avm/opcodes/hashing.js +35 -43
- package/dest/avm/serialization/instruction_serialization.d.ts +1 -1
- package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/instruction_serialization.js +2 -2
- package/dest/client/client_execution_context.d.ts +13 -3
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +23 -8
- package/dest/client/private_execution.d.ts.map +1 -1
- package/dest/client/private_execution.js +8 -6
- package/dest/client/simulator.d.ts.map +1 -1
- package/dest/client/simulator.js +6 -5
- package/dest/client/unconstrained_execution.d.ts.map +1 -1
- package/dest/client/unconstrained_execution.js +5 -4
- package/dest/common/index.d.ts +1 -1
- package/dest/common/index.d.ts.map +1 -1
- package/dest/common/index.js +2 -2
- package/dest/common/packed_values_cache.d.ts +28 -0
- package/dest/common/packed_values_cache.d.ts.map +1 -0
- package/dest/common/packed_values_cache.js +50 -0
- package/dest/index.d.ts +1 -0
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -1
- package/dest/mocks/fixtures.d.ts +42 -0
- package/dest/mocks/fixtures.d.ts.map +1 -0
- package/dest/mocks/fixtures.js +84 -0
- package/dest/mocks/index.d.ts +2 -0
- package/dest/mocks/index.d.ts.map +1 -0
- package/dest/mocks/index.js +2 -0
- package/dest/public/abstract_phase_manager.d.ts +82 -0
- package/dest/public/abstract_phase_manager.d.ts.map +1 -0
- package/dest/public/abstract_phase_manager.js +320 -0
- package/dest/public/app_logic_phase_manager.d.ts +29 -0
- package/dest/public/app_logic_phase_manager.d.ts.map +1 -0
- package/dest/public/app_logic_phase_manager.js +50 -0
- package/dest/public/execution.d.ts +3 -0
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +1 -1
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +17 -13
- package/dest/public/hints_builder.d.ts +23 -0
- package/dest/public/hints_builder.d.ts.map +1 -0
- package/dest/public/hints_builder.js +62 -0
- package/dest/public/index.d.ts +5 -0
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +6 -1
- package/dest/public/phase_manager_factory.d.ts +18 -0
- package/dest/public/phase_manager_factory.d.ts.map +1 -0
- package/dest/public/phase_manager_factory.js +56 -0
- package/dest/public/public_execution_context.d.ts +15 -5
- package/dest/public/public_execution_context.d.ts.map +1 -1
- package/dest/public/public_execution_context.js +28 -12
- package/dest/public/public_executor.d.ts +79 -0
- package/dest/public/public_executor.d.ts.map +1 -0
- package/dest/public/public_executor.js +198 -0
- package/dest/public/public_kernel.d.ts +37 -0
- package/dest/public/public_kernel.d.ts.map +1 -0
- package/dest/public/public_kernel.js +97 -0
- package/dest/public/public_kernel_circuit_simulator.d.ts +31 -0
- package/dest/public/public_kernel_circuit_simulator.d.ts.map +1 -0
- package/dest/public/public_kernel_circuit_simulator.js +2 -0
- package/dest/public/public_processor.d.ts +53 -0
- package/dest/public/public_processor.d.ts.map +1 -0
- package/dest/public/public_processor.js +144 -0
- package/dest/public/setup_phase_manager.d.ts +30 -0
- package/dest/public/setup_phase_manager.d.ts.map +1 -0
- package/dest/public/setup_phase_manager.js +46 -0
- package/dest/public/tail_phase_manager.d.ts +30 -0
- package/dest/public/tail_phase_manager.d.ts.map +1 -0
- package/dest/public/tail_phase_manager.js +60 -0
- package/dest/public/teardown_phase_manager.d.ts +30 -0
- package/dest/public/teardown_phase_manager.d.ts.map +1 -0
- package/dest/public/teardown_phase_manager.js +46 -0
- package/dest/public/transitional_adaptors.d.ts +2 -1
- package/dest/public/transitional_adaptors.d.ts.map +1 -1
- package/dest/public/transitional_adaptors.js +11 -10
- package/dest/public/utils.d.ts +8 -0
- package/dest/public/utils.d.ts.map +1 -0
- package/dest/public/utils.js +29 -0
- package/dest/simulator/acvm_native.d.ts +19 -3
- package/dest/simulator/acvm_native.d.ts.map +1 -1
- package/dest/simulator/acvm_native.js +75 -48
- package/dest/simulator/acvm_wasm.d.ts.map +1 -1
- package/dest/simulator/acvm_wasm.js +3 -4
- package/package.json +8 -5
- package/src/acvm/acvm.ts +8 -5
- package/src/acvm/deserialize.ts +5 -9
- package/src/acvm/oracle/oracle.ts +13 -3
- package/src/acvm/oracle/typed_oracle.ts +8 -0
- package/src/avm/avm_execution_environment.ts +9 -1
- package/src/avm/avm_gas.ts +1 -1
- package/src/avm/avm_machine_state.ts +26 -5
- package/src/avm/avm_memory_types.ts +1 -1
- package/src/avm/avm_simulator.ts +1 -1
- package/src/avm/fixtures/index.ts +13 -1
- package/src/avm/journal/journal.ts +13 -0
- package/src/avm/opcodes/accrued_substate.ts +16 -4
- package/src/avm/opcodes/context_getters.ts +1 -1
- package/src/avm/opcodes/external_calls.ts +8 -5
- package/src/avm/opcodes/hashing.ts +38 -54
- package/src/avm/serialization/instruction_serialization.ts +1 -1
- package/src/client/client_execution_context.ts +25 -6
- package/src/client/private_execution.ts +7 -6
- package/src/client/simulator.ts +7 -3
- package/src/client/unconstrained_execution.ts +4 -3
- package/src/common/index.ts +1 -1
- package/src/common/packed_values_cache.ts +55 -0
- package/src/index.ts +1 -0
- package/src/mocks/fixtures.ts +169 -0
- package/src/mocks/index.ts +1 -0
- package/src/public/abstract_phase_manager.ts +571 -0
- package/src/public/app_logic_phase_manager.ts +76 -0
- package/src/public/execution.ts +4 -0
- package/src/public/executor.ts +18 -13
- package/src/public/hints_builder.ts +119 -0
- package/src/public/index.ts +5 -0
- package/src/public/phase_manager_factory.ts +126 -0
- package/src/public/public_execution_context.ts +29 -18
- package/src/public/public_executor.ts +267 -0
- package/src/public/public_kernel.ts +139 -0
- package/src/public/public_kernel_circuit_simulator.ts +36 -0
- package/src/public/public_processor.ts +212 -0
- package/src/public/setup_phase_manager.ts +66 -0
- package/src/public/tail_phase_manager.ts +120 -0
- package/src/public/teardown_phase_manager.ts +66 -0
- package/src/public/transitional_adaptors.ts +14 -5
- package/src/public/utils.ts +31 -0
- package/src/simulator/acvm_native.ts +94 -47
- package/src/simulator/acvm_wasm.ts +7 -3
- package/dest/common/packed_args_cache.d.ts +0 -28
- package/dest/common/packed_args_cache.d.ts.map +0 -1
- package/dest/common/packed_args_cache.js +0 -50
- package/src/common/packed_args_cache.ts +0 -55
|
@@ -2,7 +2,7 @@ import { PrivateCallStackItem, PrivateCircuitPublicInputs } from '@aztec/circuit
|
|
|
2
2
|
import { decodeReturnValues } from '@aztec/foundation/abi';
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
4
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
5
|
-
import {
|
|
5
|
+
import { witnessMapToFields } from '../acvm/deserialize.js';
|
|
6
6
|
import { Oracle, acvm, extractCallStack } from '../acvm/index.js';
|
|
7
7
|
import { ExecutionError } from '../common/errors.js';
|
|
8
8
|
import { AcirSimulator } from './simulator.js';
|
|
@@ -15,13 +15,14 @@ export async function executePrivateFunction(context, artifact, contractAddress,
|
|
|
15
15
|
const acir = artifact.bytecode;
|
|
16
16
|
const initialWitness = context.getInitialWitness(artifact);
|
|
17
17
|
const acvmCallback = new Oracle(context);
|
|
18
|
-
const
|
|
18
|
+
const acirExecutionResult = await acvm(await AcirSimulator.getSolver(), acir, initialWitness, acvmCallback).catch((err) => {
|
|
19
19
|
throw new ExecutionError(err.message, {
|
|
20
20
|
contractAddress,
|
|
21
21
|
functionSelector,
|
|
22
22
|
}, extractCallStack(err, artifact.debug), { cause: err });
|
|
23
23
|
});
|
|
24
|
-
const
|
|
24
|
+
const partialWitness = acirExecutionResult.partialWitness;
|
|
25
|
+
const returnWitness = witnessMapToFields(acirExecutionResult.returnWitness);
|
|
25
26
|
const publicInputs = PrivateCircuitPublicInputs.fromFields(returnWitness);
|
|
26
27
|
const encryptedLogs = context.getEncryptedLogs();
|
|
27
28
|
const unencryptedLogs = context.getUnencryptedLogs();
|
|
@@ -33,9 +34,10 @@ export async function executePrivateFunction(context, artifact, contractAddress,
|
|
|
33
34
|
const callStackItem = new PrivateCallStackItem(contractAddress, functionData, publicInputs);
|
|
34
35
|
// Mocking the return type to be an array of 4 fields
|
|
35
36
|
// TODO: @LHerskind must be updated as we are progressing with the macros to get the information
|
|
36
|
-
const
|
|
37
|
+
const rawReturnValues = await context.unpackReturns(publicInputs.returnsHash);
|
|
38
|
+
const returnTypes = [{ kind: 'array', length: rawReturnValues.length, type: { kind: 'field' } }];
|
|
37
39
|
const mockArtifact = { ...artifact, returnTypes };
|
|
38
|
-
const returnValues = decodeReturnValues(mockArtifact,
|
|
40
|
+
const returnValues = decodeReturnValues(mockArtifact, rawReturnValues);
|
|
39
41
|
const noteHashReadRequestPartialWitnesses = context.getNoteHashReadRequestPartialWitnesses(publicInputs.noteHashReadRequests);
|
|
40
42
|
const newNotes = context.getNewNotes();
|
|
41
43
|
const nestedExecutions = context.getNestedExecutions();
|
|
@@ -55,4 +57,4 @@ export async function executePrivateFunction(context, artifact, contractAddress,
|
|
|
55
57
|
unencryptedLogs,
|
|
56
58
|
};
|
|
57
59
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L3ByaXZhdGVfZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsb0JBQW9CLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RyxPQUFPLEVBQXdELGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFakgsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsc0JBQXNCLENBQzFDLE9BQStCLEVBQy9CLFFBQTJDLEVBQzNDLGVBQTZCLEVBQzdCLFlBQTBCLEVBQzFCLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxrQ0FBa0MsQ0FBQztJQUUzRCxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDL0MsR0FBRyxDQUFDLE9BQU8sQ0FBQywrQkFBK0IsZUFBZSxJQUFJLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ3BHLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDL0IsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNELE1BQU0sWUFBWSxHQUFH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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulator.d.ts","sourceRoot":"","sources":["../../src/client/simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,KAAK,IAAI,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG7G,OAAO,EAEL,KAAK,iCAAiC,EAIvC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,KAAK,0BAA0B,EAAwB,MAAM,oBAAoB,CAAC;AAK3F,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D;;GAEG;AACH,qBAAa,aAAa;IAIZ,OAAO,CAAC,EAAE;IAAY,OAAO,CAAC,IAAI;IAH9C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAsC;IAC3D,OAAO,CAAC,GAAG,CAAc;gBAEL,EAAE,EAAE,QAAQ,EAAU,IAAI,EAAE,SAAS;IAIzD;;;;;;;;;;;;OAYG;WACW,SAAS,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAO9D;;;;;;;;OAQG;IACU,GAAG,CACd,OAAO,EAAE,kBAAkB,EAC3B,kBAAkB,EAAE,iCAAiC,EACrD,eAAe,EAAE,YAAY,EAC7B,qBAAqB,EAAE,UAAU,EACjC,SAAS,eAAoB,GAC5B,OAAO,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"simulator.d.ts","sourceRoot":"","sources":["../../src/client/simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,KAAK,IAAI,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG7G,OAAO,EAEL,KAAK,iCAAiC,EAIvC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,KAAK,0BAA0B,EAAwB,MAAM,oBAAoB,CAAC;AAK3F,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D;;GAEG;AACH,qBAAa,aAAa;IAIZ,OAAO,CAAC,EAAE;IAAY,OAAO,CAAC,IAAI;IAH9C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAsC;IAC3D,OAAO,CAAC,GAAG,CAAc;gBAEL,EAAE,EAAE,QAAQ,EAAU,IAAI,EAAE,SAAS;IAIzD;;;;;;;;;;;;OAYG;WACW,SAAS,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAO9D;;;;;;;;OAQG;IACU,GAAG,CACd,OAAO,EAAE,kBAAkB,EAC3B,kBAAkB,EAAE,iCAAiC,EACrD,eAAe,EAAE,YAAY,EAC7B,qBAAqB,EAAE,UAAU,EACjC,SAAS,eAAoB,GAC5B,OAAO,CAAC,eAAe,CAAC;IA2D3B;;;;;;OAMG;IACU,gBAAgB,CAC3B,OAAO,EAAE,YAAY,EACrB,kBAAkB,EAAE,iCAAiC,EACrD,eAAe,EAAE,YAAY;IAqB/B;;;;;;;;OAQG;IACU,2BAA2B,CACtC,eAAe,EAAE,YAAY,EAC7B,KAAK,EAAE,EAAE,EACT,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,EAAE,EACd,IAAI,EAAE,IAAI;;;;;;IAiDZ;;;;;;;OAOG;IACU,oBAAoB,CAAC,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI;IAW5G;;;;;;;;OAQG;IACU,2BAA2B,CACtC,eAAe,EAAE,YAAY,EAC7B,KAAK,EAAE,EAAE,EACT,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,EAAE,EACd,IAAI,EAAE,IAAI;IAYZ;;;;;;;;OAQG;IACU,qBAAqB,CAChC,eAAe,EAAE,YAAY,EAC7B,KAAK,EAAE,EAAE,EACT,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,EAAE,EACd,IAAI,EAAE,IAAI;IAYZ;;;;;;;;OAQG;IACU,qBAAqB,CAChC,eAAe,EAAE,YAAY,EAC7B,KAAK,EAAE,EAAE,EACT,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,EAAE,EACd,IAAI,EAAE,IAAI;CAWb"}
|
package/dest/client/simulator.js
CHANGED
|
@@ -6,7 +6,7 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
6
6
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
7
7
|
import { createBlackBoxSolver } from '@noir-lang/acvm_js';
|
|
8
8
|
import { createSimulationError } from '../common/errors.js';
|
|
9
|
-
import {
|
|
9
|
+
import { PackedValuesCache } from '../common/packed_values_cache.js';
|
|
10
10
|
import { ClientExecutionContext } from './client_execution_context.js';
|
|
11
11
|
import { ExecutionNoteCache } from './execution_note_cache.js';
|
|
12
12
|
import { executePrivateFunction } from './private_execution.js';
|
|
@@ -60,8 +60,9 @@ export class AcirSimulator {
|
|
|
60
60
|
const header = await this.db.getHeader();
|
|
61
61
|
// reserve the first side effect for the tx hash (inserted by the private kernel)
|
|
62
62
|
const startSideEffectCounter = 1;
|
|
63
|
-
const
|
|
64
|
-
const
|
|
63
|
+
const transactionFee = Fr.ZERO;
|
|
64
|
+
const callContext = new CallContext(msgSender, contractAddress, portalContractAddress, FunctionSelector.fromNameAndParameters(entryPointArtifact.name, entryPointArtifact.parameters), request.gasSettings.getInitialAvailable(), false, false, startSideEffectCounter, request.gasSettings, transactionFee);
|
|
65
|
+
const context = new ClientExecutionContext(contractAddress, request.argsHash, request.txContext, callContext, header, request.authWitnesses, PackedValuesCache.create(request.packedArguments), new ExecutionNoteCache(), this.db, curve, this.node, startSideEffectCounter);
|
|
65
66
|
try {
|
|
66
67
|
const executionResult = await executePrivateFunction(context, entryPointArtifact, contractAddress, request.functionData);
|
|
67
68
|
return executionResult;
|
|
@@ -108,7 +109,7 @@ export class AcirSimulator {
|
|
|
108
109
|
}
|
|
109
110
|
const maxNoteFields = artifact.parameters[artifact.parameters.length - 1].type.length;
|
|
110
111
|
if (maxNoteFields < note.items.length) {
|
|
111
|
-
throw new Error(`The note being processed has ${note.items.length} fields, while "compute_note_hash_and_nullifier" can only handle a maximum of ${maxNoteFields} fields. Please
|
|
112
|
+
throw new Error(`The note being processed has ${note.items.length} fields, while "compute_note_hash_and_nullifier" can only handle a maximum of ${maxNoteFields} fields. Please reduce the number of fields in your note.`);
|
|
112
113
|
}
|
|
113
114
|
const extendedNoteItems = note.items.concat(Array(maxNoteFields - note.items.length).fill(Fr.ZERO));
|
|
114
115
|
const execRequest = {
|
|
@@ -176,4 +177,4 @@ export class AcirSimulator {
|
|
|
176
177
|
return innerNullifier;
|
|
177
178
|
}
|
|
178
179
|
}
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9zaW11bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUdMLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osZUFBZSxHQUNoQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUvRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFvQixpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVFLE9BQU8sRUFBbUMsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUzRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUl4QixZQUFvQixFQUFZLEVBQVUsSUFBZTtRQUFyQyxPQUFFLEdBQUYsRUFBRSxDQUFVO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBVztRQUN2RCxJQUFJLENBQUMsR0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unconstrained_execution.d.ts","sourceRoot":"","sources":["../../src/client/unconstrained_execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,iCAAiC,EAAsB,MAAM,uBAAuB,CAAC;AACvH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAOnD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,iCAAiC,EAC3C,eAAe,EAAE,YAAY,EAC7B,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,EAAE,EAAE,EACV,GAAG,yCAA+D,GACjE,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"unconstrained_execution.d.ts","sourceRoot":"","sources":["../../src/client/unconstrained_execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,iCAAiC,EAAsB,MAAM,uBAAuB,CAAC;AACvH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAOnD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,iCAAiC,EAC3C,eAAe,EAAE,YAAY,EAC7B,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,EAAE,EAAE,EACV,GAAG,yCAA+D,GACjE,OAAO,CAAC,aAAa,CAAC,CAyBxB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { decodeReturnValues } from '@aztec/foundation/abi';
|
|
2
2
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
3
|
-
import {
|
|
3
|
+
import { witnessMapToFields } from '../acvm/deserialize.js';
|
|
4
4
|
import { Oracle, acvm, extractCallStack, toACVMWitness } from '../acvm/index.js';
|
|
5
5
|
import { ExecutionError } from '../common/errors.js';
|
|
6
6
|
import { AcirSimulator } from './simulator.js';
|
|
@@ -13,13 +13,14 @@ export async function executeUnconstrainedFunction(oracle, artifact, contractAdd
|
|
|
13
13
|
log.verbose(`Executing unconstrained function ${contractAddress}:${functionSelector}(${artifact.name})`);
|
|
14
14
|
const acir = artifact.bytecode;
|
|
15
15
|
const initialWitness = toACVMWitness(0, args);
|
|
16
|
-
const
|
|
16
|
+
const acirExecutionResult = await acvm(await AcirSimulator.getSolver(), acir, initialWitness, new Oracle(oracle)).catch((err) => {
|
|
17
17
|
throw new ExecutionError(err.message, {
|
|
18
18
|
contractAddress,
|
|
19
19
|
functionSelector,
|
|
20
20
|
}, extractCallStack(err, artifact.debug), { cause: err });
|
|
21
21
|
});
|
|
22
|
-
|
|
22
|
+
const returnWitness = witnessMapToFields(acirExecutionResult.returnWitness);
|
|
23
|
+
return decodeReturnValues(artifact, returnWitness);
|
|
23
24
|
}
|
|
24
25
|
// docs:end:execute_unconstrained_function
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5jb25zdHJhaW5lZF9leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L3VuY29uc3RyYWluZWRfZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBOEQsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd2SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRy9DLDRDQUE0QztBQUM1Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsNEJBQTRCLENBQ2hELE1BQXNCLEVBQ3RCLFFBQTJDLEVBQzNDLGVBQTZCLEVBQzdCLFlBQTBCLEVBQzFCLElBQVUsRUFDVixHQUFHLEdBQUcsaUJBQWlCLENBQUMseUNBQXlDLENBQUM7SUFFbEUsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQy9DLEdBQUcsQ0FBQyxPQUFPLENBQUMsb0NBQW9DLGVBQWUsSUFBSSxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUV6RyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQy9CLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLElBQUksQ0FDcEMsTUFBTSxhQUFhLENBQUMsU0FBUyxFQUFFLEVBQy9CLElBQUksRUFDSixjQUFjLEVBQ2QsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQ25CLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBVSxFQUFFLEVBQUU7UUFDckIsTUFBTSxJQUFJLGNBQWMsQ0FDdEIsR0FBRyxDQUFDLE9BQU8sRUFDWDtZQUNFLGVBQWU7WUFDZixnQkFBZ0I7U0FDakIsRUFDRCxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUNyQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FDZixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1RSxPQUFPLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBQ0QsMENBQTBDIn0=
|
package/dest/common/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC"}
|
package/dest/common/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './packed_values_cache.js';
|
|
2
2
|
export * from './errors.js';
|
|
3
3
|
export * from './side_effect_counter.js';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYywwQkFBMEIsQ0FBQyJ9
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { PackedValues } from '@aztec/circuit-types';
|
|
2
|
+
import { Fr } from '@aztec/circuits.js';
|
|
3
|
+
/**
|
|
4
|
+
* A cache for packed values (arguments, returns) during transaction execution.
|
|
5
|
+
*/
|
|
6
|
+
export declare class PackedValuesCache {
|
|
7
|
+
private cache;
|
|
8
|
+
constructor(initialArguments?: PackedValues[]);
|
|
9
|
+
/**
|
|
10
|
+
* Creates a new packed values cache.
|
|
11
|
+
* @param initialArguments - The initial arguments to add to the cache.
|
|
12
|
+
* @returns The new packed values cache.
|
|
13
|
+
*/
|
|
14
|
+
static create(initialArguments?: PackedValues[]): PackedValuesCache;
|
|
15
|
+
/**
|
|
16
|
+
* Unpacks packed values.
|
|
17
|
+
* @param hash - The hash of the packed values.
|
|
18
|
+
* @returns The unpacked values.
|
|
19
|
+
*/
|
|
20
|
+
unpack(hash: Fr): Fr[];
|
|
21
|
+
/**
|
|
22
|
+
* Packs values.
|
|
23
|
+
* @param values - The values to pack.
|
|
24
|
+
* @returns The hash of the packed values.
|
|
25
|
+
*/
|
|
26
|
+
pack(values: Fr[]): Fr;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=packed_values_cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packed_values_cache.d.ts","sourceRoot":"","sources":["../../src/common/packed_values_cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAoB;gBAErB,gBAAgB,GAAE,YAAY,EAAO;IAOjD;;;;OAIG;WACW,MAAM,CAAC,gBAAgB,GAAE,YAAY,EAAO;IAI1D;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;IAW7B;;;;OAIG;IACI,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE;CAQzB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { PackedValues } from '@aztec/circuit-types';
|
|
2
|
+
import { Fr } from '@aztec/circuits.js';
|
|
3
|
+
/**
|
|
4
|
+
* A cache for packed values (arguments, returns) during transaction execution.
|
|
5
|
+
*/
|
|
6
|
+
export class PackedValuesCache {
|
|
7
|
+
constructor(initialArguments = []) {
|
|
8
|
+
this.cache = new Map();
|
|
9
|
+
for (const initialArg of initialArguments) {
|
|
10
|
+
this.cache.set(initialArg.hash.toBigInt(), initialArg.values);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Creates a new packed values cache.
|
|
15
|
+
* @param initialArguments - The initial arguments to add to the cache.
|
|
16
|
+
* @returns The new packed values cache.
|
|
17
|
+
*/
|
|
18
|
+
static create(initialArguments = []) {
|
|
19
|
+
return new PackedValuesCache(initialArguments);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Unpacks packed values.
|
|
23
|
+
* @param hash - The hash of the packed values.
|
|
24
|
+
* @returns The unpacked values.
|
|
25
|
+
*/
|
|
26
|
+
unpack(hash) {
|
|
27
|
+
if (hash.equals(Fr.ZERO)) {
|
|
28
|
+
return [];
|
|
29
|
+
}
|
|
30
|
+
const packedValues = this.cache.get(hash.value);
|
|
31
|
+
if (!packedValues) {
|
|
32
|
+
throw new Error(`Packed values for hash ${hash.toString()} not found in cache`);
|
|
33
|
+
}
|
|
34
|
+
return packedValues;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Packs values.
|
|
38
|
+
* @param values - The values to pack.
|
|
39
|
+
* @returns The hash of the packed values.
|
|
40
|
+
*/
|
|
41
|
+
pack(values) {
|
|
42
|
+
if (values.length === 0) {
|
|
43
|
+
return Fr.ZERO;
|
|
44
|
+
}
|
|
45
|
+
const packedValues = PackedValues.fromValues(values);
|
|
46
|
+
this.cache.set(packedValues.hash.value, packedValues.values);
|
|
47
|
+
return packedValues.hash;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2VkX3ZhbHVlc19jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcGFja2VkX3ZhbHVlc19jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUFZLG1CQUFtQyxFQUFFO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN2QixLQUFLLE1BQU0sVUFBVSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUMsRUFBRTtRQUN4RCxPQUFPLElBQUksaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxJQUFRO1FBQ3BCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN6QixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLElBQUksQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUNsRixDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxJQUFJLENBQUMsTUFBWTtRQUN0QixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ2pCLENBQUM7UUFDRCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztDQUNGIn0=
|
package/dest/index.d.ts
CHANGED
package/dest/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
package/dest/index.js
CHANGED
|
@@ -3,4 +3,5 @@ export * from './client/index.js';
|
|
|
3
3
|
export * from './common/index.js';
|
|
4
4
|
export * from './public/index.js';
|
|
5
5
|
export * from './simulator/index.js';
|
|
6
|
-
|
|
6
|
+
export * from './mocks/index.js';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsa0JBQWtCLENBQUMifQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type FunctionCall, type SimulationError } from '@aztec/circuit-types';
|
|
2
|
+
import { type AztecAddress, type ContractStorageUpdateRequest, Fr, FunctionData, type PrivateKernelTailCircuitPublicInputs, type PublicCallRequest } from '@aztec/circuits.js';
|
|
3
|
+
import { type PublicExecution, type PublicExecutionResult } from '../public/execution.js';
|
|
4
|
+
export declare class PublicExecutionResultBuilder {
|
|
5
|
+
private _execution;
|
|
6
|
+
private _nestedExecutions;
|
|
7
|
+
private _contractStorageUpdateRequests;
|
|
8
|
+
private _returnValues;
|
|
9
|
+
private _reverted;
|
|
10
|
+
private _revertReason;
|
|
11
|
+
constructor(execution: PublicExecution);
|
|
12
|
+
static fromPublicCallRequest({ request, returnValues, nestedExecutions, contractStorageUpdateRequests, }: {
|
|
13
|
+
request: PublicCallRequest;
|
|
14
|
+
returnValues?: Fr[];
|
|
15
|
+
nestedExecutions?: PublicExecutionResult[];
|
|
16
|
+
contractStorageUpdateRequests?: ContractStorageUpdateRequest[];
|
|
17
|
+
}): PublicExecutionResultBuilder;
|
|
18
|
+
static fromFunctionCall({ from, tx, returnValues, nestedExecutions, contractStorageUpdateRequests, revertReason, }: {
|
|
19
|
+
from: AztecAddress;
|
|
20
|
+
tx: FunctionCall;
|
|
21
|
+
returnValues?: Fr[];
|
|
22
|
+
nestedExecutions?: PublicExecutionResult[];
|
|
23
|
+
contractStorageUpdateRequests?: ContractStorageUpdateRequest[];
|
|
24
|
+
revertReason?: SimulationError;
|
|
25
|
+
}): PublicExecutionResultBuilder;
|
|
26
|
+
withNestedExecutions(...nested: PublicExecutionResult[]): PublicExecutionResultBuilder;
|
|
27
|
+
withContractStorageUpdateRequest(...request: ContractStorageUpdateRequest[]): PublicExecutionResultBuilder;
|
|
28
|
+
withReturnValues(...values: Fr[]): PublicExecutionResultBuilder;
|
|
29
|
+
withReverted(reason: SimulationError): PublicExecutionResultBuilder;
|
|
30
|
+
build(): PublicExecutionResult;
|
|
31
|
+
}
|
|
32
|
+
export declare const makeFunctionCall: (to?: AztecAddress, selector?: import("@aztec/circuits.js").FunctionSelector, args?: any[]) => {
|
|
33
|
+
to: AztecAddress;
|
|
34
|
+
functionData: FunctionData;
|
|
35
|
+
args: any[];
|
|
36
|
+
};
|
|
37
|
+
export declare function addKernelPublicCallStack(kernelOutput: PrivateKernelTailCircuitPublicInputs, calls: {
|
|
38
|
+
setupCalls: PublicCallRequest[];
|
|
39
|
+
appLogicCalls: PublicCallRequest[];
|
|
40
|
+
teardownCall: PublicCallRequest;
|
|
41
|
+
}): void;
|
|
42
|
+
//# sourceMappingURL=fixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/mocks/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAEL,KAAK,YAAY,EAGjB,KAAK,4BAA4B,EAEjC,EAAE,EACF,YAAY,EAIZ,KAAK,oCAAoC,EACzC,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE1F,qBAAa,4BAA4B;IACvC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,8BAA8B,CAAsC;IAC5E,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAA0C;gBAEnD,SAAS,EAAE,eAAe;IAItC,MAAM,CAAC,qBAAqB,CAAC,EAC3B,OAAO,EACP,YAA2B,EAC3B,gBAAqB,EACrB,6BAAkC,GACnC,EAAE;QACD,OAAO,EAAE,iBAAiB,CAAC;QAC3B,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC;QACpB,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAC3C,6BAA6B,CAAC,EAAE,4BAA4B,EAAE,CAAC;KAChE,GAAG,4BAA4B;IAUhC,MAAM,CAAC,gBAAgB,CAAC,EACtB,IAAI,EACJ,EAAE,EACF,YAA2B,EAC3B,gBAAqB,EACrB,6BAAkC,EAClC,YAAY,GACb,EAAE;QACD,IAAI,EAAE,YAAY,CAAC;QACnB,EAAE,EAAE,YAAY,CAAC;QACjB,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC;QACpB,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAC3C,6BAA6B,CAAC,EAAE,4BAA4B,EAAE,CAAC;QAC/D,YAAY,CAAC,EAAE,eAAe,CAAC;KAChC;IA6BD,oBAAoB,CAAC,GAAG,MAAM,EAAE,qBAAqB,EAAE,GAAG,4BAA4B;IAKtF,gCAAgC,CAAC,GAAG,OAAO,EAAE,4BAA4B,EAAE,GAAG,4BAA4B;IAK1G,gBAAgB,CAAC,GAAG,MAAM,EAAE,EAAE,EAAE,GAAG,4BAA4B;IAK/D,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,4BAA4B;IAMnE,KAAK,IAAI,qBAAqB;CAoB/B;AAED,eAAO,MAAM,gBAAgB;;;;CAIuC,CAAC;AAErE,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,oCAAoC,EAClD,KAAK,EAAE;IACL,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,YAAY,EAAE,iBAAiB,CAAC;CACjC,QAiBF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
|
|
2
|
+
import { ARGS_LENGTH, CallContext, CallRequest, EthAddress, Fr, FunctionData, Gas, GasSettings, MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, } from '@aztec/circuits.js';
|
|
3
|
+
import { makeAztecAddress, makeSelector } from '@aztec/circuits.js/testing';
|
|
4
|
+
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
5
|
+
export class PublicExecutionResultBuilder {
|
|
6
|
+
constructor(execution) {
|
|
7
|
+
this._nestedExecutions = [];
|
|
8
|
+
this._contractStorageUpdateRequests = [];
|
|
9
|
+
this._returnValues = [];
|
|
10
|
+
this._reverted = false;
|
|
11
|
+
this._revertReason = undefined;
|
|
12
|
+
this._execution = execution;
|
|
13
|
+
}
|
|
14
|
+
static fromPublicCallRequest({ request, returnValues = [new Fr(1n)], nestedExecutions = [], contractStorageUpdateRequests = [], }) {
|
|
15
|
+
const builder = new PublicExecutionResultBuilder(request);
|
|
16
|
+
builder.withNestedExecutions(...nestedExecutions);
|
|
17
|
+
builder.withContractStorageUpdateRequest(...contractStorageUpdateRequests);
|
|
18
|
+
builder.withReturnValues(...returnValues);
|
|
19
|
+
return builder;
|
|
20
|
+
}
|
|
21
|
+
static fromFunctionCall({ from, tx, returnValues = [new Fr(1n)], nestedExecutions = [], contractStorageUpdateRequests = [], revertReason, }) {
|
|
22
|
+
const builder = new PublicExecutionResultBuilder({
|
|
23
|
+
callContext: new CallContext(from, tx.to, EthAddress.ZERO, tx.functionData.selector, Gas.test(), false, false, 0, GasSettings.default(), Fr.ZERO),
|
|
24
|
+
contractAddress: tx.to,
|
|
25
|
+
functionData: tx.functionData,
|
|
26
|
+
args: tx.args,
|
|
27
|
+
});
|
|
28
|
+
builder.withNestedExecutions(...nestedExecutions);
|
|
29
|
+
builder.withContractStorageUpdateRequest(...contractStorageUpdateRequests);
|
|
30
|
+
builder.withReturnValues(...returnValues);
|
|
31
|
+
if (revertReason) {
|
|
32
|
+
builder.withReverted(revertReason);
|
|
33
|
+
}
|
|
34
|
+
return builder;
|
|
35
|
+
}
|
|
36
|
+
withNestedExecutions(...nested) {
|
|
37
|
+
this._nestedExecutions.push(...nested);
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
withContractStorageUpdateRequest(...request) {
|
|
41
|
+
this._contractStorageUpdateRequests.push(...request);
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
withReturnValues(...values) {
|
|
45
|
+
this._returnValues.push(...values);
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
withReverted(reason) {
|
|
49
|
+
this._reverted = true;
|
|
50
|
+
this._revertReason = reason;
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
53
|
+
build() {
|
|
54
|
+
return {
|
|
55
|
+
execution: this._execution,
|
|
56
|
+
nestedExecutions: this._nestedExecutions,
|
|
57
|
+
nullifierReadRequests: [],
|
|
58
|
+
nullifierNonExistentReadRequests: [],
|
|
59
|
+
contractStorageUpdateRequests: this._contractStorageUpdateRequests,
|
|
60
|
+
returnValues: padArrayEnd(this._returnValues, Fr.ZERO, 4), // TODO(#5450) Need to use the proper return values here
|
|
61
|
+
newNoteHashes: [],
|
|
62
|
+
newNullifiers: [],
|
|
63
|
+
newL2ToL1Messages: [],
|
|
64
|
+
contractStorageReads: [],
|
|
65
|
+
unencryptedLogs: UnencryptedFunctionL2Logs.empty(),
|
|
66
|
+
startSideEffectCounter: Fr.ZERO,
|
|
67
|
+
endSideEffectCounter: Fr.ZERO,
|
|
68
|
+
reverted: this._reverted,
|
|
69
|
+
revertReason: this._revertReason,
|
|
70
|
+
gasLeft: this._execution.callContext.gasLeft.mul(0.9),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export const makeFunctionCall = (to = makeAztecAddress(30), selector = makeSelector(5), args = new Array(ARGS_LENGTH).fill(Fr.ZERO)) => ({ to, functionData: new FunctionData(selector, false), args });
|
|
75
|
+
export function addKernelPublicCallStack(kernelOutput, calls) {
|
|
76
|
+
// the first two calls are non-revertible
|
|
77
|
+
// the first is for setup, the second is for teardown
|
|
78
|
+
kernelOutput.forPublic.endNonRevertibleData.publicCallStack = padArrayEnd(
|
|
79
|
+
// this is a stack, so the first item is the last call
|
|
80
|
+
// and callRequests is in the order of the calls
|
|
81
|
+
[calls.teardownCall.toCallRequest(), ...calls.setupCalls.map(c => c.toCallRequest())], CallRequest.empty(), MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX);
|
|
82
|
+
kernelOutput.forPublic.end.publicCallStack = padArrayEnd(calls.appLogicCalls.map(c => c.toCallRequest()), CallRequest.empty(), MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX);
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9ja3MvZml4dHVyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQyx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFHLE9BQU8sRUFDTCxXQUFXLEVBRVgsV0FBVyxFQUNYLFdBQVcsRUFFWCxVQUFVLEVBQ1YsRUFBRSxFQUNGLFlBQVksRUFDWixHQUFHLEVBQ0gsV0FBVyxFQUNYLG1DQUFtQyxHQUdwQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJM0QsTUFBTSxPQUFPLDRCQUE0QjtJQVF2QyxZQUFZLFNBQTBCO1FBTjlCLHNCQUFpQixHQUE0QixFQUFFLENBQUM7UUFDaEQsbUNBQThCLEdBQW1DLEVBQUUsQ0FBQztRQUNwRSxrQkFBYSxHQUFTLEVBQUUsQ0FBQztRQUN6QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGtCQUFhLEdBQWdDLFNBQVMsQ0FBQztRQUc3RCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEVBQzNCLE9BQU8sRUFDUCxZQUFZLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUMzQixnQkFBZ0IsR0FBRyxFQUFFLEVBQ3JCLDZCQUE2QixHQUFHLEVBQUUsR0FNbkM7UUFDQyxNQUFNLE9BQU8sR0FBRyxJQUFJLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFELE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLEdBQUcsNkJBQTZCLENBQUMsQ0FB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { type PublicKernelRequest, type SimulationError, type Tx, type UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
|
|
2
|
+
import { Fr, type GlobalVariables, type Header, type KernelCircuitPublicInputs, type PrivateKernelTailCircuitPublicInputs, type Proof, PublicCallData, type PublicCallRequest, PublicCallStackItem, PublicCircuitPublicInputs, PublicKernelCircuitPrivateInputs, type PublicKernelCircuitPublicInputs, PublicKernelData } from '@aztec/circuits.js';
|
|
3
|
+
import { type ProcessReturnValues } from '@aztec/foundation/abi';
|
|
4
|
+
import { type DebugLogger } from '@aztec/foundation/log';
|
|
5
|
+
import { type PublicExecutionResult, type PublicExecutor } from '@aztec/simulator';
|
|
6
|
+
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
7
|
+
import { HintsBuilder } from './hints_builder.js';
|
|
8
|
+
import { type PublicKernelCircuitSimulator } from './public_kernel_circuit_simulator.js';
|
|
9
|
+
export declare enum PublicKernelPhase {
|
|
10
|
+
SETUP = "setup",
|
|
11
|
+
APP_LOGIC = "app-logic",
|
|
12
|
+
TEARDOWN = "teardown",
|
|
13
|
+
TAIL = "tail"
|
|
14
|
+
}
|
|
15
|
+
export declare const PhaseIsRevertible: Record<PublicKernelPhase, boolean>;
|
|
16
|
+
export declare abstract class AbstractPhaseManager {
|
|
17
|
+
protected db: MerkleTreeOperations;
|
|
18
|
+
protected publicExecutor: PublicExecutor;
|
|
19
|
+
protected publicKernel: PublicKernelCircuitSimulator;
|
|
20
|
+
protected globalVariables: GlobalVariables;
|
|
21
|
+
protected historicalHeader: Header;
|
|
22
|
+
phase: PublicKernelPhase;
|
|
23
|
+
protected hintsBuilder: HintsBuilder;
|
|
24
|
+
protected log: DebugLogger;
|
|
25
|
+
constructor(db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, globalVariables: GlobalVariables, historicalHeader: Header, phase: PublicKernelPhase);
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
* @param tx - the tx to be processed
|
|
29
|
+
* @param publicKernelPublicInputs - the output of the public kernel circuit for the previous phase
|
|
30
|
+
* @param previousPublicKernelProof - the proof of the public kernel circuit for the previous phase
|
|
31
|
+
*/
|
|
32
|
+
abstract handle(tx: Tx, publicKernelPublicInputs: PublicKernelCircuitPublicInputs, previousPublicKernelProof: Proof): Promise<{
|
|
33
|
+
/**
|
|
34
|
+
* The collection of public kernel requests
|
|
35
|
+
*/
|
|
36
|
+
kernelRequests: PublicKernelRequest[];
|
|
37
|
+
/**
|
|
38
|
+
* the output of the public kernel circuit for this phase
|
|
39
|
+
*/
|
|
40
|
+
publicKernelOutput: PublicKernelCircuitPublicInputs;
|
|
41
|
+
/**
|
|
42
|
+
* the final output of the public kernel circuit for this phase
|
|
43
|
+
*/
|
|
44
|
+
finalKernelOutput?: KernelCircuitPublicInputs;
|
|
45
|
+
/**
|
|
46
|
+
* the proof of the public kernel circuit for this phase
|
|
47
|
+
*/
|
|
48
|
+
publicKernelProof: Proof;
|
|
49
|
+
/**
|
|
50
|
+
* revert reason, if any
|
|
51
|
+
*/
|
|
52
|
+
revertReason: SimulationError | undefined;
|
|
53
|
+
returnValues: ProcessReturnValues;
|
|
54
|
+
}>;
|
|
55
|
+
static extractEnqueuedPublicCallsByPhase(publicInputs: PrivateKernelTailCircuitPublicInputs, enqueuedPublicFunctionCalls: PublicCallRequest[]): Record<PublicKernelPhase, PublicCallRequest[]>;
|
|
56
|
+
protected extractEnqueuedPublicCalls(tx: Tx): PublicCallRequest[];
|
|
57
|
+
protected processEnqueuedPublicCalls(tx: Tx, previousPublicKernelOutput: PublicKernelCircuitPublicInputs, previousPublicKernelProof: Proof): Promise<[
|
|
58
|
+
PublicKernelCircuitPrivateInputs[],
|
|
59
|
+
PublicKernelCircuitPublicInputs,
|
|
60
|
+
Proof,
|
|
61
|
+
UnencryptedFunctionL2Logs[],
|
|
62
|
+
SimulationError | undefined,
|
|
63
|
+
ProcessReturnValues
|
|
64
|
+
]>;
|
|
65
|
+
protected runKernelCircuit(previousOutput: PublicKernelCircuitPublicInputs, previousProof: Proof, callData: PublicCallData): Promise<[PublicKernelCircuitPrivateInputs, PublicKernelCircuitPublicInputs]>;
|
|
66
|
+
protected getKernelCircuitOutput(previousOutput: PublicKernelCircuitPublicInputs, previousProof: Proof, callData: PublicCallData): Promise<[PublicKernelCircuitPrivateInputs, PublicKernelCircuitPublicInputs]>;
|
|
67
|
+
protected getPreviousKernelData(previousOutput: PublicKernelCircuitPublicInputs, previousProof: Proof): PublicKernelData;
|
|
68
|
+
protected getPublicCircuitPublicInputs(result: PublicExecutionResult): Promise<PublicCircuitPublicInputs>;
|
|
69
|
+
protected getPublicCallStackItem(result: PublicExecutionResult, isExecutionRequest?: boolean): Promise<PublicCallStackItem>;
|
|
70
|
+
protected getPublicCallStackPreimages(result: PublicExecutionResult): Promise<PublicCallStackItem[]>;
|
|
71
|
+
protected getBytecodeHash(_result: PublicExecutionResult): Promise<Fr>;
|
|
72
|
+
/**
|
|
73
|
+
* Calculates the PublicCircuitOutput for this execution result along with its proof,
|
|
74
|
+
* and assembles a PublicCallData object from it.
|
|
75
|
+
* @param result - The execution result.
|
|
76
|
+
* @param preimages - The preimages of the callstack items.
|
|
77
|
+
* @param isExecutionRequest - Whether the current callstack item should be considered a public fn execution request.
|
|
78
|
+
* @returns A corresponding PublicCallData object.
|
|
79
|
+
*/
|
|
80
|
+
protected getPublicCallData(result: PublicExecutionResult, isExecutionRequest?: boolean): Promise<PublicCallData>;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=abstract_phase_manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract_phase_manager.d.ts","sourceRoot":"","sources":["../../src/public/abstract_phase_manager.ts"],"names":[],"mappings":"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"}
|