@aztec/simulator 0.55.0 → 0.56.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/avm/avm_execution_environment.d.ts +0 -8
- package/dest/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/avm/avm_execution_environment.js +1 -19
- package/dest/avm/avm_gas.d.ts +2 -2
- package/dest/avm/avm_gas.d.ts.map +1 -1
- package/dest/avm/avm_gas.js +31 -115
- package/dest/avm/avm_machine_state.d.ts.map +1 -1
- package/dest/avm/avm_machine_state.js +6 -6
- package/dest/avm/avm_memory_types.d.ts +35 -7
- package/dest/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/avm/avm_memory_types.js +25 -11
- package/dest/avm/avm_simulator.d.ts.map +1 -1
- package/dest/avm/avm_simulator.js +5 -6
- package/dest/avm/bytecode_utils.d.ts +1 -2
- package/dest/avm/bytecode_utils.d.ts.map +1 -1
- package/dest/avm/bytecode_utils.js +3 -17
- package/dest/avm/fixtures/index.d.ts +4 -16
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +9 -25
- package/dest/avm/journal/index.d.ts +0 -1
- package/dest/avm/journal/index.d.ts.map +1 -1
- package/dest/avm/journal/index.js +1 -2
- package/dest/avm/journal/journal.d.ts +4 -4
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +14 -13
- package/dest/avm/opcodes/bitwise.d.ts +10 -4
- package/dest/avm/opcodes/bitwise.d.ts.map +1 -1
- package/dest/avm/opcodes/bitwise.js +17 -11
- package/dest/avm/opcodes/commitment.js +2 -2
- package/dest/avm/opcodes/comparators.js +2 -2
- package/dest/avm/opcodes/conversion.d.ts +3 -2
- package/dest/avm/opcodes/conversion.d.ts.map +1 -1
- package/dest/avm/opcodes/conversion.js +18 -11
- package/dest/avm/opcodes/environment_getters.d.ts +27 -63
- package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/avm/opcodes/environment_getters.js +75 -80
- package/dest/avm/opcodes/hashing.d.ts +7 -5
- package/dest/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/avm/opcodes/hashing.js +40 -24
- package/dest/avm/opcodes/index.d.ts +3 -0
- package/dest/avm/opcodes/index.d.ts.map +1 -1
- package/dest/avm/opcodes/index.js +4 -1
- package/dest/avm/opcodes/instruction_impl.d.ts +0 -26
- package/dest/avm/opcodes/instruction_impl.d.ts.map +1 -1
- package/dest/avm/opcodes/instruction_impl.js +1 -51
- package/dest/avm/opcodes/memory.d.ts +7 -2
- package/dest/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.js +23 -6
- package/dest/avm/opcodes/multi_scalar_mul.d.ts.map +1 -1
- package/dest/avm/opcodes/multi_scalar_mul.js +7 -6
- package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/bytecode_serialization.js +5 -24
- package/dest/avm/serialization/instruction_serialization.d.ts +48 -60
- package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/instruction_serialization.js +50 -63
- package/dest/avm/test_utils.d.ts +8 -8
- package/dest/avm/test_utils.d.ts.map +1 -1
- package/dest/avm/test_utils.js +15 -15
- package/dest/client/simulator.d.ts +1 -1
- package/dest/client/test_utils.d.ts.map +1 -1
- package/dest/client/test_utils.js +12 -6
- package/dest/client/unconstrained_execution.d.ts +2 -2
- package/dest/client/unconstrained_execution.d.ts.map +1 -1
- package/dest/client/unconstrained_execution.js +3 -3
- package/dest/public/enqueued_call_simulator.d.ts +43 -0
- package/dest/public/enqueued_call_simulator.d.ts.map +1 -0
- package/dest/public/enqueued_call_simulator.js +155 -0
- package/dest/public/enqueued_calls_processor.d.ts +44 -0
- package/dest/public/enqueued_calls_processor.d.ts.map +1 -0
- package/dest/public/enqueued_calls_processor.js +218 -0
- package/dest/public/execution.d.ts +4 -9
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +5 -10
- package/dest/public/executor.d.ts +3 -5
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +5 -9
- package/dest/public/hints_builder.d.ts +4 -3
- package/dest/public/hints_builder.d.ts.map +1 -1
- package/dest/public/hints_builder.js +4 -4
- package/dest/public/index.d.ts +3 -2
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +3 -3
- package/dest/public/public_db_sources.d.ts +17 -24
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +58 -65
- package/dest/public/public_kernel.d.ts +3 -9
- package/dest/public/public_kernel.d.ts.map +1 -1
- package/dest/public/public_kernel.js +13 -40
- package/dest/public/public_kernel_circuit_simulator.d.ts +5 -11
- package/dest/public/public_kernel_circuit_simulator.d.ts.map +1 -1
- package/dest/public/public_kernel_tail_simulator.d.ts +19 -0
- package/dest/public/public_kernel_tail_simulator.d.ts.map +1 -0
- package/dest/public/public_kernel_tail_simulator.js +45 -0
- package/dest/public/public_processor.d.ts +8 -5
- package/dest/public/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor.js +31 -48
- package/dest/public/public_processor_metrics.d.ts +3 -3
- package/dest/public/public_processor_metrics.d.ts.map +1 -1
- package/dest/public/public_processor_metrics.js +1 -1
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +4 -8
- package/package.json +9 -9
- package/src/avm/avm_execution_environment.ts +1 -21
- package/src/avm/avm_gas.ts +30 -114
- package/src/avm/avm_machine_state.ts +5 -5
- package/src/avm/avm_memory_types.ts +31 -9
- package/src/avm/avm_simulator.ts +4 -5
- package/src/avm/bytecode_utils.ts +2 -17
- package/src/avm/fixtures/index.ts +12 -44
- package/src/avm/journal/index.ts +0 -1
- package/src/avm/journal/journal.ts +13 -18
- package/src/avm/opcodes/bitwise.ts +14 -10
- package/src/avm/opcodes/commitment.ts +1 -1
- package/src/avm/opcodes/comparators.ts +2 -2
- package/src/avm/opcodes/conversion.ts +19 -10
- package/src/avm/opcodes/environment_getters.ts +72 -99
- package/src/avm/opcodes/hashing.ts +47 -22
- package/src/avm/opcodes/index.ts +3 -0
- package/src/avm/opcodes/instruction_impl.ts +0 -62
- package/src/avm/opcodes/memory.ts +20 -6
- package/src/avm/opcodes/multi_scalar_mul.ts +6 -6
- package/src/avm/serialization/bytecode_serialization.ts +11 -33
- package/src/avm/serialization/instruction_serialization.ts +5 -18
- package/src/avm/test_utils.ts +20 -16
- package/src/client/test_utils.ts +36 -9
- package/src/client/unconstrained_execution.ts +3 -8
- package/src/public/enqueued_call_simulator.ts +336 -0
- package/src/public/enqueued_calls_processor.ts +388 -0
- package/src/public/execution.ts +5 -12
- package/src/public/executor.ts +4 -12
- package/src/public/hints_builder.ts +14 -12
- package/src/public/index.ts +3 -2
- package/src/public/public_db_sources.ts +62 -67
- package/src/public/public_kernel.ts +15 -49
- package/src/public/public_kernel_circuit_simulator.ts +6 -10
- package/src/public/public_kernel_tail_simulator.ts +106 -0
- package/src/public/public_processor.ts +61 -86
- package/src/public/public_processor_metrics.ts +3 -3
- package/src/public/side_effect_trace.ts +5 -12
- package/dest/avm/journal/host_storage.d.ts +0 -13
- package/dest/avm/journal/host_storage.d.ts.map +0 -1
- package/dest/avm/journal/host_storage.js +0 -13
- package/dest/avm/opcodes/context_getters.d.ts +0 -15
- package/dest/avm/opcodes/context_getters.d.ts.map +0 -1
- package/dest/avm/opcodes/context_getters.js +0 -19
- package/dest/public/abstract_phase_manager.d.ts +0 -93
- package/dest/public/abstract_phase_manager.d.ts.map +0 -1
- package/dest/public/abstract_phase_manager.js +0 -285
- package/dest/public/app_logic_phase_manager.d.ts +0 -25
- package/dest/public/app_logic_phase_manager.d.ts.map +0 -1
- package/dest/public/app_logic_phase_manager.js +0 -52
- package/dest/public/phase_manager_factory.d.ts +0 -18
- package/dest/public/phase_manager_factory.d.ts.map +0 -1
- package/dest/public/phase_manager_factory.js +0 -56
- package/dest/public/setup_phase_manager.d.ts +0 -25
- package/dest/public/setup_phase_manager.d.ts.map +0 -1
- package/dest/public/setup_phase_manager.js +0 -39
- package/dest/public/tail_phase_manager.d.ts +0 -23
- package/dest/public/tail_phase_manager.d.ts.map +0 -1
- package/dest/public/tail_phase_manager.js +0 -50
- package/dest/public/teardown_phase_manager.d.ts +0 -27
- package/dest/public/teardown_phase_manager.d.ts.map +0 -1
- package/dest/public/teardown_phase_manager.js +0 -56
- package/src/avm/journal/host_storage.ts +0 -14
- package/src/avm/opcodes/context_getters.ts +0 -23
- package/src/public/abstract_phase_manager.ts +0 -522
- package/src/public/app_logic_phase_manager.ts +0 -81
- package/src/public/phase_manager_factory.ts +0 -126
- package/src/public/setup_phase_manager.ts +0 -61
- package/src/public/tail_phase_manager.ts +0 -127
- package/src/public/teardown_phase_manager.ts +0 -86
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/public_db_sources.ts"],"names":[],"mappings":";AAAA,OAAO,EAAgB,0BAA0B,EAAE,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAEzF,OAAO,EACL,KAAK,YAAY,EAGjB,EAAE,EACF,gBAAgB,EAChB,KAAK,wBAAwB,EAI9B,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACL,KAAK,aAAa,EAClB,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EACjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,iBAAiB;IAMvD,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"public_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/public_db_sources.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,8 @@ import { MessageLoadOracleInputs, } from '@aztec/simulator';
|
|
|
10
10
|
* Progressively records contracts in transaction as they are processed in a block.
|
|
11
11
|
*/
|
|
12
12
|
export class ContractsDataSourcePublicDB {
|
|
13
|
-
constructor(
|
|
14
|
-
this.
|
|
13
|
+
constructor(dataSource) {
|
|
14
|
+
this.dataSource = dataSource;
|
|
15
15
|
this.instanceCache = new Map();
|
|
16
16
|
this.classCache = new Map();
|
|
17
17
|
this.log = createDebugLogger('aztec:sequencer:contracts-data-source');
|
|
@@ -47,10 +47,10 @@ export class ContractsDataSourcePublicDB {
|
|
|
47
47
|
return Promise.resolve();
|
|
48
48
|
}
|
|
49
49
|
async getContractInstance(address) {
|
|
50
|
-
return this.instanceCache.get(address.toString()) ?? (await this.
|
|
50
|
+
return this.instanceCache.get(address.toString()) ?? (await this.dataSource.getContract(address));
|
|
51
51
|
}
|
|
52
52
|
async getContractClass(contractClassId) {
|
|
53
|
-
return this.classCache.get(contractClassId.toString()) ?? (await this.
|
|
53
|
+
return this.classCache.get(contractClassId.toString()) ?? (await this.dataSource.getContractClass(contractClassId));
|
|
54
54
|
}
|
|
55
55
|
async getBytecode(address, selector) {
|
|
56
56
|
const instance = await this.getContractInstance(address);
|
|
@@ -64,7 +64,7 @@ export class ContractsDataSourcePublicDB {
|
|
|
64
64
|
return contractClass.publicFunctions.find(f => f.selector.equals(selector))?.bytecode;
|
|
65
65
|
}
|
|
66
66
|
async getDebugFunctionName(address, selector) {
|
|
67
|
-
const artifact = await this.
|
|
67
|
+
const artifact = await this.dataSource.getContractArtifact(address);
|
|
68
68
|
if (!artifact) {
|
|
69
69
|
return Promise.resolve(undefined);
|
|
70
70
|
}
|
|
@@ -76,14 +76,16 @@ export class ContractsDataSourcePublicDB {
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
/**
|
|
79
|
-
*
|
|
79
|
+
* A public state DB that reads and writes to the world state.
|
|
80
80
|
*/
|
|
81
|
-
export class
|
|
82
|
-
constructor(db) {
|
|
81
|
+
export class WorldStateDB extends ContractsDataSourcePublicDB {
|
|
82
|
+
constructor(db, dataSource) {
|
|
83
|
+
super(dataSource);
|
|
83
84
|
this.db = db;
|
|
84
|
-
this.
|
|
85
|
-
this.
|
|
86
|
-
this.
|
|
85
|
+
this.logger = createDebugLogger('aztec:sequencer:world-state-db');
|
|
86
|
+
this.publicCommittedWriteCache = new Map();
|
|
87
|
+
this.publicCheckpointedWriteCache = new Map();
|
|
88
|
+
this.publicUncommittedWriteCache = new Map();
|
|
87
89
|
}
|
|
88
90
|
/**
|
|
89
91
|
* Reads a value from public storage, returning zero if none.
|
|
@@ -93,15 +95,15 @@ export class WorldStatePublicDB {
|
|
|
93
95
|
*/
|
|
94
96
|
async storageRead(contract, slot) {
|
|
95
97
|
const leafSlot = computePublicDataTreeLeafSlot(contract, slot).value;
|
|
96
|
-
const uncommitted = this.
|
|
98
|
+
const uncommitted = this.publicUncommittedWriteCache.get(leafSlot);
|
|
97
99
|
if (uncommitted !== undefined) {
|
|
98
100
|
return uncommitted;
|
|
99
101
|
}
|
|
100
|
-
const checkpointed = this.
|
|
102
|
+
const checkpointed = this.publicCheckpointedWriteCache.get(leafSlot);
|
|
101
103
|
if (checkpointed !== undefined) {
|
|
102
104
|
return checkpointed;
|
|
103
105
|
}
|
|
104
|
-
const committed = this.
|
|
106
|
+
const committed = this.publicCommittedWriteCache.get(leafSlot);
|
|
105
107
|
if (committed !== undefined) {
|
|
106
108
|
return committed;
|
|
107
109
|
}
|
|
@@ -121,52 +123,9 @@ export class WorldStatePublicDB {
|
|
|
121
123
|
*/
|
|
122
124
|
storageWrite(contract, slot, newValue) {
|
|
123
125
|
const index = computePublicDataTreeLeafSlot(contract, slot).value;
|
|
124
|
-
this.
|
|
126
|
+
this.publicUncommittedWriteCache.set(index, newValue);
|
|
125
127
|
return Promise.resolve(index);
|
|
126
128
|
}
|
|
127
|
-
/**
|
|
128
|
-
* Commit the pending changes to the DB.
|
|
129
|
-
* @returns Nothing.
|
|
130
|
-
*/
|
|
131
|
-
commit() {
|
|
132
|
-
for (const [k, v] of this.checkpointedWriteCache) {
|
|
133
|
-
this.committedWriteCache.set(k, v);
|
|
134
|
-
}
|
|
135
|
-
// uncommitted writes take precedence over checkpointed writes
|
|
136
|
-
// since they are the most recent
|
|
137
|
-
for (const [k, v] of this.uncommittedWriteCache) {
|
|
138
|
-
this.committedWriteCache.set(k, v);
|
|
139
|
-
}
|
|
140
|
-
return this.rollbackToCommit();
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Rollback the pending changes.
|
|
144
|
-
* @returns Nothing.
|
|
145
|
-
*/
|
|
146
|
-
async rollbackToCommit() {
|
|
147
|
-
await this.rollbackToCheckpoint();
|
|
148
|
-
this.checkpointedWriteCache = new Map();
|
|
149
|
-
return Promise.resolve();
|
|
150
|
-
}
|
|
151
|
-
checkpoint() {
|
|
152
|
-
for (const [k, v] of this.uncommittedWriteCache) {
|
|
153
|
-
this.checkpointedWriteCache.set(k, v);
|
|
154
|
-
}
|
|
155
|
-
return this.rollbackToCheckpoint();
|
|
156
|
-
}
|
|
157
|
-
rollbackToCheckpoint() {
|
|
158
|
-
this.uncommittedWriteCache = new Map();
|
|
159
|
-
return Promise.resolve();
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Implements WorldState db using a world state database.
|
|
164
|
-
*/
|
|
165
|
-
export class WorldStateDB {
|
|
166
|
-
constructor(db) {
|
|
167
|
-
this.db = db;
|
|
168
|
-
this.log = createDebugLogger('aztec:sequencer:world-state-db');
|
|
169
|
-
}
|
|
170
129
|
async getNullifierMembershipWitnessAtLatestBlock(nullifier) {
|
|
171
130
|
const timer = new Timer();
|
|
172
131
|
const index = await this.db.findLeafIndex(MerkleTreeId.NULLIFIER_TREE, nullifier.toBuffer());
|
|
@@ -179,7 +138,7 @@ export class WorldStateDB {
|
|
|
179
138
|
if (!leafPreimage) {
|
|
180
139
|
return undefined;
|
|
181
140
|
}
|
|
182
|
-
this.
|
|
141
|
+
this.logger.debug(`[DB] Fetched nullifier membership`, {
|
|
183
142
|
eventName: 'public-db-access',
|
|
184
143
|
duration: timer.ms(),
|
|
185
144
|
operation: 'get-nullifier-membership-witness-at-latest-block',
|
|
@@ -203,7 +162,7 @@ export class WorldStateDB {
|
|
|
203
162
|
startIndex = messageIndex + 1n;
|
|
204
163
|
} while (nullifierIndex !== undefined);
|
|
205
164
|
const siblingPath = await this.db.getSiblingPath(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, messageIndex);
|
|
206
|
-
this.
|
|
165
|
+
this.logger.debug(`[DB] Fetched L1 to L2 message membership`, {
|
|
207
166
|
eventName: 'public-db-access',
|
|
208
167
|
duration: timer.ms(),
|
|
209
168
|
operation: 'get-l1-to-l2-message-membership-witness',
|
|
@@ -213,7 +172,7 @@ export class WorldStateDB {
|
|
|
213
172
|
async getL1ToL2LeafValue(leafIndex) {
|
|
214
173
|
const timer = new Timer();
|
|
215
174
|
const leafValue = await this.db.getLeafValue(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, leafIndex);
|
|
216
|
-
this.
|
|
175
|
+
this.logger.debug(`[DB] Fetched L1 to L2 message leaf value`, {
|
|
217
176
|
eventName: 'public-db-access',
|
|
218
177
|
duration: timer.ms(),
|
|
219
178
|
operation: 'get-l1-to-l2-message-leaf-value',
|
|
@@ -223,7 +182,7 @@ export class WorldStateDB {
|
|
|
223
182
|
async getCommitmentIndex(commitment) {
|
|
224
183
|
const timer = new Timer();
|
|
225
184
|
const index = await this.db.findLeafIndex(MerkleTreeId.NOTE_HASH_TREE, commitment);
|
|
226
|
-
this.
|
|
185
|
+
this.logger.debug(`[DB] Fetched commitment index`, {
|
|
227
186
|
eventName: 'public-db-access',
|
|
228
187
|
duration: timer.ms(),
|
|
229
188
|
operation: 'get-commitment-index',
|
|
@@ -233,7 +192,7 @@ export class WorldStateDB {
|
|
|
233
192
|
async getCommitmentValue(leafIndex) {
|
|
234
193
|
const timer = new Timer();
|
|
235
194
|
const leafValue = await this.db.getLeafValue(MerkleTreeId.NOTE_HASH_TREE, leafIndex);
|
|
236
|
-
this.
|
|
195
|
+
this.logger.debug(`[DB] Fetched commitment leaf value`, {
|
|
237
196
|
eventName: 'public-db-access',
|
|
238
197
|
duration: timer.ms(),
|
|
239
198
|
operation: 'get-commitment-leaf-value',
|
|
@@ -243,12 +202,46 @@ export class WorldStateDB {
|
|
|
243
202
|
async getNullifierIndex(nullifier) {
|
|
244
203
|
const timer = new Timer();
|
|
245
204
|
const index = await this.db.findLeafIndex(MerkleTreeId.NULLIFIER_TREE, nullifier.toBuffer());
|
|
246
|
-
this.
|
|
205
|
+
this.logger.debug(`[DB] Fetched nullifier index`, {
|
|
247
206
|
eventName: 'public-db-access',
|
|
248
207
|
duration: timer.ms(),
|
|
249
208
|
operation: 'get-nullifier-index',
|
|
250
209
|
});
|
|
251
210
|
return index;
|
|
252
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* Commit the pending public changes to the DB.
|
|
214
|
+
* @returns Nothing.
|
|
215
|
+
*/
|
|
216
|
+
commit() {
|
|
217
|
+
for (const [k, v] of this.publicCheckpointedWriteCache) {
|
|
218
|
+
this.publicCommittedWriteCache.set(k, v);
|
|
219
|
+
}
|
|
220
|
+
// uncommitted writes take precedence over checkpointed writes
|
|
221
|
+
// since they are the most recent
|
|
222
|
+
for (const [k, v] of this.publicUncommittedWriteCache) {
|
|
223
|
+
this.publicCommittedWriteCache.set(k, v);
|
|
224
|
+
}
|
|
225
|
+
return this.rollbackToCommit();
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Rollback the pending public changes.
|
|
229
|
+
* @returns Nothing.
|
|
230
|
+
*/
|
|
231
|
+
async rollbackToCommit() {
|
|
232
|
+
await this.rollbackToCheckpoint();
|
|
233
|
+
this.publicCheckpointedWriteCache = new Map();
|
|
234
|
+
return Promise.resolve();
|
|
235
|
+
}
|
|
236
|
+
checkpoint() {
|
|
237
|
+
for (const [k, v] of this.publicUncommittedWriteCache) {
|
|
238
|
+
this.publicCheckpointedWriteCache.set(k, v);
|
|
239
|
+
}
|
|
240
|
+
return this.rollbackToCheckpoint();
|
|
241
|
+
}
|
|
242
|
+
rollbackToCheckpoint() {
|
|
243
|
+
this.publicUncommittedWriteCache = new Map();
|
|
244
|
+
return Promise.resolve();
|
|
245
|
+
}
|
|
253
246
|
}
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2RiX3NvdXJjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3B1YmxpY19kYl9zb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsMEJBQTBCLEVBQVcsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RixPQUFPLEVBRUwsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3QixFQUFFLEVBQ0YsZ0JBQWdCLEdBS2pCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLDZCQUE2QixFQUFFLDZCQUE2QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFFTCx1QkFBdUIsR0FHeEIsTUFBTSxrQkFBa0IsQ0FBQztBQVExQjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sMkJBQTJCO0lBTXRDLFlBQW9CLEVBQXNCO1FBQXRCLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBTGxDLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQXVDLENBQUM7UUFDL0QsZUFBVSxHQUFHLElBQUksR0FBRyxFQUErQixDQUFDO1FBRXBELFFBQUcsR0FBRyxpQkFBaUIsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBRTVCLENBQUM7SUFFOUM7OztPQUdHO0lBQ0ksZUFBZSxDQUFDLEVBQU07UUFDM0IscUZBQXFGO1FBQ3JGLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0MsNEJBQTRCLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxzQkFBc0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZ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
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2RiX3NvdXJjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3B1YmxpY19kYl9zb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsMEJBQTBCLEVBQVcsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RixPQUFPLEVBRUwsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3QixFQUFFLEVBQ0YsZ0JBQWdCLEdBS2pCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLDZCQUE2QixFQUFFLDZCQUE2QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFFTCx1QkFBdUIsR0FHeEIsTUFBTSxrQkFBa0IsQ0FBQztBQVExQjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sMkJBQTJCO0lBTXRDLFlBQW9CLFVBQThCO1FBQTlCLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBTDFDLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQXVDLENBQUM7UUFDL0QsZUFBVSxHQUFHLElBQUksR0FBRyxFQUErQixDQUFDO1FBRXBELFFBQUcsR0FBRyxpQkFBaUIsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBRXBCLENBQUM7SUFFdEQ7OztPQUdHO0lBQ0ksZUFBZSxDQUFDLEVBQU07UUFDM0IscUZBQXFGO1FBQ3JGLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0MsNEJBQTRCLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxzQkFBc0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZ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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type KernelCircuitPublicInputs, type PublicKernelCircuitPrivateInputs, type PublicKernelCircuitPublicInputs, type PublicKernelTailCircuitPrivateInputs } from '@aztec/circuits.js';
|
|
1
|
+
import { type KernelCircuitPublicInputs, type PublicKernelCircuitPrivateInputs, type PublicKernelCircuitPublicInputs, type PublicKernelInnerCircuitPrivateInputs, type PublicKernelTailCircuitPrivateInputs, type VMCircuitPublicInputs } from '@aztec/circuits.js';
|
|
2
2
|
import { type SimulationProvider } from '../providers/simulation_provider.js';
|
|
3
3
|
import { type PublicKernelCircuitSimulator } from './public_kernel_circuit_simulator.js';
|
|
4
4
|
/**
|
|
@@ -14,19 +14,13 @@ export declare class RealPublicKernelCircuitSimulator implements PublicKernelCir
|
|
|
14
14
|
* @param input - Inputs to the circuit.
|
|
15
15
|
* @returns The public inputs as outputs of the simulation.
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
publicKernelCircuitInner(input: PublicKernelInnerCircuitPrivateInputs): Promise<VMCircuitPublicInputs>;
|
|
18
18
|
/**
|
|
19
19
|
* Simulates the public kernel app logic circuit from its inputs.
|
|
20
20
|
* @param input - Inputs to the circuit.
|
|
21
21
|
* @returns The public inputs as outputs of the simulation.
|
|
22
22
|
*/
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Simulates the public kernel teardown circuit from its inputs.
|
|
26
|
-
* @param input - Inputs to the circuit.
|
|
27
|
-
* @returns The public inputs as outputs of the simulation.
|
|
28
|
-
*/
|
|
29
|
-
publicKernelCircuitTeardown(input: PublicKernelCircuitPrivateInputs): Promise<PublicKernelCircuitPublicInputs>;
|
|
23
|
+
publicKernelCircuitMerge(input: PublicKernelCircuitPrivateInputs): Promise<PublicKernelCircuitPublicInputs>;
|
|
30
24
|
/**
|
|
31
25
|
* Simulates the public kernel tail circuit from its inputs.
|
|
32
26
|
* @param input - Inputs to the circuit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_kernel.d.ts","sourceRoot":"","sources":["../../src/public/public_kernel.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,
|
|
1
|
+
{"version":3,"file":"public_kernel.d.ts","sourceRoot":"","sources":["../../src/public/public_kernel.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,EACzC,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAC;AAc5B,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF;;GAEG;AACH,qBAAa,gCAAiC,YAAW,4BAA4B;IAMvE,OAAO,CAAC,SAAS;IAL7B,OAAO,CAAC,GAAG,CAAsD;IAGjE,OAAO,CAAC,aAAa,CAAsC;gBAEvC,SAAS,EAAE,kBAAkB;IAEjD;;;;OAIG;IACU,wBAAwB,CAAC,KAAK,EAAE,qCAAqC,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgBnH;;;;OAIG;IACU,wBAAwB,CACnC,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,+BAA+B,CAAC;IAgB3C;;;;OAIG;IACU,uBAAuB,CAClC,KAAK,EAAE,oCAAoC,GAC1C,OAAO,CAAC,yBAAyB,CAAC;CAetC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
2
2
|
import { elapsed } from '@aztec/foundation/timer';
|
|
3
|
-
import { SimulatedServerCircuitArtifacts, convertSimulatedPublicInnerInputsToWitnessMap, convertSimulatedPublicInnerOutputFromWitnessMap,
|
|
3
|
+
import { SimulatedServerCircuitArtifacts, convertSimulatedPublicInnerInputsToWitnessMap, convertSimulatedPublicInnerOutputFromWitnessMap, convertSimulatedPublicMergeInputsToWitnessMap, convertSimulatedPublicMergeOutputFromWitnessMap, convertSimulatedPublicTailInputsToWitnessMap, convertSimulatedPublicTailOutputFromWitnessMap, } from '@aztec/noir-protocol-circuits-types';
|
|
4
4
|
import { WASMSimulator } from '../providers/acvm_wasm.js';
|
|
5
5
|
/**
|
|
6
6
|
* Implements the PublicKernelCircuitSimulator.
|
|
@@ -17,37 +17,13 @@ export class RealPublicKernelCircuitSimulator {
|
|
|
17
17
|
* @param input - Inputs to the circuit.
|
|
18
18
|
* @returns The public inputs as outputs of the simulation.
|
|
19
19
|
*/
|
|
20
|
-
async
|
|
21
|
-
if (!input.previousKernel.publicInputs.needsSetup) {
|
|
22
|
-
throw new Error(`Expected previous kernel inputs to need setup`);
|
|
23
|
-
}
|
|
24
|
-
const inputWitness = convertSimulatedPublicSetupInputsToWitnessMap(input);
|
|
25
|
-
const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness, SimulatedServerCircuitArtifacts.PublicKernelSetupArtifact));
|
|
26
|
-
const result = convertSimulatedPublicSetupOutputFromWitnessMap(witness);
|
|
27
|
-
this.log.debug(`Simulated public kernel setup circuit`, {
|
|
28
|
-
eventName: 'circuit-simulation',
|
|
29
|
-
circuitName: 'public-kernel-setup',
|
|
30
|
-
duration,
|
|
31
|
-
inputSize: input.toBuffer().length,
|
|
32
|
-
outputSize: result.toBuffer().length,
|
|
33
|
-
});
|
|
34
|
-
return result;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Simulates the public kernel app logic circuit from its inputs.
|
|
38
|
-
* @param input - Inputs to the circuit.
|
|
39
|
-
* @returns The public inputs as outputs of the simulation.
|
|
40
|
-
*/
|
|
41
|
-
async publicKernelCircuitAppLogic(input) {
|
|
42
|
-
if (!input.previousKernel.publicInputs.needsAppLogic) {
|
|
43
|
-
throw new Error(`Expected previous kernel inputs to need app logic`);
|
|
44
|
-
}
|
|
20
|
+
async publicKernelCircuitInner(input) {
|
|
45
21
|
const inputWitness = convertSimulatedPublicInnerInputsToWitnessMap(input);
|
|
46
|
-
const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness, SimulatedServerCircuitArtifacts.
|
|
22
|
+
const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness, SimulatedServerCircuitArtifacts.PublicKernelInnerArtifact));
|
|
47
23
|
const result = convertSimulatedPublicInnerOutputFromWitnessMap(witness);
|
|
48
|
-
this.log.debug(`Simulated public kernel
|
|
24
|
+
this.log.debug(`Simulated public kernel inner circuit`, {
|
|
49
25
|
eventName: 'circuit-simulation',
|
|
50
|
-
circuitName: 'public-kernel-
|
|
26
|
+
circuitName: 'public-kernel-inner',
|
|
51
27
|
duration,
|
|
52
28
|
inputSize: input.toBuffer().length,
|
|
53
29
|
outputSize: result.toBuffer().length,
|
|
@@ -55,20 +31,17 @@ export class RealPublicKernelCircuitSimulator {
|
|
|
55
31
|
return result;
|
|
56
32
|
}
|
|
57
33
|
/**
|
|
58
|
-
* Simulates the public kernel
|
|
34
|
+
* Simulates the public kernel app logic circuit from its inputs.
|
|
59
35
|
* @param input - Inputs to the circuit.
|
|
60
36
|
* @returns The public inputs as outputs of the simulation.
|
|
61
37
|
*/
|
|
62
|
-
async
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness, SimulatedServerCircuitArtifacts.PublicKernelTeardownArtifact));
|
|
68
|
-
const result = convertSimulatedPublicTeardownOutputFromWitnessMap(witness);
|
|
69
|
-
this.log.debug(`Simulated public kernel teardown circuit`, {
|
|
38
|
+
async publicKernelCircuitMerge(input) {
|
|
39
|
+
const inputWitness = convertSimulatedPublicMergeInputsToWitnessMap(input);
|
|
40
|
+
const [duration, witness] = await elapsed(() => this.wasmSimulator.simulateCircuit(inputWitness, SimulatedServerCircuitArtifacts.PublicKernelMergeArtifact));
|
|
41
|
+
const result = convertSimulatedPublicMergeOutputFromWitnessMap(witness);
|
|
42
|
+
this.log.debug(`Simulated public kernel merge circuit`, {
|
|
70
43
|
eventName: 'circuit-simulation',
|
|
71
|
-
circuitName: 'public-kernel-
|
|
44
|
+
circuitName: 'public-kernel-merge',
|
|
72
45
|
duration,
|
|
73
46
|
inputSize: input.toBuffer().length,
|
|
74
47
|
outputSize: result.toBuffer().length,
|
|
@@ -94,4 +67,4 @@ export class RealPublicKernelCircuitSimulator {
|
|
|
94
67
|
return result;
|
|
95
68
|
}
|
|
96
69
|
}
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2tlcm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX2tlcm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUNMLCtCQUErQixFQUMvQiw2Q0FBNkMsRUFDN0MsK0NBQStDLEVBQy9DLDZDQUE2QyxFQUM3QywrQ0FBK0MsRUFDL0MsNENBQTRDLEVBQzVDLDhDQUE4QyxHQUMvQyxNQUFNLHFDQUFxQyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUkxRDs7R0FFRztBQUNILE1BQU0sT0FBTyxnQ0FBZ0M7SUFNM0MsWUFBb0IsU0FBNkI7UUFBN0IsY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFMekMsUUFBRyxHQUFHLGlCQUFpQixDQUFDLCtCQUErQixDQUFDLENBQUM7UUFFakUsc0RBQXNEO1FBQzlDLGtCQUFhLEdBQWtCLElBQUksYUFBYSxFQUFFLENBQUM7SUFFUCxDQUFDO0lBRXJEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsS0FBNEM7UUFDaEYsTUFBTSxZQUFZLEdBQUcsNkNBQTZDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDN0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLCtCQUErQixDQUFDLHlCQUF5QixDQUFDLENBQzVHLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRywrQ0FBK0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsRUFBRTtZQUN0RCxTQUFTLEVBQUUsb0JBQW9CO1lBQy9CLFdBQVcsRUFBRSxxQkFBcUI7WUFDbEMsUUFBUTtZQUNSLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTTtZQUNsQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07U0FDSixDQUFDLENBQUM7UUFDcEMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsd0JBQXdCLENBQ25DLEtBQXVDO1FBRXZDLE1BQU0sWUFBWSxHQUFHLDZDQUE2QyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSwrQkFBK0IsQ0FBQyx5QkFBeUIsQ0FBQyxDQUM1RyxDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsK0NBQStDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsdUNBQXVDLEVBQUU7WUFDdEQsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixXQUFXLEVBQUUscUJBQXFCO1lBQ2xDLFFBQVE7WUFDUixTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07WUFDbEMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNO1NBQ0osQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLHVCQUF1QixDQUNsQyxLQUEyQztRQUUzQyxNQUFNLFlBQVksR0FBRyw0Q0FBNEMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RSxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUM3QyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsK0JBQStCLENBQUMsd0JBQXdCLENBQUMsQ0FDM0csQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLDhDQUE4QyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxFQUFFO1lBQ3JELFNBQVMsRUFBRSxvQkFBb0I7WUFDL0IsV0FBVyxFQUFFLG9CQUFvQjtZQUNqQyxRQUFRO1lBQ1IsU0FBUyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNO1lBQ2xDLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTTtTQUNKLENBQUMsQ0FBQztRQUNwQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YifQ==
|
|
@@ -1,26 +1,20 @@
|
|
|
1
|
-
import { type KernelCircuitPublicInputs, type PublicKernelCircuitPrivateInputs, type PublicKernelCircuitPublicInputs, type PublicKernelTailCircuitPrivateInputs } from '@aztec/circuits.js';
|
|
1
|
+
import { type KernelCircuitPublicInputs, type PublicKernelCircuitPrivateInputs, type PublicKernelCircuitPublicInputs, type PublicKernelInnerCircuitPrivateInputs, type PublicKernelTailCircuitPrivateInputs, type VMCircuitPublicInputs } from '@aztec/circuits.js';
|
|
2
2
|
/**
|
|
3
3
|
* Circuit simulator for the public kernel circuits.
|
|
4
4
|
*/
|
|
5
5
|
export interface PublicKernelCircuitSimulator {
|
|
6
6
|
/**
|
|
7
|
-
* Simulates the public kernel
|
|
7
|
+
* Simulates the public kernel inner circuit from its inputs.
|
|
8
8
|
* @param inputs - Inputs to the circuit.
|
|
9
9
|
* @returns The public inputs as outputs of the simulation.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
publicKernelCircuitInner(inputs: PublicKernelInnerCircuitPrivateInputs): Promise<VMCircuitPublicInputs>;
|
|
12
12
|
/**
|
|
13
|
-
* Simulates the public kernel
|
|
13
|
+
* Simulates the public kernel merge circuit from its inputs.
|
|
14
14
|
* @param inputs - Inputs to the circuit.
|
|
15
15
|
* @returns The public inputs as outputs of the simulation.
|
|
16
16
|
*/
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Simulates the public kernel teardown circuit from its inputs.
|
|
20
|
-
* @param inputs - Inputs to the circuit.
|
|
21
|
-
* @returns The public inputs as outputs of the simulation.
|
|
22
|
-
*/
|
|
23
|
-
publicKernelCircuitTeardown(inputs: PublicKernelCircuitPrivateInputs): Promise<PublicKernelCircuitPublicInputs>;
|
|
17
|
+
publicKernelCircuitMerge(inputs: PublicKernelCircuitPrivateInputs): Promise<PublicKernelCircuitPublicInputs>;
|
|
24
18
|
/**
|
|
25
19
|
* Simulates the public kernel tail circuit from its inputs.
|
|
26
20
|
* @param inputs - Inputs to the circuit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_kernel_circuit_simulator.d.ts","sourceRoot":"","sources":["../../src/public/public_kernel_circuit_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,
|
|
1
|
+
{"version":3,"file":"public_kernel_circuit_simulator.d.ts","sourceRoot":"","sources":["../../src/public/public_kernel_circuit_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,EACzC,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,wBAAwB,CAAC,MAAM,EAAE,qCAAqC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxG;;;;OAIG;IACH,wBAAwB,CAAC,MAAM,EAAE,gCAAgC,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC7G;;;;OAIG;IACH,uBAAuB,CAAC,MAAM,EAAE,oCAAoC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;CAC3G"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type PublicKernelTailRequest } from '@aztec/circuit-types';
|
|
2
|
+
import { type KernelCircuitPublicInputs, type PublicKernelCircuitPublicInputs } from '@aztec/circuits.js';
|
|
3
|
+
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
4
|
+
import { HintsBuilder } from './hints_builder.js';
|
|
5
|
+
import { type PublicKernelCircuitSimulator } from './public_kernel_circuit_simulator.js';
|
|
6
|
+
export declare class PublicKernelTailSimulator {
|
|
7
|
+
private db;
|
|
8
|
+
private publicKernelSimulator;
|
|
9
|
+
private hintsBuilder;
|
|
10
|
+
constructor(db: MerkleTreeOperations, publicKernelSimulator: PublicKernelCircuitSimulator, hintsBuilder: HintsBuilder);
|
|
11
|
+
static create(db: MerkleTreeOperations, publicKernelSimulator: PublicKernelCircuitSimulator): PublicKernelTailSimulator;
|
|
12
|
+
simulate(previousOutput: PublicKernelCircuitPublicInputs): Promise<{
|
|
13
|
+
output: KernelCircuitPublicInputs;
|
|
14
|
+
provingRequest: PublicKernelTailRequest;
|
|
15
|
+
}>;
|
|
16
|
+
private buildPrivateInputs;
|
|
17
|
+
private getPreviousKernelData;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=public_kernel_tail_simulator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public_kernel_tail_simulator.d.ts","sourceRoot":"","sources":["../../src/public/public_kernel_tail_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EACL,KAAK,yBAAyB,EAI9B,KAAK,+BAA+B,EAKrC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF,qBAAa,yBAAyB;IAElC,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,YAAY;gBAFZ,EAAE,EAAE,oBAAoB,EACxB,qBAAqB,EAAE,4BAA4B,EACnD,YAAY,EAAE,YAAY;IAGpC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,4BAA4B;IAKrF,QAAQ,CACZ,cAAc,EAAE,+BAA+B,GAC9C,OAAO,CAAC;QAAE,MAAM,EAAE,yBAAyB,CAAC;QAAC,cAAc,EAAE,uBAAuB,CAAA;KAAE,CAAC;YAa5E,kBAAkB;IAqDhC,OAAO,CAAC,qBAAqB;CAO9B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ProvingRequestType } from '@aztec/circuit-types';
|
|
2
|
+
import { MAX_NULLIFIERS_PER_TX, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NESTED_RECURSIVE_PROOF_LENGTH, PublicKernelData, PublicKernelTailCircuitPrivateInputs, makeEmptyRecursiveProof, mergeAccumulatedData, } from '@aztec/circuits.js';
|
|
3
|
+
import { ProtocolCircuitVks, getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types';
|
|
4
|
+
import { HintsBuilder } from './hints_builder.js';
|
|
5
|
+
export class PublicKernelTailSimulator {
|
|
6
|
+
constructor(db, publicKernelSimulator, hintsBuilder) {
|
|
7
|
+
this.db = db;
|
|
8
|
+
this.publicKernelSimulator = publicKernelSimulator;
|
|
9
|
+
this.hintsBuilder = hintsBuilder;
|
|
10
|
+
}
|
|
11
|
+
static create(db, publicKernelSimulator) {
|
|
12
|
+
const hintsBuilder = new HintsBuilder(db);
|
|
13
|
+
return new PublicKernelTailSimulator(db, publicKernelSimulator, hintsBuilder);
|
|
14
|
+
}
|
|
15
|
+
async simulate(previousOutput) {
|
|
16
|
+
const inputs = await this.buildPrivateInputs(previousOutput);
|
|
17
|
+
const output = await this.publicKernelSimulator.publicKernelCircuitTail(inputs);
|
|
18
|
+
const provingRequest = {
|
|
19
|
+
type: ProvingRequestType.PUBLIC_KERNEL_TAIL,
|
|
20
|
+
inputs,
|
|
21
|
+
};
|
|
22
|
+
return { output, provingRequest };
|
|
23
|
+
}
|
|
24
|
+
async buildPrivateInputs(previousOutput) {
|
|
25
|
+
const previousKernel = this.getPreviousKernelData(previousOutput);
|
|
26
|
+
const { validationRequests, endNonRevertibleData: nonRevertibleData, end: revertibleData } = previousOutput;
|
|
27
|
+
const noteHashReadRequestHints = await this.hintsBuilder.getNoteHashReadRequestsHints(validationRequests.noteHashReadRequests);
|
|
28
|
+
const pendingNullifiers = mergeAccumulatedData(nonRevertibleData.nullifiers, revertibleData.nullifiers, MAX_NULLIFIERS_PER_TX);
|
|
29
|
+
const nullifierReadRequestHints = await this.hintsBuilder.getNullifierReadRequestHints(validationRequests.nullifierReadRequests, pendingNullifiers);
|
|
30
|
+
const nullifierNonExistentReadRequestHints = await this.hintsBuilder.getNullifierNonExistentReadRequestHints(validationRequests.nullifierNonExistentReadRequests, pendingNullifiers);
|
|
31
|
+
const l1ToL2MsgReadRequestHints = await this.hintsBuilder.getL1ToL2MsgReadRequestsHints(validationRequests.l1ToL2MsgReadRequests);
|
|
32
|
+
const pendingPublicDataWrites = mergeAccumulatedData(nonRevertibleData.publicDataUpdateRequests, revertibleData.publicDataUpdateRequests, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX);
|
|
33
|
+
const publicDataHints = await this.hintsBuilder.getPublicDataHints(validationRequests.publicDataReads, pendingPublicDataWrites);
|
|
34
|
+
const currentState = await this.db.getStateReference();
|
|
35
|
+
return new PublicKernelTailCircuitPrivateInputs(previousKernel, noteHashReadRequestHints, nullifierReadRequestHints, nullifierNonExistentReadRequestHints, l1ToL2MsgReadRequestHints, publicDataHints, currentState.partial);
|
|
36
|
+
}
|
|
37
|
+
getPreviousKernelData(previousOutput) {
|
|
38
|
+
const proof = makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH);
|
|
39
|
+
const vk = ProtocolCircuitVks.PublicKernelMergeArtifact;
|
|
40
|
+
const vkIndex = getVKIndex(vk);
|
|
41
|
+
const siblingPath = getVKSiblingPath(vkIndex);
|
|
42
|
+
return new PublicKernelData(previousOutput, proof, vk, vkIndex, siblingPath);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2tlcm5lbF90YWlsX3NpbXVsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX2tlcm5lbF90YWlsX3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQWdDLE1BQU0sc0JBQXNCLENBQUM7QUFDeEYsT0FBTyxFQUVMLHFCQUFxQixFQUNyQixzQ0FBc0MsRUFDdEMsNkJBQTZCLEVBRTdCLGdCQUFnQixFQUNoQixvQ0FBb0MsRUFDcEMsdUJBQXVCLEVBQ3ZCLG9CQUFvQixHQUNyQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUd2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHbEQsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUNVLEVBQXdCLEVBQ3hCLHFCQUFtRCxFQUNuRCxZQUEwQjtRQUYxQixPQUFFLEdBQUYsRUFBRSxDQUFzQjtRQUN4QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQThCO1FBQ25ELGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQ2pDLENBQUM7SUFFSixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQXdCLEVBQUUscUJBQW1EO1FBQ3pGLE1BQU0sWUFBWSxHQUFHLElBQUksWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSSx5QkFBeUIsQ0FBQyxFQUFFLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRLENBQ1osY0FBK0M7UUFFL0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFN0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMscUJB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
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { type FailedTx, NestedProcessReturnValues, type ProcessedTx, type ProcessedTxHandler, Tx, type TxValidator } from '@aztec/circuit-types';
|
|
2
2
|
import { type GlobalVariables, type Header } from '@aztec/circuits.js';
|
|
3
|
-
import { PublicExecutor, type PublicStateDB, type SimulationProvider } from '@aztec/simulator';
|
|
4
3
|
import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
|
|
5
4
|
import { type ContractDataSource } from '@aztec/types/contracts';
|
|
6
5
|
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
7
|
-
import {
|
|
6
|
+
import { type SimulationProvider } from '../providers/index.js';
|
|
7
|
+
import { EnqueuedCallsProcessor } from './enqueued_calls_processor.js';
|
|
8
|
+
import { PublicExecutor } from './executor.js';
|
|
9
|
+
import { WorldStateDB } from './public_db_sources.js';
|
|
8
10
|
import { type PublicKernelCircuitSimulator } from './public_kernel_circuit_simulator.js';
|
|
9
11
|
/**
|
|
10
12
|
* Creates new instances of PublicProcessor given the provided merkle tree db and contract data source.
|
|
@@ -33,11 +35,12 @@ export declare class PublicProcessor {
|
|
|
33
35
|
protected publicKernel: PublicKernelCircuitSimulator;
|
|
34
36
|
protected globalVariables: GlobalVariables;
|
|
35
37
|
protected historicalHeader: Header;
|
|
36
|
-
protected
|
|
37
|
-
protected
|
|
38
|
+
protected worldStateDB: WorldStateDB;
|
|
39
|
+
protected enqueuedCallsProcessor: EnqueuedCallsProcessor;
|
|
38
40
|
private log;
|
|
39
41
|
private metrics;
|
|
40
|
-
constructor(db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, globalVariables: GlobalVariables, historicalHeader: Header,
|
|
42
|
+
constructor(db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernel: PublicKernelCircuitSimulator, globalVariables: GlobalVariables, historicalHeader: Header, worldStateDB: WorldStateDB, enqueuedCallsProcessor: EnqueuedCallsProcessor, telemetryClient: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
|
|
43
|
+
static create(db: MerkleTreeOperations, publicExecutor: PublicExecutor, publicKernelSimulator: PublicKernelCircuitSimulator, globalVariables: GlobalVariables, historicalHeader: Header, worldStateDB: WorldStateDB, telemetryClient: TelemetryClient): PublicProcessor;
|
|
41
44
|
get tracer(): Tracer;
|
|
42
45
|
/**
|
|
43
46
|
* Run each tx through the public circuit and the public kernel circuit if needed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../src/public/public_processor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,yBAAyB,EACzB,KAAK,WAAW,EAChB,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../src/public/public_processor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,yBAAyB,EACzB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,EAAE,EACF,KAAK,WAAW,EAGjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,MAAM,EAIZ,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AACnG,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAGzF;;GAEG;AACH,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,eAAe;gBAHf,UAAU,EAAE,oBAAoB,EAChC,kBAAkB,EAAE,kBAAkB,EACtC,SAAS,EAAE,kBAAkB,EAC7B,eAAe,EAAE,eAAe;IAG1C;;;;;OAKG;IACI,MAAM,CAAC,qBAAqB,EAAE,MAAM,GAAG,SAAS,EAAE,eAAe,EAAE,eAAe,GAAG,eAAe;CAkB5G;AAED;;;GAGG;AACH,qBAAa,eAAe;IAGxB,SAAS,CAAC,EAAE,EAAE,oBAAoB;IAClC,SAAS,CAAC,cAAc,EAAE,cAAc;IACxC,SAAS,CAAC,YAAY,EAAE,4BAA4B;IACpD,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,SAAS,CAAC,gBAAgB,EAAE,MAAM;IAClC,SAAS,CAAC,YAAY,EAAE,YAAY;IACpC,SAAS,CAAC,sBAAsB,EAAE,sBAAsB;IAExD,OAAO,CAAC,GAAG;IAVb,OAAO,CAAC,OAAO,CAAyB;gBAE5B,EAAE,EAAE,oBAAoB,EACxB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,4BAA4B,EAC1C,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,YAAY,EAC1B,sBAAsB,EAAE,sBAAsB,EACxD,eAAe,EAAE,eAAe,EACxB,GAAG,yCAAwD;IAKrE,MAAM,CAAC,MAAM,CACX,EAAE,EAAE,oBAAoB,EACxB,cAAc,EAAE,cAAc,EAC9B,qBAAqB,EAAE,4BAA4B,EACnD,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe;IAuBlC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;OAKG;IACU,OAAO,CAClB,GAAG,EAAE,EAAE,EAAE,EACT,eAAe,SAAa,EAC5B,kBAAkB,CAAC,EAAE,kBAAkB,EACvC,WAAW,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,GACrC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,yBAAyB,EAAE,CAAC,CAAC;IA8DpE;;;;;OAKG;YACW,6BAA6B;YA4C7B,wBAAwB;CA6BvC"}
|