@aztec/simulator 0.69.1 → 0.71.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/acvm.d.ts +1 -2
- package/dest/acvm/acvm.d.ts.map +1 -1
- package/dest/acvm/acvm.js +12 -2
- package/dest/acvm/deserialize.d.ts +9 -0
- package/dest/acvm/deserialize.d.ts.map +1 -1
- package/dest/acvm/deserialize.js +12 -1
- package/dest/acvm/index.d.ts +1 -1
- package/dest/acvm/index.d.ts.map +1 -1
- package/dest/acvm/index.js +2 -2
- package/dest/acvm/oracle/oracle.d.ts +9 -5
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +44 -22
- package/dest/acvm/oracle/typed_oracle.d.ts +11 -17
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +25 -23
- package/dest/avm/avm_simulator.d.ts.map +1 -1
- package/dest/avm/avm_simulator.js +7 -1
- package/dest/avm/fixtures/index.d.ts +2 -3
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +4 -4
- package/dest/avm/journal/journal.d.ts +3 -4
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +11 -10
- package/dest/avm/journal/nullifiers.d.ts +1 -1
- package/dest/avm/journal/nullifiers.d.ts.map +1 -1
- package/dest/avm/journal/public_storage.d.ts +1 -1
- package/dest/avm/journal/public_storage.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.js +9 -5
- package/dest/client/client_execution_context.d.ts +29 -18
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +42 -29
- package/dest/client/db_oracle.d.ts +55 -16
- package/dest/client/db_oracle.d.ts.map +1 -1
- package/dest/client/db_oracle.js +1 -1
- package/dest/client/execution_note_cache.d.ts +27 -4
- package/dest/client/execution_note_cache.d.ts.map +1 -1
- package/dest/client/execution_note_cache.js +62 -12
- package/dest/client/index.d.ts +11 -3
- package/dest/client/index.d.ts.map +1 -1
- package/dest/client/index.js +11 -4
- package/dest/client/private_execution.d.ts +3 -2
- package/dest/client/private_execution.d.ts.map +1 -1
- package/dest/client/private_execution.js +10 -8
- package/dest/client/simulator.d.ts +4 -2
- package/dest/client/simulator.d.ts.map +1 -1
- package/dest/client/simulator.js +14 -9
- package/dest/client/unconstrained_execution.d.ts +2 -1
- package/dest/client/unconstrained_execution.d.ts.map +1 -1
- package/dest/client/unconstrained_execution.js +10 -5
- package/dest/client/view_data_oracle.d.ts +7 -10
- package/dest/client/view_data_oracle.d.ts.map +1 -1
- package/dest/client/view_data_oracle.js +38 -19
- package/dest/common/hashed_values_cache.d.ts +28 -0
- package/dest/common/hashed_values_cache.d.ts.map +1 -0
- package/dest/common/{packed_values_cache.js → hashed_values_cache.js} +22 -22
- package/dest/common/index.d.ts +1 -1
- package/dest/common/index.js +1 -1
- package/dest/common/message_load_oracle_inputs.d.ts +15 -0
- package/dest/common/message_load_oracle_inputs.d.ts.map +1 -0
- package/dest/common/message_load_oracle_inputs.js +15 -0
- package/dest/common/simulation_provider.d.ts +19 -0
- package/dest/common/simulation_provider.d.ts.map +1 -0
- package/dest/common/simulation_provider.js +27 -0
- package/dest/common.d.ts +2 -0
- package/dest/common.d.ts.map +1 -0
- package/dest/common.js +2 -0
- package/dest/providers/acvm_native.d.ts +5 -2
- package/dest/providers/acvm_native.d.ts.map +1 -1
- package/dest/providers/acvm_native.js +5 -2
- package/dest/providers/acvm_wasm.d.ts +8 -2
- package/dest/providers/acvm_wasm.d.ts.map +1 -1
- package/dest/providers/acvm_wasm.js +31 -5
- package/dest/providers/acvm_wasm_with_blobs.d.ts +14 -2
- package/dest/providers/acvm_wasm_with_blobs.d.ts.map +1 -1
- package/dest/providers/acvm_wasm_with_blobs.js +25 -5
- package/dest/providers/factory.d.ts +1 -1
- package/dest/providers/factory.d.ts.map +1 -1
- package/dest/providers/factory.js +1 -1
- package/dest/providers/index.d.ts +1 -1
- package/dest/providers/index.d.ts.map +1 -1
- package/dest/providers/index.js +2 -2
- package/dest/public/db_interfaces.d.ts +1 -1
- package/dest/public/db_interfaces.d.ts.map +1 -1
- package/dest/public/fixtures/index.d.ts +3 -3
- package/dest/public/fixtures/index.d.ts.map +1 -1
- package/dest/public/fixtures/index.js +52 -23
- package/dest/public/public_db_sources.d.ts +2 -1
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +2 -2
- package/dest/public/public_processor.d.ts +3 -3
- package/dest/public/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor.js +9 -9
- package/dest/public/public_tx_context.d.ts +3 -7
- package/dest/public/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_context.js +7 -20
- package/dest/public/public_tx_simulator.d.ts +1 -1
- package/dest/public/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator.js +7 -7
- package/{src/index.ts → dest/server.d.ts} +1 -2
- package/dest/server.d.ts.map +1 -0
- package/dest/server.js +6 -0
- package/package.json +11 -12
- package/src/acvm/acvm.ts +20 -3
- package/src/acvm/deserialize.ts +12 -0
- package/src/acvm/index.ts +1 -1
- package/src/acvm/oracle/oracle.ts +90 -28
- package/src/acvm/oracle/typed_oracle.ts +41 -24
- package/src/avm/avm_simulator.ts +6 -0
- package/src/avm/fixtures/index.ts +5 -4
- package/src/avm/journal/journal.ts +9 -9
- package/src/avm/journal/nullifiers.ts +1 -1
- package/src/avm/journal/public_storage.ts +1 -1
- package/src/avm/opcodes/memory.ts +8 -4
- package/src/client/client_execution_context.ts +47 -30
- package/src/client/db_oracle.ts +68 -17
- package/src/client/execution_note_cache.ts +67 -14
- package/src/client/index.ts +11 -3
- package/src/client/private_execution.ts +22 -18
- package/src/client/simulator.ts +21 -8
- package/src/client/unconstrained_execution.ts +21 -14
- package/src/client/view_data_oracle.ts +53 -19
- package/src/common/hashed_values_cache.ts +55 -0
- package/src/common/index.ts +1 -1
- package/src/common/message_load_oracle_inputs.ts +15 -0
- package/src/common/simulation_provider.ts +45 -0
- package/src/common.ts +1 -0
- package/src/providers/acvm_native.ts +12 -2
- package/src/providers/acvm_wasm.ts +36 -9
- package/src/providers/acvm_wasm_with_blobs.ts +35 -10
- package/src/providers/factory.ts +1 -1
- package/src/providers/index.ts +1 -1
- package/src/public/db_interfaces.ts +1 -1
- package/src/public/fixtures/index.ts +66 -36
- package/src/public/public_db_sources.ts +3 -6
- package/src/public/public_processor.ts +14 -7
- package/src/public/public_tx_context.ts +6 -19
- package/src/public/public_tx_simulator.ts +6 -6
- package/{dest/index.d.ts → src/server.ts} +0 -3
- package/dest/common/packed_values_cache.d.ts +0 -28
- package/dest/common/packed_values_cache.d.ts.map +0 -1
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -8
- package/dest/providers/simulation_provider.d.ts +0 -9
- package/dest/providers/simulation_provider.d.ts.map +0 -1
- package/dest/providers/simulation_provider.js +0 -2
- package/src/common/packed_values_cache.ts +0 -55
- package/src/providers/simulation_provider.ts +0 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_tx_context.d.ts","sourceRoot":"","sources":["../../src/public/public_tx_context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,wBAAwB,EAE7B,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,EAAE,EACP,gBAAgB,EAChB,MAAM,
|
|
1
|
+
{"version":3,"file":"public_tx_context.d.ts","sourceRoot":"","sources":["../../src/public/public_tx_context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MerkleTreeId, ProvingRequestType, TxExecutionPhase,
|
|
1
|
+
import { MerkleTreeId, ProvingRequestType, TxExecutionPhase, } from '@aztec/circuit-types';
|
|
2
2
|
import { AvmCircuitInputs, Fr, Gas, MAX_L2_GAS_PER_TX_PUBLIC_PORTION, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, PublicCircuitPublicInputs, RevertCode, TreeSnapshots, computeTransactionFee, countAccumulatedItems, } from '@aztec/circuits.js';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { strict as assert } from 'assert';
|
|
@@ -11,7 +11,8 @@ import { getCallRequestsByPhase, getExecutionRequestsByPhase } from './utils.js'
|
|
|
11
11
|
* The transaction-level context for public execution.
|
|
12
12
|
*/
|
|
13
13
|
export class PublicTxContext {
|
|
14
|
-
constructor(state, globalVariables, startStateReference, gasSettings, gasUsedByPrivate, gasAllocatedToPublic, setupCallRequests, appLogicCallRequests, teardownCallRequests, setupExecutionRequests, appLogicExecutionRequests, teardownExecutionRequests, nonRevertibleAccumulatedDataFromPrivate, revertibleAccumulatedDataFromPrivate, feePayer, trace) {
|
|
14
|
+
constructor(txHash, state, globalVariables, startStateReference, gasSettings, gasUsedByPrivate, gasAllocatedToPublic, setupCallRequests, appLogicCallRequests, teardownCallRequests, setupExecutionRequests, appLogicExecutionRequests, teardownExecutionRequests, nonRevertibleAccumulatedDataFromPrivate, revertibleAccumulatedDataFromPrivate, feePayer, trace) {
|
|
15
|
+
this.txHash = txHash;
|
|
15
16
|
this.state = state;
|
|
16
17
|
this.globalVariables = globalVariables;
|
|
17
18
|
this.startStateReference = startStateReference;
|
|
@@ -48,13 +49,14 @@ export class PublicTxContext {
|
|
|
48
49
|
/*unencryptedLogsHashes*/ 0);
|
|
49
50
|
const enqueuedCallTrace = new PublicEnqueuedCallSideEffectTrace(
|
|
50
51
|
/*startSideEffectCounter=*/ 0, previousAccumulatedDataArrayLengths);
|
|
52
|
+
const firstNullifier = nonRevertibleAccumulatedDataFromPrivate.nullifiers[0];
|
|
51
53
|
// Transaction level state manager that will be forked for revertible phases.
|
|
52
|
-
const txStateManager = await AvmPersistableStateManager.create(worldStateDB, enqueuedCallTrace, doMerkleOperations,
|
|
54
|
+
const txStateManager = await AvmPersistableStateManager.create(worldStateDB, enqueuedCallTrace, doMerkleOperations, firstNullifier);
|
|
53
55
|
const gasSettings = tx.data.constants.txContext.gasSettings;
|
|
54
56
|
const gasUsedByPrivate = tx.data.gasUsed;
|
|
55
57
|
// Gas allocated to public is "whatever's left" after private, but with some max applied.
|
|
56
58
|
const gasAllocatedToPublic = applyMaxToAvailableGas(gasSettings.gasLimits.sub(gasUsedByPrivate));
|
|
57
|
-
return new PublicTxContext(new PhaseStateManager(txStateManager), globalVariables, await db.getStateReference(), gasSettings, gasUsedByPrivate, gasAllocatedToPublic, getCallRequestsByPhase(tx, TxExecutionPhase.SETUP), getCallRequestsByPhase(tx, TxExecutionPhase.APP_LOGIC), getCallRequestsByPhase(tx, TxExecutionPhase.TEARDOWN), getExecutionRequestsByPhase(tx, TxExecutionPhase.SETUP), getExecutionRequestsByPhase(tx, TxExecutionPhase.APP_LOGIC), getExecutionRequestsByPhase(tx, TxExecutionPhase.TEARDOWN), tx.data.forPublic.nonRevertibleAccumulatedData, tx.data.forPublic.revertibleAccumulatedData, tx.data.feePayer, enqueuedCallTrace);
|
|
59
|
+
return new PublicTxContext(tx.getTxHash(), new PhaseStateManager(txStateManager), globalVariables, await db.getStateReference(), gasSettings, gasUsedByPrivate, gasAllocatedToPublic, getCallRequestsByPhase(tx, TxExecutionPhase.SETUP), getCallRequestsByPhase(tx, TxExecutionPhase.APP_LOGIC), getCallRequestsByPhase(tx, TxExecutionPhase.TEARDOWN), getExecutionRequestsByPhase(tx, TxExecutionPhase.SETUP), getExecutionRequestsByPhase(tx, TxExecutionPhase.APP_LOGIC), getExecutionRequestsByPhase(tx, TxExecutionPhase.TEARDOWN), tx.data.forPublic.nonRevertibleAccumulatedData, tx.data.forPublic.revertibleAccumulatedData, tx.data.feePayer, enqueuedCallTrace);
|
|
58
60
|
}
|
|
59
61
|
/**
|
|
60
62
|
* Signal that the entire transaction execution is done.
|
|
@@ -108,13 +110,6 @@ export class PublicTxContext {
|
|
|
108
110
|
assert(this.halted, 'Cannot know the final revert code until tx execution ends');
|
|
109
111
|
return this.revertCode;
|
|
110
112
|
}
|
|
111
|
-
/**
|
|
112
|
-
* Construct & return transaction hash.
|
|
113
|
-
* @returns The transaction's hash.
|
|
114
|
-
*/
|
|
115
|
-
getTxHash() {
|
|
116
|
-
return fetchTxHash(this.nonRevertibleAccumulatedDataFromPrivate);
|
|
117
|
-
}
|
|
118
113
|
/**
|
|
119
114
|
* Are there any call requests for the speciiied phase?
|
|
120
115
|
*/
|
|
@@ -317,12 +312,4 @@ function applyMaxToAvailableGas(availableGas) {
|
|
|
317
312
|
/*daGas=*/ availableGas.daGas,
|
|
318
313
|
/*l2Gas=*/ Math.min(availableGas.l2Gas, MAX_L2_GAS_PER_TX_PUBLIC_PORTION));
|
|
319
314
|
}
|
|
320
|
-
function fetchTxHash(nonRevertibleAccumulatedData) {
|
|
321
|
-
// Private kernel functions are executed client side and for this reason tx hash is already set as first nullifier
|
|
322
|
-
const firstNullifier = nonRevertibleAccumulatedData.nullifiers[0];
|
|
323
|
-
if (!firstNullifier || firstNullifier.isZero()) {
|
|
324
|
-
throw new Error(`Cannot get tx hash since first nullifier is missing`);
|
|
325
|
-
}
|
|
326
|
-
return new TxHash(firstNullifier);
|
|
327
|
-
}
|
|
328
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3R4X2NvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3B1YmxpY190eF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxZQUFZLEVBRVosa0JBQWtCLEVBSWxCLGdCQUFnQixFQUNoQixNQUFNLEdBQ1AsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsZ0JBQWdCLEVBR2hCLEVBQUUsRUFDRixHQUFHLEVBR0gsZ0NBQWdDLEVBQ2hDLHNCQUFzQixFQUN0QixxQkFBcUIsRUFHckIseUJBQXlCLEVBQ3pCLFVBQVUsRUFFVixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLHFCQUFxQixHQUN0QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRWpILE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRjs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBaUIxQixZQUNrQixLQUF3QixFQUN2QixlQUFnQyxFQUNoQyxtQkFBbUMsRUFDbkMsV0FBd0IsRUFDeEIsZ0JBQXFCLEVBQ3JCLG9CQUF5QixFQUN6QixpQkFBc0MsRUFDdEMsb0JBQXlDLEVBQ3pDLG9CQUF5QyxFQUN6QyxzQkFBZ0QsRUFDaEQseUJBQW1ELEVBQ25ELHlC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
|
|
315
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3R4X2NvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3B1YmxpY190eF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxZQUFZLEVBRVosa0JBQWtCLEVBSWxCLGdCQUFnQixHQUVqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxnQkFBZ0IsRUFHaEIsRUFBRSxFQUNGLEdBQUcsRUFHSCxnQ0FBZ0MsRUFDaEMsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUdyQix5QkFBeUIsRUFDekIsVUFBVSxFQUVWLGFBQWEsRUFDYixxQkFBcUIsRUFDckIscUJBQXFCLEdBQ3RCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFlLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxNQUFNLElBQUksTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFakgsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFpQjFCLFlBQ2tCLE1BQWMsRUFDZCxLQUF3QixFQUN2QixlQUFnQyxFQUNoQyxtQkFBbUMsRUFDbkMsV0FBd0IsRUFDeEIsZ0JBQXFCLEVBQ3JCLG9CQUF5QixFQUN6QixpQkFBc0MsRUFDdEMsb0JBQXlDLEVBQ3pDLG9CQUF5QyxFQUN6QyxzQkFBZ0QsRUFDaEQseUJBQW1ELEVBQ25ELHlC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
|
|
@@ -28,7 +28,7 @@ export declare class PublicTxSimulator {
|
|
|
28
28
|
private enforceFeePayment;
|
|
29
29
|
metrics: ExecutorMetrics;
|
|
30
30
|
private log;
|
|
31
|
-
constructor(db: MerkleTreeReadOperations, worldStateDB: WorldStateDB,
|
|
31
|
+
constructor(db: MerkleTreeReadOperations, worldStateDB: WorldStateDB, globalVariables: GlobalVariables, doMerkleOperations?: boolean, enforceFeePayment?: boolean, telemetryClient?: TelemetryClient);
|
|
32
32
|
get tracer(): Tracer;
|
|
33
33
|
/**
|
|
34
34
|
* Simulate a transaction's public portion including all of its phases.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_tx_simulator.d.ts","sourceRoot":"","sources":["../../src/public/public_tx_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,wBAAwB,EAC7B,yBAAyB,EAEzB,KAAK,eAAe,EACpB,KAAK,EAAE,EACP,gBAAgB,EAEjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAqB,KAAK,eAAe,EAA0B,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAItH,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"public_tx_simulator.d.ts","sourceRoot":"","sources":["../../src/public/public_tx_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,wBAAwB,EAC7B,yBAAyB,EAEzB,KAAK,eAAe,EACpB,KAAK,EAAE,EACP,gBAAgB,EAEjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAqB,KAAK,eAAe,EAA0B,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAItH,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,MAAM,EAAiC,MAAM,yBAAyB,CAAC;AAQvH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,yBAAyB,EAAE,CAAC;IAC1C,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC,CAAC;AAEF,qBAAa,iBAAiB;IAM1B,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,iBAAiB;IAT3B,OAAO,EAAE,eAAe,CAAC;IAEzB,OAAO,CAAC,GAAG,CAAS;gBAGV,EAAE,EAAE,wBAAwB,EAC5B,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,kBAAkB,GAAE,OAAe,EACnC,iBAAiB,GAAE,OAAc,EACzC,eAAe,GAAE,eAAsC;IAMzD,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD;;;;OAIG;IACU,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAkFtD;;;;OAIG;YACW,kBAAkB;IAIhC;;;;OAIG;YACW,qBAAqB;IAkBnC;;;;OAIG;YACW,qBAAqB;IAoBnC;;;;;OAKG;YACW,aAAa;IA0C3B;;;;;;;OAOG;YAOW,oBAAoB;IAoClC;;;;;;;;;;;;;OAaG;YAOW,4BAA4B;IAgD1C;;OAEG;IACU,+BAA+B,CAAC,OAAO,EAAE,eAAe;IAkBrE;;;OAGG;IACU,4BAA4B,CAAC,OAAO,EAAE,eAAe;YAqBpD,MAAM;CA+BrB"}
|
|
@@ -3,7 +3,7 @@ import { NestedProcessReturnValues, TxExecutionPhase, UnencryptedFunctionL2Logs,
|
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { Timer } from '@aztec/foundation/timer';
|
|
5
5
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
6
|
-
import { Attributes, trackSpan } from '@aztec/telemetry-client';
|
|
6
|
+
import { Attributes, getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
|
|
7
7
|
import { strict as assert } from 'assert';
|
|
8
8
|
import { AvmSimulator } from '../avm/index.js';
|
|
9
9
|
import { NullifierCollisionError } from '../avm/journal/nullifiers.js';
|
|
@@ -17,7 +17,7 @@ let PublicTxSimulator = (() => {
|
|
|
17
17
|
let _simulateEnqueuedCall_decorators;
|
|
18
18
|
let _simulateEnqueuedCallInternal_decorators;
|
|
19
19
|
return _a = class PublicTxSimulator {
|
|
20
|
-
constructor(db, worldStateDB,
|
|
20
|
+
constructor(db, worldStateDB, globalVariables, doMerkleOperations = false, enforceFeePayment = true, telemetryClient = getTelemetryClient()) {
|
|
21
21
|
this.db = (__runInitializers(this, _instanceExtraInitializers), db);
|
|
22
22
|
this.worldStateDB = worldStateDB;
|
|
23
23
|
this.globalVariables = globalVariables;
|
|
@@ -155,8 +155,8 @@ let PublicTxSimulator = (() => {
|
|
|
155
155
|
async simulatePhase(phase, context) {
|
|
156
156
|
const callRequests = context.getCallRequestsForPhase(phase);
|
|
157
157
|
const executionRequests = context.getExecutionRequestsForPhase(phase);
|
|
158
|
-
this.log.debug(`Processing phase ${TxExecutionPhase[phase]} for tx ${context.
|
|
159
|
-
txHash: context.
|
|
158
|
+
this.log.debug(`Processing phase ${TxExecutionPhase[phase]} for tx ${context.txHash}`, {
|
|
159
|
+
txHash: context.txHash.toString(),
|
|
160
160
|
phase: TxExecutionPhase[phase],
|
|
161
161
|
callRequests: callRequests.length,
|
|
162
162
|
executionRequests: executionRequests.length,
|
|
@@ -203,7 +203,7 @@ let PublicTxSimulator = (() => {
|
|
|
203
203
|
/*transactionFee=*/ context.getTransactionFee(phase), fnName);
|
|
204
204
|
const gasUsed = allocatedGas.sub(result.gasLeft); // by enqueued call
|
|
205
205
|
context.consumeGas(phase, gasUsed);
|
|
206
|
-
this.log.debug(`Simulated enqueued public call consumed ${gasUsed.l2Gas} L2 gas ending with ${result.gasLeft.l2Gas} L2 gas left.`);
|
|
206
|
+
this.log.debug(`Simulated enqueued public call (${fnName}) consumed ${gasUsed.l2Gas} L2 gas ending with ${result.gasLeft.l2Gas} L2 gas left.`);
|
|
207
207
|
stateManager.traceEnqueuedCall(callRequest, executionRequest.args, result.reverted);
|
|
208
208
|
if (result.reverted) {
|
|
209
209
|
const culprit = `${executionRequest.callContext.contractAddress}:${executionRequest.callContext.functionSelector}`;
|
|
@@ -318,7 +318,7 @@ let PublicTxSimulator = (() => {
|
|
|
318
318
|
(() => {
|
|
319
319
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
320
320
|
_simulateEnqueuedCall_decorators = [trackSpan('PublicTxSimulator.simulateEnqueuedCall', (phase, context, _callRequest, executionRequest) => ({
|
|
321
|
-
[Attributes.TX_HASH]: context.
|
|
321
|
+
[Attributes.TX_HASH]: context.txHash.toString(),
|
|
322
322
|
[Attributes.TARGET_ADDRESS]: executionRequest.callContext.contractAddress.toString(),
|
|
323
323
|
[Attributes.SENDER_ADDRESS]: executionRequest.callContext.msgSender.toString(),
|
|
324
324
|
[Attributes.SIMULATOR_PHASE]: TxExecutionPhase[phase].toString(),
|
|
@@ -333,4 +333,4 @@ let PublicTxSimulator = (() => {
|
|
|
333
333
|
_a;
|
|
334
334
|
})();
|
|
335
335
|
export { PublicTxSimulator };
|
|
336
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3R4X3NpbXVsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3R4X3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUlMLHlCQUF5QixFQUl6QixnQkFBZ0IsRUFDaEIseUJBQXlCLEdBQzFCLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFlLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFxQyxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRyxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUcxQyxPQUFPLEVBQW1DLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7SUFvQjVDLGlCQUFpQjs7Ozs7c0JBQWpCLGlCQUFpQjtZQUs1QixZQUNVLEVBQTRCLEVBQzVCLFlBQTBCLEVBQ2xDLGVBQWdDLEVBQ3hCLGVBQWdDLEVBQ2hDLHFCQUE4QixLQUFLLEVBQ25DLG9CQUE2QixJQUFJO2dCQUxqQyxPQUFFLElBTkQsbURBQWlCLEVBTWxCLEVBQUUsRUFBMEI7Z0JBQzVCLGlCQUFZLEdBQVosWUFBWSxDQUFj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
|
|
336
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3R4X3NpbXVsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3R4X3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUlMLHlCQUF5QixFQUl6QixnQkFBZ0IsRUFDaEIseUJBQXlCLEdBQzFCLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFlLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFxQyxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2SCxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUcxQyxPQUFPLEVBQW1DLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7SUFvQjVDLGlCQUFpQjs7Ozs7c0JBQWpCLGlCQUFpQjtZQUs1QixZQUNVLEVBQTRCLEVBQzVCLFlBQTBCLEVBQzFCLGVBQWdDLEVBQ2hDLHFCQUE4QixLQUFLLEVBQ25DLG9CQUE2QixJQUFJLEVBQ3pDLGtCQUFtQyxrQkFBa0IsRUFBRTtnQkFML0MsT0FBRSxJQU5ELG1EQUFpQixFQU1sQixFQUFFLEVBQTBCO2dC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
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
export * from './acvm/index.js';
|
|
2
1
|
export * from './avm/index.js';
|
|
3
|
-
export * from './client/index.js';
|
|
4
2
|
export * from './common/index.js';
|
|
5
3
|
export * from './public/index.js';
|
|
6
4
|
export * from './providers/index.js';
|
|
7
5
|
export * from './stats/index.js';
|
|
6
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
package/dest/server.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './avm/index.js';
|
|
2
|
+
export * from './common/index.js';
|
|
3
|
+
export * from './public/index.js';
|
|
4
|
+
export * from './providers/index.js';
|
|
5
|
+
export * from './stats/index.js';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsa0JBQWtCLENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/simulator",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.71.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
|
-
"
|
|
6
|
+
"./common": "./dest/common.js",
|
|
7
|
+
"./server": "./dest/server.js",
|
|
7
8
|
"./client": "./dest/client/index.js",
|
|
8
|
-
"./acvm": "./dest/acvm/index.js",
|
|
9
|
-
"./errors": "./dest/common/errors.js",
|
|
10
9
|
"./public/fixtures": "./dest/public/fixtures/index.js"
|
|
11
10
|
},
|
|
12
11
|
"typedocOptions": {
|
|
@@ -61,14 +60,14 @@
|
|
|
61
60
|
]
|
|
62
61
|
},
|
|
63
62
|
"dependencies": {
|
|
64
|
-
"@aztec/circuit-types": "0.
|
|
65
|
-
"@aztec/circuits.js": "0.
|
|
66
|
-
"@aztec/foundation": "0.
|
|
67
|
-
"@aztec/noir-protocol-circuits-types": "0.
|
|
68
|
-
"@aztec/protocol-contracts": "0.
|
|
69
|
-
"@aztec/telemetry-client": "0.
|
|
70
|
-
"@aztec/types": "0.
|
|
71
|
-
"@aztec/world-state": "0.
|
|
63
|
+
"@aztec/circuit-types": "0.71.0",
|
|
64
|
+
"@aztec/circuits.js": "0.71.0",
|
|
65
|
+
"@aztec/foundation": "0.71.0",
|
|
66
|
+
"@aztec/noir-protocol-circuits-types": "0.71.0",
|
|
67
|
+
"@aztec/protocol-contracts": "0.71.0",
|
|
68
|
+
"@aztec/telemetry-client": "0.71.0",
|
|
69
|
+
"@aztec/types": "0.71.0",
|
|
70
|
+
"@aztec/world-state": "0.71.0",
|
|
72
71
|
"@noir-lang/acvm_js": "portal:../../noir/packages/acvm_js",
|
|
73
72
|
"@noir-lang/noirc_abi": "portal:../../noir/packages/noirc_abi",
|
|
74
73
|
"@noir-lang/types": "portal:../../noir/packages/types",
|
package/src/acvm/acvm.ts
CHANGED
|
@@ -16,9 +16,17 @@ import { type ORACLE_NAMES } from './oracle/index.js';
|
|
|
16
16
|
/**
|
|
17
17
|
* The callback interface for the ACIR.
|
|
18
18
|
*/
|
|
19
|
-
type ACIRCallback = Record<
|
|
19
|
+
export type ACIRCallback = Record<
|
|
20
20
|
ORACLE_NAMES,
|
|
21
|
-
(
|
|
21
|
+
(
|
|
22
|
+
...args: ForeignCallInput[]
|
|
23
|
+
) =>
|
|
24
|
+
| void
|
|
25
|
+
| Promise<void>
|
|
26
|
+
| ForeignCallOutput
|
|
27
|
+
| ForeignCallOutput[]
|
|
28
|
+
| Promise<ForeignCallOutput>
|
|
29
|
+
| Promise<ForeignCallOutput[]>
|
|
22
30
|
>;
|
|
23
31
|
|
|
24
32
|
/**
|
|
@@ -56,7 +64,16 @@ export async function acvm(
|
|
|
56
64
|
}
|
|
57
65
|
|
|
58
66
|
const result = await oracleFunction.call(callback, ...args);
|
|
59
|
-
|
|
67
|
+
|
|
68
|
+
if (typeof result === 'undefined') {
|
|
69
|
+
return [];
|
|
70
|
+
} else if (result instanceof Array && !result.every(item => typeof item === 'string')) {
|
|
71
|
+
// We are dealing with a nested array which means that we do not need it wrap it in another array as to have
|
|
72
|
+
// the nested array structure it is already "wrapped".
|
|
73
|
+
return result;
|
|
74
|
+
} else {
|
|
75
|
+
return [result] as ForeignCallOutput[];
|
|
76
|
+
}
|
|
60
77
|
} catch (err) {
|
|
61
78
|
let typedError: Error;
|
|
62
79
|
if (err instanceof Error) {
|
package/src/acvm/deserialize.ts
CHANGED
|
@@ -29,6 +29,18 @@ export function frToBoolean(fr: Fr): boolean {
|
|
|
29
29
|
return fr.toBigInt() === BigInt(1);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
/**
|
|
33
|
+
* Converts a Noir BoundedVec of Fields into an Fr array. Note that BoundedVecs are structs, and therefore translated as
|
|
34
|
+
* two separate ACVMField arrays.
|
|
35
|
+
*
|
|
36
|
+
* @param storage The array with the BoundedVec's storage (i.e. BoundedVec::storage())
|
|
37
|
+
* @param length The length of the BoundedVec (i.e. BoundedVec::len())
|
|
38
|
+
* @returns An array with the same content as the Noir version. Elements past the length are discarded.
|
|
39
|
+
*/
|
|
40
|
+
export function fromBoundedVec(storage: ACVMField[], length: ACVMField): Fr[] {
|
|
41
|
+
return storage.slice(0, frToNumber(fromACVMField(length))).map(fromACVMField);
|
|
42
|
+
}
|
|
43
|
+
|
|
32
44
|
/**
|
|
33
45
|
* Transforms a witness map to its field elements.
|
|
34
46
|
* @param witness - The witness to extract from.
|
package/src/acvm/index.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
|
4
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
5
5
|
|
|
6
6
|
import { type ACVMField } from '../acvm_types.js';
|
|
7
|
-
import { frToBoolean, frToNumber, fromACVMField } from '../deserialize.js';
|
|
7
|
+
import { frToBoolean, frToNumber, fromACVMField, fromBoundedVec } from '../deserialize.js';
|
|
8
8
|
import { toACVMField } from '../serialize.js';
|
|
9
9
|
import { type TypedOracle } from './typed_oracle.js';
|
|
10
10
|
|
|
@@ -19,25 +19,20 @@ export class Oracle {
|
|
|
19
19
|
return toACVMField(val);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
async
|
|
23
|
-
const
|
|
24
|
-
return toACVMField(
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
async packArguments(_length: ACVMField[], values: ACVMField[]): Promise<ACVMField> {
|
|
28
|
-
const packed = await this.typedOracle.packArgumentsArray(values.map(fromACVMField));
|
|
29
|
-
return toACVMField(packed);
|
|
22
|
+
async storeArrayInExecutionCache(values: ACVMField[]): Promise<ACVMField> {
|
|
23
|
+
const hash = await this.typedOracle.storeArrayInExecutionCache(values.map(fromACVMField));
|
|
24
|
+
return toACVMField(hash);
|
|
30
25
|
}
|
|
31
26
|
|
|
32
27
|
// Since the argument is a slice, noir automatically adds a length field to oracle call.
|
|
33
|
-
async
|
|
34
|
-
const
|
|
35
|
-
return toACVMField(
|
|
28
|
+
async storeInExecutionCache(_length: ACVMField[], values: ACVMField[]): Promise<ACVMField> {
|
|
29
|
+
const hash = await this.typedOracle.storeInExecutionCache(values.map(fromACVMField));
|
|
30
|
+
return toACVMField(hash);
|
|
36
31
|
}
|
|
37
32
|
|
|
38
|
-
async
|
|
39
|
-
const
|
|
40
|
-
return
|
|
33
|
+
async loadFromExecutionCache([returnsHash]: ACVMField[]): Promise<ACVMField[]> {
|
|
34
|
+
const values = await this.typedOracle.loadFromExecutionCache(fromACVMField(returnsHash));
|
|
35
|
+
return values.map(toACVMField);
|
|
41
36
|
}
|
|
42
37
|
|
|
43
38
|
async getBlockNumber(): Promise<ACVMField> {
|
|
@@ -92,19 +87,6 @@ export class Oracle {
|
|
|
92
87
|
return witness.map(toACVMField);
|
|
93
88
|
}
|
|
94
89
|
|
|
95
|
-
async getSiblingPath(
|
|
96
|
-
[blockNumber]: ACVMField[],
|
|
97
|
-
[treeId]: ACVMField[],
|
|
98
|
-
[leafIndex]: ACVMField[],
|
|
99
|
-
): Promise<ACVMField[]> {
|
|
100
|
-
const parsedBlockNumber = frToNumber(fromACVMField(blockNumber));
|
|
101
|
-
const parsedTreeId = frToNumber(fromACVMField(treeId));
|
|
102
|
-
const parsedLeafIndex = fromACVMField(leafIndex);
|
|
103
|
-
|
|
104
|
-
const path = await this.typedOracle.getSiblingPath(parsedBlockNumber, parsedTreeId, parsedLeafIndex);
|
|
105
|
-
return path.map(toACVMField);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
90
|
async getNullifierMembershipWitness(
|
|
109
91
|
[blockNumber]: ACVMField[],
|
|
110
92
|
[nullifier]: ACVMField[], // nullifier, we try to find the witness for (to prove inclusion)
|
|
@@ -268,6 +250,11 @@ export class Oracle {
|
|
|
268
250
|
return toACVMField(0);
|
|
269
251
|
}
|
|
270
252
|
|
|
253
|
+
async notifyCreatedNullifier([innerNullifier]: ACVMField[]): Promise<ACVMField> {
|
|
254
|
+
await this.typedOracle.notifyCreatedNullifier(fromACVMField(innerNullifier));
|
|
255
|
+
return toACVMField(0);
|
|
256
|
+
}
|
|
257
|
+
|
|
271
258
|
async checkNullifierExists([innerNullifier]: ACVMField[]): Promise<ACVMField> {
|
|
272
259
|
const exists = await this.typedOracle.checkNullifierExists(fromACVMField(innerNullifier));
|
|
273
260
|
return toACVMField(exists);
|
|
@@ -393,4 +380,79 @@ export class Oracle {
|
|
|
393
380
|
async syncNotes() {
|
|
394
381
|
await this.typedOracle.syncNotes();
|
|
395
382
|
}
|
|
383
|
+
|
|
384
|
+
async deliverNote(
|
|
385
|
+
[contractAddress]: ACVMField[],
|
|
386
|
+
[storageSlot]: ACVMField[],
|
|
387
|
+
[nonce]: ACVMField[],
|
|
388
|
+
content: ACVMField[],
|
|
389
|
+
[contentLength]: ACVMField[],
|
|
390
|
+
[noteHash]: ACVMField[],
|
|
391
|
+
[nullifier]: ACVMField[],
|
|
392
|
+
[txHash]: ACVMField[],
|
|
393
|
+
[recipient]: ACVMField[],
|
|
394
|
+
): Promise<ACVMField> {
|
|
395
|
+
// TODO(#10728): try-catch this block and return false if we get an exception so that the contract can decide what
|
|
396
|
+
// to do if a note fails delivery (e.g. not increment the tagging index, or add it to some pending work list).
|
|
397
|
+
// Delivery might fail due to temporary issues, such as poor node connectivity.
|
|
398
|
+
await this.typedOracle.deliverNote(
|
|
399
|
+
AztecAddress.fromString(contractAddress),
|
|
400
|
+
fromACVMField(storageSlot),
|
|
401
|
+
fromACVMField(nonce),
|
|
402
|
+
fromBoundedVec(content, contentLength),
|
|
403
|
+
fromACVMField(noteHash),
|
|
404
|
+
fromACVMField(nullifier),
|
|
405
|
+
fromACVMField(txHash),
|
|
406
|
+
AztecAddress.fromString(recipient),
|
|
407
|
+
);
|
|
408
|
+
|
|
409
|
+
return toACVMField(true);
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
async dbStore([contractAddress]: ACVMField[], [slot]: ACVMField[], values: ACVMField[]) {
|
|
413
|
+
await this.typedOracle.dbStore(
|
|
414
|
+
AztecAddress.fromField(fromACVMField(contractAddress)),
|
|
415
|
+
fromACVMField(slot),
|
|
416
|
+
values.map(fromACVMField),
|
|
417
|
+
);
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
async dbLoad(
|
|
421
|
+
[contractAddress]: ACVMField[],
|
|
422
|
+
[slot]: ACVMField[],
|
|
423
|
+
[tSize]: ACVMField[],
|
|
424
|
+
): Promise<(ACVMField | ACVMField[])[]> {
|
|
425
|
+
const values = await this.typedOracle.dbLoad(
|
|
426
|
+
AztecAddress.fromField(fromACVMField(contractAddress)),
|
|
427
|
+
fromACVMField(slot),
|
|
428
|
+
);
|
|
429
|
+
|
|
430
|
+
// We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
|
|
431
|
+
// with two fields: `some` (a boolean) and `value` (a field array in this case).
|
|
432
|
+
if (values === null) {
|
|
433
|
+
// No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
|
|
434
|
+
return [toACVMField(0), Array(frToNumber(fromACVMField(tSize))).fill(toACVMField(0))];
|
|
435
|
+
} else {
|
|
436
|
+
// Data was found so we set `some` to 1 and return it along with `value`.
|
|
437
|
+
return [toACVMField(1), values.map(toACVMField)];
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
async dbDelete([contractAddress]: ACVMField[], [slot]: ACVMField[]) {
|
|
442
|
+
await this.typedOracle.dbDelete(AztecAddress.fromField(fromACVMField(contractAddress)), fromACVMField(slot));
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
async dbCopy(
|
|
446
|
+
[contractAddress]: ACVMField[],
|
|
447
|
+
[srcSlot]: ACVMField[],
|
|
448
|
+
[dstSlot]: ACVMField[],
|
|
449
|
+
[numEntries]: ACVMField[],
|
|
450
|
+
) {
|
|
451
|
+
await this.typedOracle.dbCopy(
|
|
452
|
+
AztecAddress.fromField(fromACVMField(contractAddress)),
|
|
453
|
+
fromACVMField(srcSlot),
|
|
454
|
+
fromACVMField(dstSlot),
|
|
455
|
+
frToNumber(fromACVMField(numEntries)),
|
|
456
|
+
);
|
|
457
|
+
}
|
|
396
458
|
}
|