@aztec/simulator 0.80.0 → 0.82.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/common/db_interfaces.d.ts +30 -17
- package/dest/common/db_interfaces.d.ts.map +1 -1
- package/dest/common/db_interfaces.js +1 -1
- package/dest/common/debug_fn_name.d.ts +2 -2
- package/dest/common/debug_fn_name.d.ts.map +1 -1
- package/dest/common/message_load_oracle_inputs.d.ts +4 -0
- package/dest/common/message_load_oracle_inputs.d.ts.map +1 -1
- package/dest/common/message_load_oracle_inputs.js +9 -0
- package/dest/private/acvm/acvm.d.ts +6 -1
- package/dest/private/acvm/acvm.d.ts.map +1 -1
- package/dest/private/acvm/acvm.js +7 -13
- package/dest/private/acvm/deserialize.d.ts +19 -18
- package/dest/private/acvm/deserialize.d.ts.map +1 -1
- package/dest/private/acvm/deserialize.js +31 -23
- package/dest/private/acvm/oracle/oracle.d.ts +36 -34
- package/dest/private/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/private/acvm/oracle/oracle.js +134 -79
- package/dest/private/acvm/oracle/typed_oracle.d.ts +3 -2
- package/dest/private/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/private/acvm/oracle/typed_oracle.js +5 -2
- package/dest/private/acvm/serialize.d.ts +11 -0
- package/dest/private/acvm/serialize.d.ts.map +1 -1
- package/dest/private/acvm/serialize.js +27 -0
- package/dest/private/execution_data_provider.d.ts +15 -13
- package/dest/private/execution_data_provider.d.ts.map +1 -1
- package/dest/private/private_execution.d.ts +2 -2
- package/dest/private/private_execution.d.ts.map +1 -1
- package/dest/private/private_execution.js +4 -5
- package/dest/private/private_execution_oracle.d.ts.map +1 -1
- package/dest/private/private_execution_oracle.js +1 -1
- package/dest/private/providers/acvm_native.d.ts +6 -4
- package/dest/private/providers/acvm_native.d.ts.map +1 -1
- package/dest/private/providers/acvm_native.js +6 -3
- package/dest/private/providers/acvm_wasm.d.ts +6 -7
- package/dest/private/providers/acvm_wasm.d.ts.map +1 -1
- package/dest/private/providers/acvm_wasm.js +13 -15
- package/dest/private/providers/acvm_wasm_with_blobs.d.ts +5 -5
- package/dest/private/providers/acvm_wasm_with_blobs.d.ts.map +1 -1
- package/dest/private/providers/acvm_wasm_with_blobs.js +7 -9
- package/dest/private/providers/circuit_recording/circuit_recorder.d.ts +90 -0
- package/dest/private/providers/circuit_recording/circuit_recorder.d.ts.map +1 -0
- package/dest/private/providers/circuit_recording/circuit_recorder.js +246 -0
- package/dest/private/providers/circuit_recording/simulation_provider_recorder_wrapper.d.ts +18 -0
- package/dest/private/providers/circuit_recording/simulation_provider_recorder_wrapper.d.ts.map +1 -0
- package/dest/private/providers/circuit_recording/simulation_provider_recorder_wrapper.js +39 -0
- package/dest/private/providers/simulation_provider.d.ts +21 -7
- package/dest/private/providers/simulation_provider.d.ts.map +1 -1
- package/dest/private/simulator.d.ts +3 -2
- package/dest/private/simulator.d.ts.map +1 -1
- package/dest/private/simulator.js +2 -2
- package/dest/private/unconstrained_execution.d.ts +2 -2
- package/dest/private/unconstrained_execution.d.ts.map +1 -1
- package/dest/private/unconstrained_execution.js +1 -2
- package/dest/private/unconstrained_execution_oracle.d.ts +5 -3
- package/dest/private/unconstrained_execution_oracle.d.ts.map +1 -1
- package/dest/private/unconstrained_execution_oracle.js +9 -5
- package/dest/public/avm/avm_simulator.d.ts.map +1 -1
- package/dest/public/avm/avm_simulator.js +0 -2
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
- package/dest/public/avm/fixtures/avm_simulation_tester.js +5 -5
- package/dest/public/avm/fixtures/index.d.ts +4 -4
- package/dest/public/avm/fixtures/index.d.ts.map +1 -1
- package/dest/public/avm/fixtures/index.js +9 -6
- package/dest/public/avm/fixtures/simple_contract_data_source.d.ts +1 -2
- package/dest/public/avm/fixtures/simple_contract_data_source.d.ts.map +1 -1
- package/dest/public/avm/fixtures/simple_contract_data_source.js +0 -3
- package/dest/public/avm/journal/journal.d.ts +16 -70
- package/dest/public/avm/journal/journal.d.ts.map +1 -1
- package/dest/public/avm/journal/journal.js +88 -210
- package/dest/public/avm/journal/nullifiers.d.ts +2 -2
- package/dest/public/avm/journal/nullifiers.d.ts.map +1 -1
- package/dest/public/avm/journal/public_storage.d.ts +2 -2
- package/dest/public/avm/journal/public_storage.d.ts.map +1 -1
- package/dest/public/avm/test_utils.d.ts +10 -13
- package/dest/public/avm/test_utils.d.ts.map +1 -1
- package/dest/public/avm/test_utils.js +8 -13
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +3 -3
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +10 -9
- package/dest/public/hinting_db_sources.d.ts +19 -0
- package/dest/public/hinting_db_sources.d.ts.map +1 -0
- package/dest/public/hinting_db_sources.js +36 -0
- package/dest/public/public_db_sources.d.ts +46 -22
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +82 -27
- package/dest/public/public_processor/public_processor.d.ts +5 -5
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +21 -20
- package/dest/public/public_tx_simulator/public_tx_context.d.ts +9 -14
- package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.js +15 -19
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +9 -6
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +28 -14
- package/dest/public/side_effect_trace.d.ts +6 -22
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +11 -70
- package/dest/public/side_effect_trace_interface.d.ts +5 -19
- package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
- package/dest/testing.d.ts +2 -0
- package/dest/testing.d.ts.map +1 -0
- package/dest/testing.js +1 -0
- package/package.json +15 -14
- package/src/common/db_interfaces.ts +32 -18
- package/src/common/debug_fn_name.ts +2 -2
- package/src/common/message_load_oracle_inputs.ts +8 -0
- package/src/private/acvm/acvm.ts +8 -24
- package/src/private/acvm/deserialize.ts +35 -29
- package/src/private/acvm/oracle/oracle.ts +171 -129
- package/src/private/acvm/oracle/typed_oracle.ts +7 -3
- package/src/private/acvm/serialize.ts +28 -0
- package/src/private/execution_data_provider.ts +19 -14
- package/src/private/private_execution.ts +11 -7
- package/src/private/private_execution_oracle.ts +5 -1
- package/src/private/providers/acvm_native.ts +17 -6
- package/src/private/providers/acvm_wasm.ts +27 -20
- package/src/private/providers/acvm_wasm_with_blobs.ts +15 -12
- package/src/private/providers/circuit_recording/circuit_recorder.ts +283 -0
- package/src/private/providers/circuit_recording/simulation_provider_recorder_wrapper.ts +82 -0
- package/src/private/providers/simulation_provider.ts +30 -5
- package/src/private/simulator.ts +5 -3
- package/src/private/unconstrained_execution.ts +8 -4
- package/src/private/unconstrained_execution_oracle.ts +15 -9
- package/src/public/avm/avm_simulator.ts +0 -2
- package/src/public/avm/fixtures/avm_simulation_tester.ts +8 -5
- package/src/public/avm/fixtures/index.ts +16 -10
- package/src/public/avm/fixtures/simple_contract_data_source.ts +1 -10
- package/src/public/avm/journal/journal.ts +119 -353
- package/src/public/avm/journal/nullifiers.ts +2 -2
- package/src/public/avm/journal/public_storage.ts +2 -2
- package/src/public/avm/test_utils.ts +20 -29
- package/src/public/fixtures/public_tx_simulation_tester.ts +9 -12
- package/src/public/hinting_db_sources.ts +71 -0
- package/src/public/public_db_sources.ts +134 -32
- package/src/public/public_processor/public_processor.ts +22 -21
- package/src/public/public_tx_simulator/public_tx_context.ts +30 -38
- package/src/public/public_tx_simulator/public_tx_simulator.ts +47 -17
- package/src/public/side_effect_trace.ts +8 -172
- package/src/public/side_effect_trace_interface.ts +4 -55
- package/src/testing.ts +1 -0
- package/dest/public/avm/bytecode_utils.d.ts +0 -5
- package/dest/public/avm/bytecode_utils.d.ts.map +0 -1
- package/dest/public/avm/bytecode_utils.js +0 -17
- package/src/public/avm/bytecode_utils.ts +0 -17
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
1
|
+
import { Fr, Point } from '@aztec/foundation/fields';
|
|
2
2
|
import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
3
3
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
4
|
import { ContractClassLog, LogWithTxData } from '@aztec/stdlib/logs';
|
|
5
5
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
6
|
-
import {
|
|
7
|
-
import { toACVMField, toACVMFieldSingleOrArray } from '../serialize.js';
|
|
6
|
+
import { fromBoundedVec, fromUintArray, fromUintBoundedVec } from '../deserialize.js';
|
|
7
|
+
import { bufferToBoundedVec, toACVMField, toACVMFieldSingleOrArray } from '../serialize.js';
|
|
8
8
|
/**
|
|
9
9
|
* A data source that has all the apis required by Aztec.nr.
|
|
10
10
|
*/ export class Oracle {
|
|
@@ -14,40 +14,49 @@ import { toACVMField, toACVMFieldSingleOrArray } from '../serialize.js';
|
|
|
14
14
|
}
|
|
15
15
|
getRandomField() {
|
|
16
16
|
const val = this.typedOracle.getRandomField();
|
|
17
|
-
return
|
|
17
|
+
return Promise.resolve([
|
|
18
|
+
toACVMField(val)
|
|
19
|
+
]);
|
|
18
20
|
}
|
|
19
21
|
// Since the argument is a slice, noir automatically adds a length field to oracle call.
|
|
20
22
|
async storeInExecutionCache(_length, values) {
|
|
21
|
-
const hash = await this.typedOracle.storeInExecutionCache(values.map(
|
|
22
|
-
return
|
|
23
|
+
const hash = await this.typedOracle.storeInExecutionCache(values.map(Fr.fromString));
|
|
24
|
+
return [
|
|
25
|
+
toACVMField(hash)
|
|
26
|
+
];
|
|
23
27
|
}
|
|
24
28
|
async loadFromExecutionCache([returnsHash]) {
|
|
25
|
-
const values = await this.typedOracle.loadFromExecutionCache(
|
|
26
|
-
return
|
|
29
|
+
const values = await this.typedOracle.loadFromExecutionCache(Fr.fromString(returnsHash));
|
|
30
|
+
return [
|
|
31
|
+
values.map(toACVMField)
|
|
32
|
+
];
|
|
27
33
|
}
|
|
28
34
|
async getBlockNumber() {
|
|
29
|
-
return
|
|
35
|
+
return [
|
|
36
|
+
toACVMField(await this.typedOracle.getBlockNumber())
|
|
37
|
+
];
|
|
30
38
|
}
|
|
31
39
|
async getContractAddress() {
|
|
32
|
-
return
|
|
40
|
+
return [
|
|
41
|
+
toACVMField(await this.typedOracle.getContractAddress())
|
|
42
|
+
];
|
|
33
43
|
}
|
|
34
44
|
async getVersion() {
|
|
35
|
-
return
|
|
45
|
+
return [
|
|
46
|
+
toACVMField(await this.typedOracle.getVersion())
|
|
47
|
+
];
|
|
36
48
|
}
|
|
37
49
|
async getChainId() {
|
|
38
|
-
return toACVMField(await this.typedOracle.getChainId());
|
|
39
|
-
}
|
|
40
|
-
async getKeyValidationRequest([pkMHash]) {
|
|
41
|
-
const { pkM, skApp } = await this.typedOracle.getKeyValidationRequest(fromACVMField(pkMHash));
|
|
42
50
|
return [
|
|
43
|
-
toACVMField(
|
|
44
|
-
toACVMField(pkM.y),
|
|
45
|
-
toACVMField(pkM.isInfinite),
|
|
46
|
-
toACVMField(skApp)
|
|
51
|
+
toACVMField(await this.typedOracle.getChainId())
|
|
47
52
|
];
|
|
48
53
|
}
|
|
54
|
+
async getKeyValidationRequest([pkMHash]) {
|
|
55
|
+
const keyValidationRequest = await this.typedOracle.getKeyValidationRequest(Fr.fromString(pkMHash));
|
|
56
|
+
return keyValidationRequest.toFields().map(toACVMField);
|
|
57
|
+
}
|
|
49
58
|
async getContractInstance([address]) {
|
|
50
|
-
const instance = await this.typedOracle.getContractInstance(AztecAddress.fromField(
|
|
59
|
+
const instance = await this.typedOracle.getContractInstance(AztecAddress.fromField(Fr.fromString(address)));
|
|
51
60
|
return [
|
|
52
61
|
instance.salt,
|
|
53
62
|
instance.deployer,
|
|
@@ -57,44 +66,47 @@ import { toACVMField, toACVMFieldSingleOrArray } from '../serialize.js';
|
|
|
57
66
|
].map(toACVMField);
|
|
58
67
|
}
|
|
59
68
|
async getMembershipWitness([blockNumber], [treeId], [leafValue]) {
|
|
60
|
-
const parsedBlockNumber =
|
|
61
|
-
const parsedTreeId =
|
|
62
|
-
const parsedLeafValue =
|
|
69
|
+
const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
|
|
70
|
+
const parsedTreeId = Fr.fromString(treeId).toNumber();
|
|
71
|
+
const parsedLeafValue = Fr.fromString(leafValue);
|
|
63
72
|
const witness = await this.typedOracle.getMembershipWitness(parsedBlockNumber, parsedTreeId, parsedLeafValue);
|
|
64
73
|
if (!witness) {
|
|
65
74
|
throw new Error(`Leaf ${leafValue} not found in the tree ${MerkleTreeId[parsedTreeId]} at block ${parsedBlockNumber}.`);
|
|
66
75
|
}
|
|
67
|
-
return
|
|
76
|
+
return [
|
|
77
|
+
toACVMField(witness[0]),
|
|
78
|
+
witness.slice(1).map(toACVMField)
|
|
79
|
+
];
|
|
68
80
|
}
|
|
69
81
|
async getNullifierMembershipWitness([blockNumber], [nullifier]) {
|
|
70
|
-
const parsedBlockNumber =
|
|
71
|
-
const parsedNullifier =
|
|
82
|
+
const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
|
|
83
|
+
const parsedNullifier = Fr.fromString(nullifier);
|
|
72
84
|
const witness = await this.typedOracle.getNullifierMembershipWitness(parsedBlockNumber, parsedNullifier);
|
|
73
85
|
if (!witness) {
|
|
74
86
|
throw new Error(`Nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`);
|
|
75
87
|
}
|
|
76
|
-
return witness.
|
|
88
|
+
return witness.toNoirRepresentation();
|
|
77
89
|
}
|
|
78
90
|
async getLowNullifierMembershipWitness([blockNumber], [nullifier]) {
|
|
79
|
-
const parsedBlockNumber =
|
|
80
|
-
const parsedNullifier =
|
|
91
|
+
const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
|
|
92
|
+
const parsedNullifier = Fr.fromString(nullifier);
|
|
81
93
|
const witness = await this.typedOracle.getLowNullifierMembershipWitness(parsedBlockNumber, parsedNullifier);
|
|
82
94
|
if (!witness) {
|
|
83
95
|
throw new Error(`Low nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`);
|
|
84
96
|
}
|
|
85
|
-
return witness.
|
|
97
|
+
return witness.toNoirRepresentation();
|
|
86
98
|
}
|
|
87
|
-
async
|
|
88
|
-
const parsedBlockNumber =
|
|
89
|
-
const parsedLeafSlot =
|
|
90
|
-
const witness = await this.typedOracle.
|
|
99
|
+
async getPublicDataWitness([blockNumber], [leafSlot]) {
|
|
100
|
+
const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
|
|
101
|
+
const parsedLeafSlot = Fr.fromString(leafSlot);
|
|
102
|
+
const witness = await this.typedOracle.getPublicDataWitness(parsedBlockNumber, parsedLeafSlot);
|
|
91
103
|
if (!witness) {
|
|
92
104
|
throw new Error(`Public data witness not found for slot ${parsedLeafSlot} at block ${parsedBlockNumber}.`);
|
|
93
105
|
}
|
|
94
|
-
return witness.
|
|
106
|
+
return witness.toNoirRepresentation();
|
|
95
107
|
}
|
|
96
108
|
async getBlockHeader([blockNumber]) {
|
|
97
|
-
const parsedBlockNumber =
|
|
109
|
+
const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
|
|
98
110
|
const header = await this.typedOracle.getBlockHeader(parsedBlockNumber);
|
|
99
111
|
if (!header) {
|
|
100
112
|
throw new Error(`Block header not found for block ${parsedBlockNumber}.`);
|
|
@@ -102,23 +114,27 @@ import { toACVMField, toACVMFieldSingleOrArray } from '../serialize.js';
|
|
|
102
114
|
return header.toFields().map(toACVMField);
|
|
103
115
|
}
|
|
104
116
|
async getAuthWitness([messageHash]) {
|
|
105
|
-
const messageHashField =
|
|
117
|
+
const messageHashField = Fr.fromString(messageHash);
|
|
106
118
|
const witness = await this.typedOracle.getAuthWitness(messageHashField);
|
|
107
119
|
if (!witness) {
|
|
108
120
|
throw new Error(`Unknown auth witness for message hash ${messageHashField}`);
|
|
109
121
|
}
|
|
110
|
-
return
|
|
122
|
+
return [
|
|
123
|
+
witness.map(toACVMField)
|
|
124
|
+
];
|
|
111
125
|
}
|
|
112
126
|
async getPublicKeysAndPartialAddress([address]) {
|
|
113
|
-
const parsedAddress = AztecAddress.fromField(
|
|
127
|
+
const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
|
|
114
128
|
const { publicKeys, partialAddress } = await this.typedOracle.getCompleteAddress(parsedAddress);
|
|
115
129
|
return [
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
130
|
+
[
|
|
131
|
+
...publicKeys.toFields(),
|
|
132
|
+
partialAddress
|
|
133
|
+
].map(toACVMField)
|
|
134
|
+
];
|
|
119
135
|
}
|
|
120
136
|
async getNotes([storageSlot], [numSelects], selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, [limit], [offset], [status], [returnSize]) {
|
|
121
|
-
const noteDatas = await this.typedOracle.getNotes(
|
|
137
|
+
const noteDatas = await this.typedOracle.getNotes(Fr.fromString(storageSlot), +numSelects, selectByIndexes.map((s)=>+s), selectByOffsets.map((s)=>+s), selectByLengths.map((s)=>+s), selectValues.map(Fr.fromString), selectComparators.map((s)=>+s), sortByIndexes.map((s)=>+s), sortByOffsets.map((s)=>+s), sortByLengths.map((s)=>+s), sortOrder.map((s)=>+s), +limit, +offset, +status);
|
|
122
138
|
const noteLength = noteDatas?.[0]?.note.items.length ?? 0;
|
|
123
139
|
if (!noteDatas.every(({ note })=>noteLength === note.items.length)) {
|
|
124
140
|
throw new Error('Notes should all be the same length.');
|
|
@@ -144,83 +160,104 @@ import { toACVMField, toACVMFieldSingleOrArray } from '../serialize.js';
|
|
|
144
160
|
throw new Error(`Return data size too big. Maximum ${returnFieldSize} fields. Got ${flattenData.length}.`);
|
|
145
161
|
}
|
|
146
162
|
const paddedZeros = Array(returnFieldSize - returnData.length).fill(toACVMField(0));
|
|
147
|
-
return
|
|
163
|
+
return [
|
|
164
|
+
returnData.concat(paddedZeros)
|
|
165
|
+
];
|
|
148
166
|
}
|
|
149
167
|
notifyCreatedNote([storageSlot], [noteTypeId], note, [noteHash], [counter]) {
|
|
150
|
-
this.typedOracle.notifyCreatedNote(
|
|
151
|
-
return
|
|
168
|
+
this.typedOracle.notifyCreatedNote(Fr.fromString(storageSlot), NoteSelector.fromField(Fr.fromString(noteTypeId)), note.map(Fr.fromString), Fr.fromString(noteHash), +counter);
|
|
169
|
+
return Promise.resolve([]);
|
|
152
170
|
}
|
|
153
171
|
async notifyNullifiedNote([innerNullifier], [noteHash], [counter]) {
|
|
154
|
-
await this.typedOracle.notifyNullifiedNote(
|
|
155
|
-
return
|
|
172
|
+
await this.typedOracle.notifyNullifiedNote(Fr.fromString(innerNullifier), Fr.fromString(noteHash), +counter);
|
|
173
|
+
return [];
|
|
156
174
|
}
|
|
157
175
|
async notifyCreatedNullifier([innerNullifier]) {
|
|
158
|
-
await this.typedOracle.notifyCreatedNullifier(
|
|
159
|
-
return
|
|
176
|
+
await this.typedOracle.notifyCreatedNullifier(Fr.fromString(innerNullifier));
|
|
177
|
+
return [];
|
|
160
178
|
}
|
|
161
179
|
async checkNullifierExists([innerNullifier]) {
|
|
162
|
-
const exists = await this.typedOracle.checkNullifierExists(
|
|
163
|
-
return
|
|
180
|
+
const exists = await this.typedOracle.checkNullifierExists(Fr.fromString(innerNullifier));
|
|
181
|
+
return [
|
|
182
|
+
toACVMField(exists)
|
|
183
|
+
];
|
|
164
184
|
}
|
|
165
185
|
async getL1ToL2MembershipWitness([contractAddress], [messageHash], [secret]) {
|
|
166
|
-
const message = await this.typedOracle.getL1ToL2MembershipWitness(AztecAddress.fromString(contractAddress),
|
|
167
|
-
return message.
|
|
186
|
+
const message = await this.typedOracle.getL1ToL2MembershipWitness(AztecAddress.fromString(contractAddress), Fr.fromString(messageHash), Fr.fromString(secret));
|
|
187
|
+
return message.toNoirRepresentation();
|
|
168
188
|
}
|
|
169
189
|
async storageRead([contractAddress], [startStorageSlot], [blockNumber], [numberOfElements]) {
|
|
170
|
-
const values = await this.typedOracle.storageRead(new AztecAddress(
|
|
171
|
-
return
|
|
190
|
+
const values = await this.typedOracle.storageRead(new AztecAddress(Fr.fromString(contractAddress)), Fr.fromString(startStorageSlot), +blockNumber, +numberOfElements);
|
|
191
|
+
return [
|
|
192
|
+
values.map(toACVMField)
|
|
193
|
+
];
|
|
172
194
|
}
|
|
173
195
|
async storageWrite([startStorageSlot], values) {
|
|
174
|
-
const newValues = await this.typedOracle.storageWrite(
|
|
196
|
+
const newValues = await this.typedOracle.storageWrite(Fr.fromString(startStorageSlot), values.map(Fr.fromString));
|
|
175
197
|
return newValues.map(toACVMField);
|
|
176
198
|
}
|
|
177
199
|
notifyCreatedContractClassLog([contractAddress], message, [counter]) {
|
|
178
|
-
const logPayload = message.map(
|
|
179
|
-
const log = new ContractClassLog(new AztecAddress(
|
|
200
|
+
const logPayload = message.map(Fr.fromString);
|
|
201
|
+
const log = new ContractClassLog(new AztecAddress(Fr.fromString(contractAddress)), logPayload);
|
|
180
202
|
this.typedOracle.notifyCreatedContractClassLog(log, +counter);
|
|
203
|
+
return Promise.resolve([]);
|
|
181
204
|
}
|
|
182
205
|
debugLog(message, _ignoredFieldsSize, fields) {
|
|
183
|
-
const messageStr = message.map((acvmField)=>String.fromCharCode(
|
|
184
|
-
const fieldsFr = fields.map(
|
|
206
|
+
const messageStr = message.map((acvmField)=>String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
|
|
207
|
+
const fieldsFr = fields.map(Fr.fromString);
|
|
185
208
|
this.typedOracle.debugLog(messageStr, fieldsFr);
|
|
209
|
+
return Promise.resolve([]);
|
|
186
210
|
}
|
|
187
211
|
async callPrivateFunction([contractAddress], [functionSelector], [argsHash], [sideEffectCounter], [isStaticCall]) {
|
|
188
|
-
const { endSideEffectCounter, returnsHash } = await this.typedOracle.callPrivateFunction(AztecAddress.fromField(
|
|
212
|
+
const { endSideEffectCounter, returnsHash } = await this.typedOracle.callPrivateFunction(AztecAddress.fromField(Fr.fromString(contractAddress)), FunctionSelector.fromField(Fr.fromString(functionSelector)), Fr.fromString(argsHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
|
|
189
213
|
return [
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
214
|
+
[
|
|
215
|
+
endSideEffectCounter,
|
|
216
|
+
returnsHash
|
|
217
|
+
].map(toACVMField)
|
|
218
|
+
];
|
|
193
219
|
}
|
|
194
220
|
async enqueuePublicFunctionCall([contractAddress], [functionSelector], [argsHash], [sideEffectCounter], [isStaticCall]) {
|
|
195
|
-
const newArgsHash = await this.typedOracle.enqueuePublicFunctionCall(AztecAddress.fromString(contractAddress), FunctionSelector.fromField(
|
|
196
|
-
return
|
|
221
|
+
const newArgsHash = await this.typedOracle.enqueuePublicFunctionCall(AztecAddress.fromString(contractAddress), FunctionSelector.fromField(Fr.fromString(functionSelector)), Fr.fromString(argsHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
|
|
222
|
+
return [
|
|
223
|
+
toACVMField(newArgsHash)
|
|
224
|
+
];
|
|
197
225
|
}
|
|
198
226
|
async setPublicTeardownFunctionCall([contractAddress], [functionSelector], [argsHash], [sideEffectCounter], [isStaticCall]) {
|
|
199
|
-
const newArgsHash = await this.typedOracle.setPublicTeardownFunctionCall(AztecAddress.fromString(contractAddress), FunctionSelector.fromField(
|
|
200
|
-
return
|
|
227
|
+
const newArgsHash = await this.typedOracle.setPublicTeardownFunctionCall(AztecAddress.fromString(contractAddress), FunctionSelector.fromField(Fr.fromString(functionSelector)), Fr.fromString(argsHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
|
|
228
|
+
return [
|
|
229
|
+
toACVMField(newArgsHash)
|
|
230
|
+
];
|
|
201
231
|
}
|
|
202
232
|
notifySetMinRevertibleSideEffectCounter([minRevertibleSideEffectCounter]) {
|
|
203
|
-
this.typedOracle.notifySetMinRevertibleSideEffectCounter(
|
|
233
|
+
this.typedOracle.notifySetMinRevertibleSideEffectCounter(Fr.fromString(minRevertibleSideEffectCounter).toNumber());
|
|
234
|
+
return Promise.resolve([]);
|
|
204
235
|
}
|
|
205
236
|
async getIndexedTaggingSecretAsSender([sender], [recipient]) {
|
|
206
237
|
const taggingSecret = await this.typedOracle.getIndexedTaggingSecretAsSender(AztecAddress.fromString(sender), AztecAddress.fromString(recipient));
|
|
207
|
-
return
|
|
238
|
+
return [
|
|
239
|
+
taggingSecret.toFields().map(toACVMField)
|
|
240
|
+
];
|
|
208
241
|
}
|
|
209
242
|
async incrementAppTaggingSecretIndexAsSender([sender], [recipient]) {
|
|
210
243
|
await this.typedOracle.incrementAppTaggingSecretIndexAsSender(AztecAddress.fromString(sender), AztecAddress.fromString(recipient));
|
|
244
|
+
return [];
|
|
211
245
|
}
|
|
212
246
|
async syncNotes() {
|
|
213
247
|
await this.typedOracle.syncNotes();
|
|
248
|
+
return [];
|
|
214
249
|
}
|
|
215
250
|
async deliverNote([contractAddress], [storageSlot], [nonce], content, [contentLength], [noteHash], [nullifier], [txHash], [recipient]) {
|
|
216
251
|
// TODO(#10728): try-catch this block and return false if we get an exception so that the contract can decide what
|
|
217
252
|
// to do if a note fails delivery (e.g. not increment the tagging index, or add it to some pending work list).
|
|
218
253
|
// Delivery might fail due to temporary issues, such as poor node connectivity.
|
|
219
|
-
await this.typedOracle.deliverNote(AztecAddress.fromString(contractAddress),
|
|
220
|
-
return
|
|
254
|
+
await this.typedOracle.deliverNote(AztecAddress.fromString(contractAddress), Fr.fromString(storageSlot), Fr.fromString(nonce), fromBoundedVec(content, contentLength), Fr.fromString(noteHash), Fr.fromString(nullifier), Fr.fromString(txHash), AztecAddress.fromString(recipient));
|
|
255
|
+
return [
|
|
256
|
+
toACVMField(true)
|
|
257
|
+
];
|
|
221
258
|
}
|
|
222
259
|
async getLogByTag([tag]) {
|
|
223
|
-
const log = await this.typedOracle.getLogByTag(
|
|
260
|
+
const log = await this.typedOracle.getLogByTag(Fr.fromString(tag));
|
|
224
261
|
if (log == null) {
|
|
225
262
|
return [
|
|
226
263
|
toACVMField(0),
|
|
@@ -234,17 +271,18 @@ import { toACVMField, toACVMFieldSingleOrArray } from '../serialize.js';
|
|
|
234
271
|
}
|
|
235
272
|
}
|
|
236
273
|
async storeCapsule([contractAddress], [slot], capsule) {
|
|
237
|
-
await this.typedOracle.storeCapsule(AztecAddress.fromField(
|
|
274
|
+
await this.typedOracle.storeCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), capsule.map(Fr.fromString));
|
|
275
|
+
return [];
|
|
238
276
|
}
|
|
239
277
|
async loadCapsule([contractAddress], [slot], [tSize]) {
|
|
240
|
-
const values = await this.typedOracle.loadCapsule(AztecAddress.fromField(
|
|
278
|
+
const values = await this.typedOracle.loadCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot));
|
|
241
279
|
// We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
|
|
242
280
|
// with two fields: `some` (a boolean) and `value` (a field array in this case).
|
|
243
281
|
if (values === null) {
|
|
244
282
|
// No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
|
|
245
283
|
return [
|
|
246
284
|
toACVMField(0),
|
|
247
|
-
Array(
|
|
285
|
+
Array(Fr.fromString(tSize).toNumber()).fill(toACVMField(0))
|
|
248
286
|
];
|
|
249
287
|
} else {
|
|
250
288
|
// Data was found so we set `some` to 1 and return it along with `value`.
|
|
@@ -255,9 +293,26 @@ import { toACVMField, toACVMFieldSingleOrArray } from '../serialize.js';
|
|
|
255
293
|
}
|
|
256
294
|
}
|
|
257
295
|
async deleteCapsule([contractAddress], [slot]) {
|
|
258
|
-
await this.typedOracle.deleteCapsule(AztecAddress.fromField(
|
|
296
|
+
await this.typedOracle.deleteCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot));
|
|
297
|
+
return [];
|
|
259
298
|
}
|
|
260
299
|
async copyCapsule([contractAddress], [srcSlot], [dstSlot], [numEntries]) {
|
|
261
|
-
await this.typedOracle.copyCapsule(AztecAddress.fromField(
|
|
300
|
+
await this.typedOracle.copyCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(srcSlot), Fr.fromString(dstSlot), Fr.fromString(numEntries).toNumber());
|
|
301
|
+
return [];
|
|
302
|
+
}
|
|
303
|
+
async aes128Decrypt(ciphertextBVecStorage, [ciphertextLength], iv, symKey) {
|
|
304
|
+
const ciphertext = fromUintBoundedVec(ciphertextBVecStorage, ciphertextLength, 8);
|
|
305
|
+
const ivBuffer = fromUintArray(iv, 8);
|
|
306
|
+
const symKeyBuffer = fromUintArray(symKey, 8);
|
|
307
|
+
const plaintext = await this.typedOracle.aes128Decrypt(ciphertext, ivBuffer, symKeyBuffer);
|
|
308
|
+
return bufferToBoundedVec(plaintext, ciphertextBVecStorage.length);
|
|
309
|
+
}
|
|
310
|
+
async getSharedSecret([address], [ephPKField0], [ephPKField1], [ephPKField2]) {
|
|
311
|
+
const secret = await this.typedOracle.getSharedSecret(AztecAddress.fromField(Fr.fromString(address)), Point.fromFields([
|
|
312
|
+
ephPKField0,
|
|
313
|
+
ephPKField1,
|
|
314
|
+
ephPKField2
|
|
315
|
+
].map(Fr.fromString)));
|
|
316
|
+
return secret.toFields().map(toACVMField);
|
|
262
317
|
}
|
|
263
318
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
/// <reference types="node" resolution-mode="require"/>
|
|
3
3
|
import type { L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/constants';
|
|
4
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
4
|
+
import { Fr, Point } from '@aztec/foundation/fields';
|
|
5
5
|
import type { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
6
6
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
7
|
import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
|
|
@@ -47,7 +47,7 @@ export declare abstract class TypedOracle {
|
|
|
47
47
|
getContractInstance(_address: AztecAddress): Promise<ContractInstance>;
|
|
48
48
|
getMembershipWitness(_blockNumber: number, _treeId: MerkleTreeId, _leafValue: Fr): Promise<Fr[] | undefined>;
|
|
49
49
|
getNullifierMembershipWitness(_blockNumber: number, _nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
|
|
50
|
-
|
|
50
|
+
getPublicDataWitness(_blockNumber: number, _leafSlot: Fr): Promise<PublicDataWitness | undefined>;
|
|
51
51
|
getLowNullifierMembershipWitness(_blockNumber: number, _nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
|
|
52
52
|
getBlockHeader(_blockNumber: number): Promise<BlockHeader | undefined>;
|
|
53
53
|
getCompleteAddress(_account: AztecAddress): Promise<CompleteAddress>;
|
|
@@ -79,5 +79,6 @@ export declare abstract class TypedOracle {
|
|
|
79
79
|
deleteCapsule(_contractAddress: AztecAddress, _key: Fr): Promise<void>;
|
|
80
80
|
copyCapsule(_contractAddress: AztecAddress, _srcKey: Fr, _dstKey: Fr, _numEntries: number): Promise<void>;
|
|
81
81
|
aes128Decrypt(_ciphertext: Buffer, _iv: Buffer, _symKey: Buffer): Promise<Buffer>;
|
|
82
|
+
getSharedSecret(_address: AztecAddress, _ephPk: Point): Promise<Point>;
|
|
82
83
|
}
|
|
83
84
|
//# sourceMappingURL=typed_oracle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed_oracle.d.ts","sourceRoot":"","sources":["../../../../src/private/acvm/oracle/typed_oracle.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"typed_oracle.d.ts","sourceRoot":"","sources":["../../../../src/private/acvm/oracle/typed_oracle.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,8 +42,8 @@ class OracleMethodNotAvailableError extends Error {
|
|
|
42
42
|
getNullifierMembershipWitness(_blockNumber, _nullifier) {
|
|
43
43
|
return Promise.reject(new OracleMethodNotAvailableError('getNullifierMembershipWitness'));
|
|
44
44
|
}
|
|
45
|
-
|
|
46
|
-
return Promise.reject(new OracleMethodNotAvailableError('
|
|
45
|
+
getPublicDataWitness(_blockNumber, _leafSlot) {
|
|
46
|
+
return Promise.reject(new OracleMethodNotAvailableError('getPublicDataWitness'));
|
|
47
47
|
}
|
|
48
48
|
getLowNullifierMembershipWitness(_blockNumber, _nullifier) {
|
|
49
49
|
return Promise.reject(new OracleMethodNotAvailableError('getLowNullifierMembershipWitness'));
|
|
@@ -129,4 +129,7 @@ class OracleMethodNotAvailableError extends Error {
|
|
|
129
129
|
aes128Decrypt(_ciphertext, _iv, _symKey) {
|
|
130
130
|
return Promise.reject(new OracleMethodNotAvailableError('aes128Decrypt'));
|
|
131
131
|
}
|
|
132
|
+
getSharedSecret(_address, _ephPk) {
|
|
133
|
+
return Promise.reject(new OracleMethodNotAvailableError('getSharedSecret'));
|
|
134
|
+
}
|
|
132
135
|
}
|
|
@@ -21,4 +21,15 @@ export declare function toACVMFieldSingleOrArray(value: Fr | Fr[]): string | str
|
|
|
21
21
|
* @returns The witness.
|
|
22
22
|
*/
|
|
23
23
|
export declare function toACVMWitness(witnessStartIndex: number, fields: Parameters<typeof toACVMField>[0][]): Map<number, string>;
|
|
24
|
+
export declare function bufferToU8Array(buffer: Buffer): ACVMField[];
|
|
25
|
+
export declare function bufferToBoundedVec(buffer: Buffer, maxLen: number): [ACVMField[], ACVMField];
|
|
26
|
+
/**
|
|
27
|
+
* Converts a ForeignCallArray into a tuple which represents a nr BoundedVec.
|
|
28
|
+
* If the input array is shorter than the maxLen, it pads the result with zeros,
|
|
29
|
+
* so that nr can correctly coerce this result into a BoundedVec.
|
|
30
|
+
* @param bVecStorage - The array underlying the BoundedVec.
|
|
31
|
+
* @param maxLen - the max length of the BoundedVec.
|
|
32
|
+
* @returns a tuple representing a BoundedVec.
|
|
33
|
+
*/
|
|
34
|
+
export declare function arrayToBoundedVec(bVecStorage: ACVMField[], maxLen: number): [ACVMField[], ACVMField];
|
|
24
35
|
//# sourceMappingURL=serialize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/private/acvm/serialize.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAgBjD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,YAAY,GAAG,UAAU,GAAG,EAAE,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GACrF,SAAS,CAYX;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,qBAExD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,uBAKnG"}
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/private/acvm/serialize.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAgBjD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,YAAY,GAAG,UAAU,GAAG,EAAE,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GACrF,SAAS,CAYX;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,qBAExD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,uBAKnG;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,CAE3D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,CAG3F;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,CASpG"}
|
|
@@ -44,3 +44,30 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
44
44
|
return witness;
|
|
45
45
|
}, new Map());
|
|
46
46
|
}
|
|
47
|
+
export function bufferToU8Array(buffer) {
|
|
48
|
+
return Array.from(buffer).map((byte)=>toACVMField(BigInt(byte)));
|
|
49
|
+
}
|
|
50
|
+
export function bufferToBoundedVec(buffer, maxLen) {
|
|
51
|
+
const u8Array = bufferToU8Array(buffer);
|
|
52
|
+
return arrayToBoundedVec(u8Array, maxLen);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Converts a ForeignCallArray into a tuple which represents a nr BoundedVec.
|
|
56
|
+
* If the input array is shorter than the maxLen, it pads the result with zeros,
|
|
57
|
+
* so that nr can correctly coerce this result into a BoundedVec.
|
|
58
|
+
* @param bVecStorage - The array underlying the BoundedVec.
|
|
59
|
+
* @param maxLen - the max length of the BoundedVec.
|
|
60
|
+
* @returns a tuple representing a BoundedVec.
|
|
61
|
+
*/ export function arrayToBoundedVec(bVecStorage, maxLen) {
|
|
62
|
+
if (bVecStorage.length > maxLen) {
|
|
63
|
+
throw new Error(`Array of length ${bVecStorage.length} larger than maxLen ${maxLen}`);
|
|
64
|
+
}
|
|
65
|
+
const lengthDiff = maxLen - bVecStorage.length;
|
|
66
|
+
const zeroPaddingArray = Array(lengthDiff).fill(toACVMField(BigInt(0)));
|
|
67
|
+
const storage = bVecStorage.concat(zeroPaddingArray);
|
|
68
|
+
const len = toACVMField(BigInt(bVecStorage.length));
|
|
69
|
+
return [
|
|
70
|
+
storage,
|
|
71
|
+
len
|
|
72
|
+
];
|
|
73
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Fr } from '@aztec/foundation/fields';
|
|
2
|
-
import type { FunctionArtifact, FunctionSelector } from '@aztec/stdlib/abi';
|
|
1
|
+
import type { Fr, Point } from '@aztec/foundation/fields';
|
|
2
|
+
import type { FunctionArtifact, FunctionArtifactWithContractName, FunctionSelector } from '@aztec/stdlib/abi';
|
|
3
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
4
|
import type { L2Block } from '@aztec/stdlib/block';
|
|
5
5
|
import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
|
|
@@ -8,7 +8,7 @@ import { IndexedTaggingSecret, LogWithTxData, TxScopedL2Log } from '@aztec/stdli
|
|
|
8
8
|
import type { NoteStatus } from '@aztec/stdlib/note';
|
|
9
9
|
import { type MerkleTreeId, type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
|
|
10
10
|
import type { BlockHeader } from '@aztec/stdlib/tx';
|
|
11
|
-
import type {
|
|
11
|
+
import type { CommitmentsDBInterface } from '../common/db_interfaces.js';
|
|
12
12
|
import type { NoteData } from './acvm/index.js';
|
|
13
13
|
/**
|
|
14
14
|
* Error thrown when a contract is not found in the database.
|
|
@@ -25,7 +25,7 @@ export declare class ContractClassNotFoundError extends Error {
|
|
|
25
25
|
/**
|
|
26
26
|
* The interface for the data layer required to perform private and unconstrained execution.
|
|
27
27
|
*/
|
|
28
|
-
export interface ExecutionDataProvider extends
|
|
28
|
+
export interface ExecutionDataProvider extends CommitmentsDBInterface {
|
|
29
29
|
/**
|
|
30
30
|
* Returns a contract instance associated with an address, if available.
|
|
31
31
|
* @param address - Address.
|
|
@@ -39,12 +39,6 @@ export interface ExecutionDataProvider extends CommitmentsDB {
|
|
|
39
39
|
* @throws An error if the account is not registered in the database.
|
|
40
40
|
*/
|
|
41
41
|
getCompleteAddress(account: AztecAddress): Promise<CompleteAddress>;
|
|
42
|
-
/**
|
|
43
|
-
* Retrieve the auth witness for a given message hash.
|
|
44
|
-
* @param messageHash - The message hash.
|
|
45
|
-
* @returns A Promise that resolves to an array of field elements representing the auth witness.
|
|
46
|
-
*/
|
|
47
|
-
getAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
|
|
48
42
|
/**
|
|
49
43
|
* Retrieve keys associated with a specific master public key and app address.
|
|
50
44
|
* @param pkMHash - The master public key hash.
|
|
@@ -72,7 +66,7 @@ export interface ExecutionDataProvider extends CommitmentsDB {
|
|
|
72
66
|
* @param selector - The corresponding function selector.
|
|
73
67
|
* @returns A Promise that resolves to a FunctionArtifact object.
|
|
74
68
|
*/
|
|
75
|
-
getFunctionArtifact(contractAddress: AztecAddress, selector: FunctionSelector): Promise<
|
|
69
|
+
getFunctionArtifact(contractAddress: AztecAddress, selector: FunctionSelector): Promise<FunctionArtifactWithContractName>;
|
|
76
70
|
/**
|
|
77
71
|
* Generates a stable function name for debug purposes.
|
|
78
72
|
* @param contractAddress - The contract address.
|
|
@@ -131,7 +125,7 @@ export interface ExecutionDataProvider extends CommitmentsDB {
|
|
|
131
125
|
* @param blockNumber - The block number at which to get the witness.
|
|
132
126
|
* @param leafSlot - The slot of the public data in the public data tree.
|
|
133
127
|
*/
|
|
134
|
-
|
|
128
|
+
getPublicDataWitness(blockNumber: number, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
|
|
135
129
|
/**
|
|
136
130
|
* Gets the storage value at the given contract storage slot.
|
|
137
131
|
*
|
|
@@ -192,10 +186,11 @@ export interface ExecutionDataProvider extends CommitmentsDB {
|
|
|
192
186
|
syncTaggedLogs(contractAddress: AztecAddress, maxBlockNumber: number, scopes?: AztecAddress[]): Promise<Map<string, TxScopedL2Log[]>>;
|
|
193
187
|
/**
|
|
194
188
|
* Processes the tagged logs returned by syncTaggedLogs by decrypting them and storing them in the database.
|
|
189
|
+
* @param contractAddress - The address of the contract that emitted the logs.
|
|
195
190
|
* @param logs - The logs to process.
|
|
196
191
|
* @param recipient - The recipient of the logs.
|
|
197
192
|
*/
|
|
198
|
-
processTaggedLogs(logs: TxScopedL2Log[], recipient: AztecAddress): Promise<void>;
|
|
193
|
+
processTaggedLogs(contractAddress: AztecAddress, logs: TxScopedL2Log[], recipient: AztecAddress): Promise<void>;
|
|
199
194
|
/**
|
|
200
195
|
* Delivers the preimage and metadata of a committed note so that it can be later requested via the `getNotes`
|
|
201
196
|
* oracle.
|
|
@@ -257,5 +252,12 @@ export interface ExecutionDataProvider extends CommitmentsDB {
|
|
|
257
252
|
* @param numEntries - The number of entries to copy.
|
|
258
253
|
*/
|
|
259
254
|
copyCapsule(contractAddress: AztecAddress, srcSlot: Fr, dstSlot: Fr, numEntries: number): Promise<void>;
|
|
255
|
+
/**
|
|
256
|
+
* Retrieves the shared secret for a given address and ephemeral public key.
|
|
257
|
+
* @param address - The address to get the secret for.
|
|
258
|
+
* @param ephPk - The ephemeral public key to get the secret for.
|
|
259
|
+
* @returns The secret for the given address.
|
|
260
|
+
*/
|
|
261
|
+
getSharedSecret(address: AztecAddress, ephPk: Point): Promise<Point>;
|
|
260
262
|
}
|
|
261
263
|
//# sourceMappingURL=execution_data_provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution_data_provider.d.ts","sourceRoot":"","sources":["../../src/private/execution_data_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"execution_data_provider.d.ts","sourceRoot":"","sources":["../../src/private/execution_data_provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
-
import { type FunctionArtifact, type FunctionSelector } from '@aztec/stdlib/abi';
|
|
2
|
+
import { type FunctionArtifact, type FunctionArtifactWithContractName, type FunctionSelector } from '@aztec/stdlib/abi';
|
|
3
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
4
|
import type { ContractInstance } from '@aztec/stdlib/contract';
|
|
5
5
|
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
@@ -12,7 +12,7 @@ import type { SimulationProvider } from './providers/simulation_provider.js';
|
|
|
12
12
|
/**
|
|
13
13
|
* Execute a private function and return the execution result.
|
|
14
14
|
*/
|
|
15
|
-
export declare function executePrivateFunction(simulator: SimulationProvider, privateExecutionOracle: PrivateExecutionOracle, artifact:
|
|
15
|
+
export declare function executePrivateFunction(simulator: SimulationProvider, privateExecutionOracle: PrivateExecutionOracle, artifact: FunctionArtifactWithContractName, contractAddress: AztecAddress, functionSelector: FunctionSelector, log?: import("@aztec/foundation/log").Logger): Promise<PrivateCallExecutionResult>;
|
|
16
16
|
/**
|
|
17
17
|
* Get the private circuit public inputs from the partial witness.
|
|
18
18
|
* @param artifact - The function artifact
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../src/private/private_execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAI9C,OAAO,
|
|
1
|
+
{"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../src/private/private_execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAI9C,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EACrC,KAAK,gBAAgB,EAEtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAGlE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAI9D,OAAO,EAAE,KAAK,WAAW,EAA4B,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,kBAAkB,EAC7B,sBAAsB,EAAE,sBAAsB,EAC9C,QAAQ,EAAE,gCAAgC,EAC1C,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,yCAA8C,GAChD,OAAO,CAAC,0BAA0B,CAAC,CA8DrC;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,gBAAgB,EAC1B,cAAc,EAAE,WAAW,GAC1B,0BAA0B,CAa5B;AAED,wBAAsB,kBAAkB,CACtC,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,qBAAqB,EAAE,qBAAqB,GAAG,SAAS,EACxD,WAAW,EAAE,MAAM,eAWpB;AAED,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,YAAY,EAC7B,qBAAqB,EAAE,qBAAqB,EAC5C,WAAW,CAAC,EAAE,MAAM,iBAUrB"}
|