@aztec/simulator 0.42.0 → 0.44.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.
Files changed (191) hide show
  1. package/dest/acvm/oracle/oracle.d.ts +5 -2
  2. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  3. package/dest/acvm/oracle/oracle.js +25 -8
  4. package/dest/acvm/oracle/typed_oracle.d.ts +7 -4
  5. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  6. package/dest/acvm/oracle/typed_oracle.js +14 -5
  7. package/dest/avm/avm_execution_environment.d.ts +2 -0
  8. package/dest/avm/avm_execution_environment.d.ts.map +1 -1
  9. package/dest/avm/avm_execution_environment.js +9 -4
  10. package/dest/avm/avm_gas.d.ts.map +1 -1
  11. package/dest/avm/avm_gas.js +3 -1
  12. package/dest/avm/avm_memory_types.d.ts.map +1 -1
  13. package/dest/avm/avm_memory_types.js +2 -4
  14. package/dest/avm/avm_simulator.d.ts.map +1 -1
  15. package/dest/avm/avm_simulator.js +2 -3
  16. package/dest/avm/fixtures/index.d.ts +10 -3
  17. package/dest/avm/fixtures/index.d.ts.map +1 -1
  18. package/dest/avm/fixtures/index.js +9 -11
  19. package/dest/avm/journal/journal.d.ts +57 -66
  20. package/dest/avm/journal/journal.d.ts.map +1 -1
  21. package/dest/avm/journal/journal.js +97 -131
  22. package/dest/avm/journal/nullifiers.d.ts +21 -8
  23. package/dest/avm/journal/nullifiers.d.ts.map +1 -1
  24. package/dest/avm/journal/nullifiers.js +26 -8
  25. package/dest/avm/journal/public_storage.d.ts +4 -0
  26. package/dest/avm/journal/public_storage.d.ts.map +1 -1
  27. package/dest/avm/journal/public_storage.js +10 -1
  28. package/dest/avm/opcodes/accrued_substate.d.ts +2 -2
  29. package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
  30. package/dest/avm/opcodes/accrued_substate.js +39 -24
  31. package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
  32. package/dest/avm/opcodes/arithmetic.js +12 -9
  33. package/dest/avm/opcodes/bitwise.d.ts.map +1 -1
  34. package/dest/avm/opcodes/bitwise.js +11 -8
  35. package/dest/avm/opcodes/comparators.d.ts.map +1 -1
  36. package/dest/avm/opcodes/comparators.js +7 -5
  37. package/dest/avm/opcodes/contract.d.ts.map +1 -1
  38. package/dest/avm/opcodes/contract.js +20 -24
  39. package/dest/avm/opcodes/control_flow.d.ts.map +1 -1
  40. package/dest/avm/opcodes/control_flow.js +4 -2
  41. package/dest/avm/opcodes/ec_add.d.ts +19 -0
  42. package/dest/avm/opcodes/ec_add.d.ts.map +1 -0
  43. package/dest/avm/opcodes/ec_add.js +78 -0
  44. package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
  45. package/dest/avm/opcodes/external_calls.js +19 -29
  46. package/dest/avm/opcodes/hashing.d.ts.map +1 -1
  47. package/dest/avm/opcodes/hashing.js +10 -2
  48. package/dest/avm/opcodes/instruction_impl.d.ts.map +1 -1
  49. package/dest/avm/opcodes/instruction_impl.js +4 -2
  50. package/dest/avm/opcodes/memory.d.ts +1 -1
  51. package/dest/avm/opcodes/memory.d.ts.map +1 -1
  52. package/dest/avm/opcodes/memory.js +14 -12
  53. package/dest/avm/opcodes/multi_scalar_mul.d.ts +16 -0
  54. package/dest/avm/opcodes/multi_scalar_mul.d.ts.map +1 -0
  55. package/dest/avm/opcodes/multi_scalar_mul.js +95 -0
  56. package/dest/avm/opcodes/storage.d.ts +1 -1
  57. package/dest/avm/opcodes/storage.d.ts.map +1 -1
  58. package/dest/avm/opcodes/storage.js +11 -8
  59. package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  60. package/dest/avm/serialization/bytecode_serialization.js +5 -1
  61. package/dest/avm/serialization/instruction_serialization.d.ts +3 -1
  62. package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
  63. package/dest/avm/serialization/instruction_serialization.js +4 -2
  64. package/dest/avm/test_utils.d.ts +14 -0
  65. package/dest/avm/test_utils.d.ts.map +1 -0
  66. package/dest/avm/test_utils.js +36 -0
  67. package/dest/client/client_execution_context.d.ts +17 -5
  68. package/dest/client/client_execution_context.d.ts.map +1 -1
  69. package/dest/client/client_execution_context.js +32 -18
  70. package/dest/client/execution_note_cache.d.ts.map +1 -1
  71. package/dest/client/execution_note_cache.js +1 -1
  72. package/dest/client/execution_result.d.ts +2 -1
  73. package/dest/client/execution_result.d.ts.map +1 -1
  74. package/dest/client/execution_result.js +1 -1
  75. package/dest/client/index.d.ts +2 -0
  76. package/dest/client/index.d.ts.map +1 -1
  77. package/dest/client/index.js +3 -1
  78. package/dest/client/simulator.d.ts +4 -3
  79. package/dest/client/simulator.d.ts.map +1 -1
  80. package/dest/client/simulator.js +17 -9
  81. package/dest/client/view_data_oracle.d.ts +2 -0
  82. package/dest/client/view_data_oracle.d.ts.map +1 -1
  83. package/dest/client/view_data_oracle.js +7 -1
  84. package/dest/mocks/fixtures.d.ts.map +1 -1
  85. package/dest/mocks/fixtures.js +3 -2
  86. package/dest/public/abstract_phase_manager.d.ts +11 -11
  87. package/dest/public/abstract_phase_manager.d.ts.map +1 -1
  88. package/dest/public/abstract_phase_manager.js +84 -59
  89. package/dest/public/app_logic_phase_manager.d.ts +3 -3
  90. package/dest/public/app_logic_phase_manager.d.ts.map +1 -1
  91. package/dest/public/app_logic_phase_manager.js +4 -3
  92. package/dest/public/db_interfaces.d.ts +1 -0
  93. package/dest/public/db_interfaces.d.ts.map +1 -1
  94. package/dest/public/execution.d.ts +28 -40
  95. package/dest/public/execution.d.ts.map +1 -1
  96. package/dest/public/execution.js +1 -51
  97. package/dest/public/executor.d.ts +9 -4
  98. package/dest/public/executor.d.ts.map +1 -1
  99. package/dest/public/executor.js +38 -27
  100. package/dest/public/hints_builder.d.ts +1 -1
  101. package/dest/public/index.d.ts +6 -6
  102. package/dest/public/index.d.ts.map +1 -1
  103. package/dest/public/index.js +7 -7
  104. package/dest/public/phase_manager_factory.d.ts +3 -3
  105. package/dest/public/phase_manager_factory.d.ts.map +1 -1
  106. package/dest/public/phase_manager_factory.js +5 -5
  107. package/dest/public/public_db_sources.d.ts +3 -1
  108. package/dest/public/public_db_sources.d.ts.map +1 -1
  109. package/dest/public/public_db_sources.js +54 -8
  110. package/dest/public/public_processor.d.ts +5 -2
  111. package/dest/public/public_processor.d.ts.map +1 -1
  112. package/dest/public/public_processor.js +143 -125
  113. package/dest/public/setup_phase_manager.d.ts +3 -3
  114. package/dest/public/setup_phase_manager.d.ts.map +1 -1
  115. package/dest/public/setup_phase_manager.js +3 -3
  116. package/dest/public/side_effect_trace.d.ts +86 -0
  117. package/dest/public/side_effect_trace.d.ts.map +1 -0
  118. package/dest/public/side_effect_trace.js +222 -0
  119. package/dest/public/side_effect_trace_interface.d.ts +36 -0
  120. package/dest/public/side_effect_trace_interface.d.ts.map +1 -0
  121. package/dest/public/side_effect_trace_interface.js +2 -0
  122. package/dest/public/tail_phase_manager.d.ts +3 -3
  123. package/dest/public/tail_phase_manager.d.ts.map +1 -1
  124. package/dest/public/tail_phase_manager.js +3 -3
  125. package/dest/public/teardown_phase_manager.d.ts +3 -3
  126. package/dest/public/teardown_phase_manager.d.ts.map +1 -1
  127. package/dest/public/teardown_phase_manager.js +4 -3
  128. package/dest/public/transitional_adaptors.d.ts +2 -6
  129. package/dest/public/transitional_adaptors.d.ts.map +1 -1
  130. package/dest/public/transitional_adaptors.js +1 -43
  131. package/package.json +18 -9
  132. package/src/acvm/oracle/oracle.ts +46 -9
  133. package/src/acvm/oracle/typed_oracle.ts +37 -7
  134. package/src/avm/avm_execution_environment.ts +10 -3
  135. package/src/avm/avm_gas.ts +2 -0
  136. package/src/avm/avm_memory_types.ts +1 -3
  137. package/src/avm/avm_simulator.ts +2 -3
  138. package/src/avm/fixtures/index.ts +19 -14
  139. package/src/avm/journal/journal.ts +127 -231
  140. package/src/avm/journal/nullifiers.ts +30 -13
  141. package/src/avm/journal/public_storage.ts +10 -0
  142. package/src/avm/opcodes/accrued_substate.ts +60 -23
  143. package/src/avm/opcodes/arithmetic.ts +17 -8
  144. package/src/avm/opcodes/bitwise.ts +13 -8
  145. package/src/avm/opcodes/comparators.ts +9 -4
  146. package/src/avm/opcodes/contract.ts +22 -26
  147. package/src/avm/opcodes/control_flow.ts +3 -1
  148. package/src/avm/opcodes/ec_add.ts +92 -0
  149. package/src/avm/opcodes/external_calls.ts +20 -36
  150. package/src/avm/opcodes/hashing.ts +11 -1
  151. package/src/avm/opcodes/instruction_impl.ts +4 -1
  152. package/src/avm/opcodes/memory.ts +18 -11
  153. package/src/avm/opcodes/multi_scalar_mul.ts +114 -0
  154. package/src/avm/opcodes/storage.ts +10 -10
  155. package/src/avm/serialization/bytecode_serialization.ts +4 -0
  156. package/src/avm/serialization/instruction_serialization.ts +2 -0
  157. package/src/avm/test_utils.ts +53 -0
  158. package/src/client/client_execution_context.ts +55 -21
  159. package/src/client/execution_note_cache.ts +0 -1
  160. package/src/client/execution_result.ts +2 -1
  161. package/src/client/index.ts +2 -0
  162. package/src/client/simulator.ts +26 -10
  163. package/src/client/view_data_oracle.ts +8 -0
  164. package/src/mocks/fixtures.ts +2 -1
  165. package/src/public/abstract_phase_manager.ts +99 -70
  166. package/src/public/app_logic_phase_manager.ts +3 -2
  167. package/src/public/db_interfaces.ts +2 -0
  168. package/src/public/execution.ts +35 -94
  169. package/src/public/executor.ts +56 -40
  170. package/src/public/index.ts +6 -12
  171. package/src/public/phase_manager_factory.ts +6 -6
  172. package/src/public/public_db_sources.ts +62 -7
  173. package/src/public/public_processor.ts +15 -9
  174. package/src/public/setup_phase_manager.ts +2 -2
  175. package/src/public/side_effect_trace.ts +323 -0
  176. package/src/public/side_effect_trace_interface.ts +41 -0
  177. package/src/public/tail_phase_manager.ts +2 -2
  178. package/src/public/teardown_phase_manager.ts +3 -2
  179. package/src/public/transitional_adaptors.ts +2 -60
  180. package/dest/avm/journal/trace.d.ts +0 -33
  181. package/dest/avm/journal/trace.d.ts.map +0 -1
  182. package/dest/avm/journal/trace.js +0 -151
  183. package/dest/avm/journal/trace_types.d.ts +0 -51
  184. package/dest/avm/journal/trace_types.d.ts.map +0 -1
  185. package/dest/avm/journal/trace_types.js +0 -6
  186. package/dest/public/utils.d.ts +0 -8
  187. package/dest/public/utils.d.ts.map +0 -1
  188. package/dest/public/utils.js +0 -38
  189. package/src/avm/journal/trace.ts +0 -184
  190. package/src/avm/journal/trace_types.ts +0 -88
  191. package/src/public/utils.ts +0 -39
@@ -1,53 +1,47 @@
1
- // TODO(5818): Rename file and all uses of "journal"
2
- import { UnencryptedL2Log } from '@aztec/circuit-types';
3
- import { AztecAddress, ContractStorageRead, ContractStorageUpdateRequest, EthAddress, L2ToL1Message, LogHash, NoteHash, Nullifier, ReadRequest, } from '@aztec/circuits.js';
4
- import { EventSelector } from '@aztec/foundation/abi';
5
- import { Fr } from '@aztec/foundation/fields';
1
+ import { AztecAddress } from '@aztec/circuits.js';
6
2
  import { createDebugLogger } from '@aztec/foundation/log';
7
- import { Nullifiers } from './nullifiers.js';
3
+ import { SerializableContractInstance } from '@aztec/types/contracts';
4
+ import { NullifierManager } from './nullifiers.js';
8
5
  import { PublicStorage } from './public_storage.js';
9
- import { WorldStateAccessTrace } from './trace.js';
10
6
  /**
11
7
  * A class to manage persistable AVM state for contract calls.
12
8
  * Maintains a cache of the current world state,
13
- * a trace of all world state accesses, and a list of accrued substate items.
9
+ * a trace of all side effects.
14
10
  *
15
- * The simulator should make any world state and accrued substate queries through this object.
11
+ * The simulator should make any world state / tree queries through this object.
16
12
  *
17
13
  * Manages merging of successful/reverted child state into current state.
18
14
  */
19
15
  export class AvmPersistableStateManager {
20
- constructor(hostStorage, parent) {
21
- this.log = createDebugLogger('aztec:avm_simulator:state_manager');
22
- /** Accrued Substate **/
23
- this.newL1Messages = [];
24
- this.newLogs = [];
16
+ constructor(
17
+ /** Reference to node storage */
18
+ hostStorage,
19
+ /** Side effect trace */
20
+ trace,
21
+ /** Public storage, including cached writes */
22
+ publicStorage,
23
+ /** Nullifier set, including cached/recently-emitted nullifiers */
24
+ nullifiers) {
25
25
  this.hostStorage = hostStorage;
26
- this.publicStorage = new PublicStorage(hostStorage.publicStateDb, parent?.publicStorage);
27
- this.nullifiers = new Nullifiers(hostStorage.commitmentsDb, parent?.nullifiers);
28
- this.trace = new WorldStateAccessTrace(parent?.trace);
29
- this.transitionalExecutionResult = {
30
- noteHashReadRequests: [],
31
- nullifierReadRequests: [],
32
- nullifierNonExistentReadRequests: [],
33
- l1ToL2MsgReadRequests: [],
34
- newNoteHashes: [],
35
- newL2ToL1Messages: [],
36
- startSideEffectCounter: this.trace.accessCounter,
37
- newNullifiers: [],
38
- contractStorageReads: [],
39
- contractStorageUpdateRequests: [],
40
- unencryptedLogsHashes: [],
41
- unencryptedLogs: [],
42
- allUnencryptedLogs: [],
43
- nestedExecutions: [],
44
- };
26
+ this.trace = trace;
27
+ this.publicStorage = publicStorage;
28
+ this.nullifiers = nullifiers;
29
+ this.log = createDebugLogger('aztec:avm_simulator:state_manager');
30
+ }
31
+ /**
32
+ * Create a new state manager with some preloaded pending siloed nullifiers
33
+ */
34
+ static newWithPendingSiloedNullifiers(hostStorage, trace, pendingSiloedNullifiers) {
35
+ const parentNullifiers = NullifierManager.newWithPendingSiloedNullifiers(hostStorage.commitmentsDb, pendingSiloedNullifiers);
36
+ return new AvmPersistableStateManager(hostStorage, trace,
37
+ /*publicStorage=*/ new PublicStorage(hostStorage.publicStateDb),
38
+ /*nullifiers=*/ parentNullifiers.fork());
45
39
  }
46
40
  /**
47
41
  * Create a new state manager forked from this one
48
42
  */
49
43
  fork() {
50
- return new AvmPersistableStateManager(this.hostStorage, this);
44
+ return new AvmPersistableStateManager(this.hostStorage, this.trace.fork(), this.publicStorage.fork(), this.nullifiers.fork());
51
45
  }
52
46
  /**
53
47
  * Write to public storage, journal/trace the write.
@@ -60,14 +54,6 @@ export class AvmPersistableStateManager {
60
54
  this.log.debug(`Storage write (address=${storageAddress}, slot=${slot}): value=${value}`);
61
55
  // Cache storage writes for later reference/reads
62
56
  this.publicStorage.write(storageAddress, slot, value);
63
- // TRANSITIONAL: This should be removed once the kernel handles and entire enqueued call per circuit
64
- // The current info to the kernel clears any previous read or write request.
65
- this.transitionalExecutionResult.contractStorageReads =
66
- this.transitionalExecutionResult.contractStorageReads.filter(read => !read.storageSlot.equals(slot) || !read.contractAddress.equals(storageAddress));
67
- this.transitionalExecutionResult.contractStorageUpdateRequests =
68
- this.transitionalExecutionResult.contractStorageUpdateRequests.filter(update => !update.storageSlot.equals(slot) || !update.contractAddress.equals(storageAddress));
69
- this.transitionalExecutionResult.contractStorageUpdateRequests.push(new ContractStorageUpdateRequest(slot, value, this.trace.accessCounter, storageAddress));
70
- // Trace all storage writes (even reverted ones)
71
57
  this.trace.tracePublicStorageWrite(storageAddress, slot, value);
72
58
  }
73
59
  /**
@@ -80,18 +66,21 @@ export class AvmPersistableStateManager {
80
66
  async readStorage(storageAddress, slot) {
81
67
  const { value, exists, cached } = await this.publicStorage.read(storageAddress, slot);
82
68
  this.log.debug(`Storage read (address=${storageAddress}, slot=${slot}): value=${value}, exists=${exists}, cached=${cached}`);
83
- // TRANSITIONAL: This should be removed once the kernel handles and entire enqueued call per circuit
84
- // The current info to the kernel kernel does not consider cached reads.
85
- if (!cached) {
86
- // The current info to the kernel removes any previous reads to the same slot.
87
- this.transitionalExecutionResult.contractStorageReads =
88
- this.transitionalExecutionResult.contractStorageReads.filter(read => !read.storageSlot.equals(slot) || !read.contractAddress.equals(storageAddress));
89
- this.transitionalExecutionResult.contractStorageReads.push(new ContractStorageRead(slot, value, this.trace.accessCounter, storageAddress));
90
- }
91
- // We want to keep track of all performed reads (even reverted ones)
92
69
  this.trace.tracePublicStorageRead(storageAddress, slot, value, exists, cached);
93
70
  return Promise.resolve(value);
94
71
  }
72
+ /**
73
+ * Read from public storage, don't trace the read.
74
+ *
75
+ * @param storageAddress - the address of the contract whose storage is being read from
76
+ * @param slot - the slot in the contract's storage being read from
77
+ * @returns the latest value written to slot, or 0 if never written to before
78
+ */
79
+ async peekStorage(storageAddress, slot) {
80
+ const { value, exists, cached } = await this.publicStorage.read(storageAddress, slot);
81
+ this.log.debug(`Storage peek (address=${storageAddress}, slot=${slot}): value=${value}, exists=${exists}, cached=${cached}`);
82
+ return Promise.resolve(value);
83
+ }
95
84
  // TODO(4886): We currently don't silo note hashes.
96
85
  /**
97
86
  * Check if a note hash exists at the given leaf index, trace the check.
@@ -105,7 +94,7 @@ export class AvmPersistableStateManager {
105
94
  const gotLeafIndex = await this.hostStorage.commitmentsDb.getCommitmentIndex(noteHash);
106
95
  const exists = gotLeafIndex === leafIndex.toBigInt();
107
96
  this.log.debug(`noteHashes(${storageAddress})@${noteHash} ?? leafIndex: ${leafIndex}, exists: ${exists}.`);
108
- this.trace.traceNoteHashCheck(storageAddress, noteHash, exists, leafIndex);
97
+ this.trace.traceNoteHashCheck(storageAddress, noteHash, leafIndex, exists);
109
98
  return Promise.resolve(exists);
110
99
  }
111
100
  /**
@@ -113,8 +102,6 @@ export class AvmPersistableStateManager {
113
102
  * @param noteHash - the unsiloed note hash to write
114
103
  */
115
104
  writeNoteHash(storageAddress, noteHash) {
116
- // TRANSITIONAL: This should be removed once the kernel handles and entire enqueued call per circuit
117
- this.transitionalExecutionResult.newNoteHashes.push(new NoteHash(noteHash, this.trace.accessCounter));
118
105
  this.log.debug(`noteHashes(${storageAddress}) += @${noteHash}.`);
119
106
  this.trace.traceNewNoteHash(storageAddress, noteHash);
120
107
  }
@@ -126,15 +113,8 @@ export class AvmPersistableStateManager {
126
113
  */
127
114
  async checkNullifierExists(storageAddress, nullifier) {
128
115
  const [exists, isPending, leafIndex] = await this.nullifiers.checkExists(storageAddress, nullifier);
129
- this.log.debug(`nullifiers(${storageAddress})@${nullifier} ?? leafIndex: ${leafIndex}, pending: ${isPending}, exists: ${exists}.`);
130
- // TRANSITIONAL: This should be removed once the kernel handles and entire enqueued call per circuit
131
- if (exists) {
132
- this.transitionalExecutionResult.nullifierReadRequests.push(new ReadRequest(nullifier, this.trace.accessCounter));
133
- }
134
- else {
135
- this.transitionalExecutionResult.nullifierNonExistentReadRequests.push(new ReadRequest(nullifier, this.trace.accessCounter));
136
- }
137
- this.trace.traceNullifierCheck(storageAddress, nullifier, exists, isPending, leafIndex);
116
+ this.log.debug(`nullifiers(${storageAddress})@${nullifier} ?? leafIndex: ${leafIndex}, exists: ${exists}, pending: ${isPending}.`);
117
+ this.trace.traceNullifierCheck(storageAddress, nullifier, leafIndex, exists, isPending);
138
118
  return Promise.resolve(exists);
139
119
  }
140
120
  /**
@@ -143,8 +123,6 @@ export class AvmPersistableStateManager {
143
123
  * @param nullifier - the unsiloed nullifier to write
144
124
  */
145
125
  async writeNullifier(storageAddress, nullifier) {
146
- // TRANSITIONAL: This should be removed once the kernel handles and entire enqueued call per circuit
147
- this.transitionalExecutionResult.newNullifiers.push(new Nullifier(nullifier, this.trace.accessCounter, /*noteHash=*/ Fr.ZERO));
148
126
  this.log.debug(`nullifiers(${storageAddress}) += ${nullifier}.`);
149
127
  // Cache pending nullifiers for later access
150
128
  await this.nullifiers.append(storageAddress, nullifier);
@@ -157,11 +135,11 @@ export class AvmPersistableStateManager {
157
135
  * @param msgLeafIndex - the message leaf index to use in the check
158
136
  * @returns exists - whether the message exists in the L1 to L2 Messages tree
159
137
  */
160
- async checkL1ToL2MessageExists(msgHash, msgLeafIndex) {
138
+ async checkL1ToL2MessageExists(contractAddress, msgHash, msgLeafIndex) {
161
139
  const valueAtIndex = await this.hostStorage.commitmentsDb.getL1ToL2LeafValue(msgLeafIndex.toBigInt());
162
140
  const exists = valueAtIndex?.equals(msgHash) ?? false;
163
141
  this.log.debug(`l1ToL2Messages(@${msgLeafIndex}) ?? exists: ${exists}, expected: ${msgHash}, found: ${valueAtIndex}.`);
164
- this.trace.traceL1ToL2MessageCheck(msgHash, msgLeafIndex, exists);
142
+ this.trace.traceL1ToL2MessageCheck(contractAddress, msgHash, msgLeafIndex, exists);
165
143
  return Promise.resolve(exists);
166
144
  }
167
145
  /**
@@ -169,72 +147,60 @@ export class AvmPersistableStateManager {
169
147
  * @param recipient - L1 contract address to send the message to.
170
148
  * @param content - Message content.
171
149
  */
172
- writeL1Message(recipient, content) {
150
+ writeL2ToL1Message(recipient, content) {
173
151
  this.log.debug(`L1Messages(${recipient}) += ${content}.`);
174
- const recipientAddress = recipient instanceof EthAddress ? recipient : EthAddress.fromField(recipient);
175
- const message = new L2ToL1Message(recipientAddress, content, 0);
176
- this.newL1Messages.push(message);
177
- // TRANSITIONAL: This should be removed once the kernel handles and entire enqueued call per circuit
178
- this.transitionalExecutionResult.newL2ToL1Messages.push(message);
152
+ this.trace.traceNewL2ToL1Message(recipient, content);
179
153
  }
180
- writeLog(contractAddress, event, log) {
154
+ /**
155
+ * Write an unencrypted log
156
+ * @param contractAddress - address of the contract that emitted the log
157
+ * @param event - log event selector
158
+ * @param log - log contents
159
+ */
160
+ writeUnencryptedLog(contractAddress, event, log) {
181
161
  this.log.debug(`UnencryptedL2Log(${contractAddress}) += event ${event} with ${log.length} fields.`);
182
- const ulog = new UnencryptedL2Log(AztecAddress.fromField(contractAddress), EventSelector.fromField(event), Buffer.concat(log.map(f => f.toBuffer())));
183
- const logHash = Fr.fromBuffer(ulog.hash());
184
- // TRANSITIONAL: This should be removed once the kernel handles and entire enqueued call per circuit
185
- this.transitionalExecutionResult.unencryptedLogs.push(ulog);
186
- this.transitionalExecutionResult.allUnencryptedLogs.push(ulog);
187
- // this duplicates exactly what happens in the trace just for the purpose of transitional integration with the kernel
188
- this.transitionalExecutionResult.unencryptedLogsHashes.push(
189
- // TODO(6578): explain magic number 4 here
190
- new LogHash(logHash, this.trace.accessCounter, new Fr(ulog.length + 4)));
191
- // TODO(6206): likely need to track this here and not just in the transitional logic.
192
- // TODO(6205): why are logs pushed here but logs hashes are traced?
193
- this.newLogs.push(ulog);
194
- this.trace.traceNewLog(logHash);
195
- }
196
- /**
197
- * Accept nested world state modifications, merging in its trace and accrued substate
198
- */
199
- acceptNestedCallState(nestedJournal) {
200
- // Merge Public Storage
201
- this.publicStorage.acceptAndMerge(nestedJournal.publicStorage);
202
- // Merge World State Access Trace
203
- this.trace.acceptAndMerge(nestedJournal.trace);
204
- // Accrued Substate
205
- this.newL1Messages.push(...nestedJournal.newL1Messages);
206
- this.newLogs.push(...nestedJournal.newLogs);
207
- // TRANSITIONAL: This should be removed once the kernel handles and entire enqueued call per circuit
208
- this.transitionalExecutionResult.allUnencryptedLogs.push(...nestedJournal.transitionalExecutionResult.allUnencryptedLogs);
209
- }
210
- /**
211
- * Reject nested world state, merging in its trace, but not accepting any state modifications
212
- */
213
- rejectNestedCallState(nestedJournal) {
214
- // Merge World State Access Trace
215
- this.trace.acceptAndMerge(nestedJournal.trace);
216
- }
217
- // TODO:(5818): do we need this type anymore?
218
- /**
219
- * Access the current state of the journal
220
- *
221
- * @returns a JournalData object
222
- */
223
- flush() {
224
- return {
225
- noteHashChecks: this.trace.noteHashChecks,
226
- newNoteHashes: this.trace.newNoteHashes,
227
- nullifierChecks: this.trace.nullifierChecks,
228
- newNullifiers: this.trace.newNullifiers,
229
- l1ToL2MessageChecks: this.trace.l1ToL2MessageChecks,
230
- newL1Messages: this.newL1Messages,
231
- newLogs: this.newLogs,
232
- newLogsHashes: this.trace.newLogsHashes,
233
- currentStorageValue: this.publicStorage.getCache().cachePerContract,
234
- storageReads: this.trace.publicStorageReads,
235
- storageWrites: this.trace.publicStorageWrites,
236
- sideEffectCounter: this.trace.accessCounter,
237
- };
162
+ this.trace.traceUnencryptedLog(contractAddress, event, log);
163
+ }
164
+ /**
165
+ * Get a contract instance.
166
+ * @param contractAddress - address of the contract instance to retrieve.
167
+ * @returns the contract instance with an "exists" flag
168
+ */
169
+ async getContractInstance(contractAddress) {
170
+ let exists = true;
171
+ const aztecAddress = AztecAddress.fromField(contractAddress);
172
+ let instance = await this.hostStorage.contractsDb.getContractInstance(aztecAddress);
173
+ if (instance === undefined) {
174
+ instance = SerializableContractInstance.empty().withAddress(aztecAddress);
175
+ exists = false;
176
+ }
177
+ this.log.debug(`Get Contract instance (address=${contractAddress}): exists=${exists}, instance=${JSON.stringify(instance)}`);
178
+ const tracedInstance = { ...instance, exists };
179
+ this.trace.traceGetContractInstance(tracedInstance);
180
+ return Promise.resolve(tracedInstance);
181
+ }
182
+ /**
183
+ * Accept nested world state modifications
184
+ */
185
+ acceptNestedCallState(nestedState) {
186
+ this.publicStorage.acceptAndMerge(nestedState.publicStorage);
187
+ this.nullifiers.acceptAndMerge(nestedState.nullifiers);
188
+ }
189
+ /**
190
+ * Get a contract's bytecode from the contracts DB
191
+ */
192
+ async getBytecode(contractAddress, selector) {
193
+ return await this.hostStorage.contractsDb.getBytecode(contractAddress, selector);
194
+ }
195
+ /**
196
+ * Accept the nested call's state and trace the nested call
197
+ */
198
+ async processNestedCall(nestedState, success, nestedEnvironment, startGasLeft, endGasLeft, bytecode, avmCallResults) {
199
+ if (success) {
200
+ this.acceptNestedCallState(nestedState);
201
+ }
202
+ const functionName = (await nestedState.hostStorage.contractsDb.getDebugFunctionName(nestedEnvironment.address, nestedEnvironment.temporaryFunctionSelector)) ?? `${nestedEnvironment.address}:${nestedEnvironment.temporaryFunctionSelector}`;
203
+ this.trace.traceNestedCall(nestedState.trace, nestedEnvironment, startGasLeft, endGasLeft, bytecode, avmCallResults, functionName);
238
204
  }
239
205
  }
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam91cm5hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vam91cm5hbC9qb3VybmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRDtBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIsVUFBVSxFQUNWLGFBQWEsRUFDYixPQUFPLEVBQ1AsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEdBQ1osTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBb0IsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUk1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQXFEbkQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLE9BQU8sMEJBQTBCO0lBc0JyQyxZQUFZLFdBQXdCLEVBQUUsTUFBbUM7UUFyQnhELFFBQUcsR0FBZ0IsaUJBQWlCLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQWMzRix3QkFBd0I7UUFDakIsa0JBQWEsR0FBb0IsRUFBRSxDQUFDO1FBQ3BDLFlBQU8sR0FBdUIsRUFBRSxDQUFDO1FBTXRDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxhQUFhLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLFVBQVUsR0FB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
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam91cm5hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vam91cm5hbC9qb3VybmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQW1DLE1BQU0sb0JBQW9CLENBQUM7QUFFbkYsT0FBTyxFQUFvQixpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBT3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sT0FBTywwQkFBMEI7SUFHckM7SUFDRSxnQ0FBZ0M7SUFDeEIsV0FBd0I7SUFDaEMsd0JBQXdCO0lBQ2hCLEtBQXFDO0lBQzdDLDhDQUE4QztJQUM5QixhQUE0QjtJQUM1QyxrRUFBa0U7SUFDakQsVUFBNEI7UUFOckMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFFeEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0M7UUFFN0Isa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFM0IsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFWOUIsUUFBRyxHQUFnQixpQkFBaUIsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBV3hGLENBQUM7SUFFSjs7T0FFRztJQUNJLE1BQU0sQ0FBQyw4QkFBOEIsQ0FDMUMsV0FBd0IsRUFDeEIsS0FBcUMsRUFDckMsdUJBQTZCO1FBRTdCLE1BQU0sZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsOEJBQThCLENBQ3RFLFdBQVcsQ0FBQyxhQUFhLEVBQ3pCLHVCQUF1QixDQUN4QixDQUFDO1FBQ0YsT0FBTyxJQUFJLDBCQUEwQixDQUNuQyxXQUFXLEVBQ1gsS0FBSztRQUNMLGtCQUFrQixDQUFDLElBQUksYUFBYSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7UUFDL0QsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUN4QyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSTtRQUNULE9BQU8sSUFBSSwwQkFBMEIsQ0FDbkMsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsRUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxZQUFZLENBQUMsY0FBa0IsRUFBRSxJQUFRLEVBQUUsS0FBUztRQUN6RCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsY0FBYyxVQUFVLElBQUksWUFBWSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzFGLGlEQUFpRDtRQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksS0FBSyxDQUFDLFdBQVcsQ0FBQyxjQUFrQixFQUFFLElBQVE7UUFDbkQsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQ1osMEJBQTBCLGNBQWMsVUFBVSxJQUFJLFlBQVksS0FBSyxZQUFZLE1BQU0sWUFBWSxNQUFNLEVBQUUsQ0FDOUcsQ0FBQztRQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9FLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksS0FBSyxDQUFDLFdBQVcsQ0FBQyxjQUFrQixFQUFFLElBQVE7UUFDbkQsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQ1osMEJBQTBCLGNBQWMsVUFBVSxJQUFJLFlBQVksS0FBSyxZQUFZLE1BQU0sWUFBWSxNQUFNLEVBQUUsQ0FDOUcsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsbURBQW1EO0lBQ25EOzs7Ozs7O09BT0c7SUFDSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsY0FBa0IsRUFBRSxRQUFZLEVBQUUsU0FBYTtRQUM5RSxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0sTUFBTSxHQUFHLFlBQVksS0FBSyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxjQUFjLEtBQUssUUFBUSxrQkFBa0IsU0FBUyxhQUFhLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMzRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGFBQWEsQ0FBQyxjQUFrQixFQUFFLFFBQVk7UUFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxjQUFjLFNBQVMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsY0FBa0IsRUFBRSxTQUFhO1FBQ2pFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3BHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUNaLGNBQWMsY0FBYyxLQUFLLFNBQVMsa0JBQWtCLFNBQVMsYUFBYSxNQUFNLGNBQWMsU0FBUyxHQUFHLENBQ25ILENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4RixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsY0FBYyxDQUFDLGNBQWtCLEVBQUUsU0FBYTtRQUMzRCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLGNBQWMsUUFBUSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2pFLDRDQUE0QztRQUM1QyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4RCxxREFBcUQ7UUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLHdCQUF3QixDQUFDLGVBQW1CLEVBQUUsT0FBVyxFQUFFLFlBQWdCO1FBQ3RGLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdEcsTUFBTSxNQUFNLEdBQUcsWUFBWSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUM7UUFDdEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQ1osbUJBQW1CLFlBQVksZ0JBQWdCLE1BQU0sZUFBZSxPQUFPLFlBQVksWUFBWSxHQUFHLENBQ3ZHLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25GLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGtCQUFrQixDQUFDLFNBQWEsRUFBRSxPQUFXO1FBQ2xELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsU0FBUyxRQUFRLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksbUJBQW1CLENBQUMsZUFBbUIsRUFBRSxLQUFTLEVBQUUsR0FBUztRQUNsRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsZUFBZSxjQUFjLEtBQUssU0FBUyxHQUFHLENBQUMsTUFBTSxVQUFVLENBQUMsQ0FBQztRQUNwRyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsZUFBbUI7UUFDbEQsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0QsSUFBSSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRixJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMzQixRQUFRLEdBQUcsNEJBQTRCLENBQUMsS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzFFLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUNaLGtDQUFrQyxlQUFlLGFBQWEsTUFBTSxjQUFjLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FDN0csQ0FBQztRQUNGLE1BQU0sY0FBYyxHQUFHLEVBQUUsR0FBRyxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ0kscUJBQXFCLENBQUMsV0FBdUM7UUFDbEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsV0FBVyxDQUFDLGVBQTZCLEVBQUUsUUFBMEI7UUFDaEYsT0FBTyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQixDQUM1QixXQUF1QyxFQUN2QyxPQUFnQixFQUNoQixpQkFBMEMsRUFDMUMsWUFBaUIsRUFDakIsVUFBZSxFQUNmLFFBQWdCLEVBQ2hCLGNBQXNDO1FBRXRDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELE1BQU0sWUFBWSxHQUNoQixDQUFDLE1BQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQzdELGlCQUFpQixDQUFDLE9BQU8sRUFDekIsaUJBQWlCLENBQUMseUJBQXlCLENBQzVDLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQ3RGLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUN4QixXQUFXLENBQUMsS0FBSyxFQUNqQixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFVBQVUsRUFDVixRQUFRLEVBQ1IsY0FBYyxFQUNkLFlBQVksQ0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGIn0=
@@ -5,18 +5,28 @@ import type { CommitmentsDB } from '../../index.js';
5
5
  * Maintains a nullifier cache, and ensures that existence checks fall back to the correct source.
6
6
  * When a contract call completes, its cached nullifier set can be merged into its parent's.
7
7
  */
8
- export declare class Nullifiers {
8
+ export declare class NullifierManager {
9
9
  /** Reference to node storage. Checked on parent cache-miss. */
10
10
  private readonly hostNullifiers;
11
- /** Parent's nullifiers. Checked on this' cache-miss. */
12
- private readonly parent?;
13
11
  /** Cached nullifiers. */
14
- cache: NullifierCache;
12
+ private readonly cache;
13
+ /** Parent nullifier manager to fall back on */
14
+ private readonly parent?;
15
15
  constructor(
16
16
  /** Reference to node storage. Checked on parent cache-miss. */
17
17
  hostNullifiers: CommitmentsDB,
18
- /** Parent's nullifiers. Checked on this' cache-miss. */
19
- parent?: Nullifiers | undefined);
18
+ /** Cached nullifiers. */
19
+ cache?: NullifierCache,
20
+ /** Parent nullifier manager to fall back on */
21
+ parent?: NullifierManager | undefined);
22
+ /**
23
+ * Create a new nullifiers manager with some preloaded pending siloed nullifiers
24
+ */
25
+ static newWithPendingSiloedNullifiers(hostNullifiers: CommitmentsDB, pendingSiloedNullifiers: Fr[]): NullifierManager;
26
+ /**
27
+ * Create a new nullifiers manager forked from this one
28
+ */
29
+ fork(): NullifierManager;
20
30
  /**
21
31
  * Get a nullifier's existence in this' cache or parent's (recursively).
22
32
  * DOES NOT CHECK HOST STORAGE!
@@ -51,7 +61,7 @@ export declare class Nullifiers {
51
61
  *
52
62
  * @param incomingNullifiers - the incoming cached nullifiers to merge into this instance's
53
63
  */
54
- acceptAndMerge(incomingNullifiers: Nullifiers): void;
64
+ acceptAndMerge(incomingNullifiers: NullifierManager): void;
55
65
  }
56
66
  /**
57
67
  * A class to cache nullifiers created during a contract call's AVM simulation.
@@ -66,6 +76,10 @@ export declare class NullifierCache {
66
76
  */
67
77
  private cachePerContract;
68
78
  private siloedNullifiers;
79
+ /**
80
+ * @parem siloedNullifierFrs: optional list of pending siloed nullifiers to initialize this cache with
81
+ */
82
+ constructor(siloedNullifierFrs?: Fr[]);
69
83
  /**
70
84
  * Check whether a nullifier exists in the cache.
71
85
  *
@@ -81,7 +95,6 @@ export declare class NullifierCache {
81
95
  * @param nullifier - the nullifier to stage
82
96
  */
83
97
  append(storageAddress: Fr, nullifier: Fr): void;
84
- appendSiloed(siloedNullifier: Fr): void;
85
98
  /**
86
99
  * Merge another cache's nullifiers into this instance's.
87
100
  *
@@ -1 +1 @@
1
- {"version":3,"file":"nullifiers.d.ts","sourceRoot":"","sources":["../../../src/avm/journal/nullifiers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,UAAU;IAKnB,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,wDAAwD;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAP1B,yBAAyB;IAClB,KAAK,EAAE,cAAc,CAAC;;IAG3B,+DAA+D;IAC9C,cAAc,EAAE,aAAa;IAC9C,wDAAwD;IACvC,MAAM,CAAC,wBAAwB;IAKlD;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;;;;;;;;;;OAYG;IACU,WAAW,CACtB,cAAc,EAAE,EAAE,EAClB,SAAS,EAAE,EAAE,GACZ,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;IAe5E;;;;;OAKG;IACU,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;IAUrD;;;;OAIG;IACI,cAAc,CAAC,kBAAkB,EAAE,UAAU;CAGrD;AAED;;;;GAIG;AACH,qBAAa,cAAc;IACzB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB,CAAuC;IAC/D,OAAO,CAAC,gBAAgB,CAA0B;IAElD;;;;;;OAMG;IACI,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO;IAOzD;;;;;OAKG;IACI,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;IAgBxC,YAAY,CAAC,eAAe,EAAE,EAAE;IAIvC;;;;;;;;OAQG;IACI,cAAc,CAAC,kBAAkB,EAAE,cAAc;CAwBzD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;CAI5C"}
1
+ {"version":3,"file":"nullifiers.d.ts","sourceRoot":"","sources":["../../../src/avm/journal/nullifiers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,gBAAgB;IAEzB,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,yBAAyB;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;;IALxB,+DAA+D;IAC9C,cAAc,EAAE,aAAa;IAC9C,yBAAyB;IACR,KAAK,GAAE,cAAqC;IAC7D,+CAA+C;IAC9B,MAAM,CAAC,8BAAkB;IAG5C;;OAEG;WACW,8BAA8B,CAAC,cAAc,EAAE,aAAa,EAAE,uBAAuB,EAAE,EAAE,EAAE;IAKzG;;OAEG;IACI,IAAI;IAIX;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;;;;;;;;;;OAYG;IACU,WAAW,CACtB,cAAc,EAAE,EAAE,EAClB,SAAS,EAAE,EAAE,GACZ,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;IAe5E;;;;;OAKG;IACU,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;IAUrD;;;;OAIG;IACI,cAAc,CAAC,kBAAkB,EAAE,gBAAgB;CAG3D;AAED;;;;GAIG;AACH,qBAAa,cAAc;IACzB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB,CAAuC;IAC/D,OAAO,CAAC,gBAAgB,CAA0B;IAElD;;OAEG;gBACS,kBAAkB,CAAC,EAAE,EAAE,EAAE;IAMrC;;;;;;OAMG;IACI,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO;IAOzD;;;;;OAKG;IACI,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;IAgB/C;;;;;;;;OAQG;IACI,cAAc,CAAC,kBAAkB,EAAE,cAAc;CAwBzD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;CAI5C"}
@@ -6,15 +6,30 @@ import { Fr } from '@aztec/foundation/fields';
6
6
  * Maintains a nullifier cache, and ensures that existence checks fall back to the correct source.
7
7
  * When a contract call completes, its cached nullifier set can be merged into its parent's.
8
8
  */
9
- export class Nullifiers {
9
+ export class NullifierManager {
10
10
  constructor(
11
11
  /** Reference to node storage. Checked on parent cache-miss. */
12
12
  hostNullifiers,
13
- /** Parent's nullifiers. Checked on this' cache-miss. */
13
+ /** Cached nullifiers. */
14
+ cache = new NullifierCache(),
15
+ /** Parent nullifier manager to fall back on */
14
16
  parent) {
15
17
  this.hostNullifiers = hostNullifiers;
18
+ this.cache = cache;
16
19
  this.parent = parent;
17
- this.cache = new NullifierCache();
20
+ }
21
+ /**
22
+ * Create a new nullifiers manager with some preloaded pending siloed nullifiers
23
+ */
24
+ static newWithPendingSiloedNullifiers(hostNullifiers, pendingSiloedNullifiers) {
25
+ const cache = new NullifierCache(pendingSiloedNullifiers);
26
+ return new NullifierManager(hostNullifiers, cache);
27
+ }
28
+ /**
29
+ * Create a new nullifiers manager forked from this one
30
+ */
31
+ fork() {
32
+ return new NullifierManager(this.hostNullifiers, new NullifierCache(), this);
18
33
  }
19
34
  /**
20
35
  * Get a nullifier's existence in this' cache or parent's (recursively).
@@ -88,7 +103,10 @@ export class Nullifiers {
88
103
  * An instance of this class can merge another instance's cached nullifiers into its own.
89
104
  */
90
105
  export class NullifierCache {
91
- constructor() {
106
+ /**
107
+ * @parem siloedNullifierFrs: optional list of pending siloed nullifiers to initialize this cache with
108
+ */
109
+ constructor(siloedNullifierFrs) {
92
110
  /**
93
111
  * Map for staging nullifiers.
94
112
  * One inner-set per contract storage address,
@@ -96,6 +114,9 @@ export class NullifierCache {
96
114
  */
97
115
  this.cachePerContract = new Map();
98
116
  this.siloedNullifiers = new Set();
117
+ if (siloedNullifierFrs !== undefined) {
118
+ siloedNullifierFrs.forEach(nullifier => this.siloedNullifiers.add(nullifier.toBigInt()));
119
+ }
99
120
  }
100
121
  /**
101
122
  * Check whether a nullifier exists in the cache.
@@ -127,9 +148,6 @@ export class NullifierCache {
127
148
  }
128
149
  nullifiersForContract.add(nullifier.toBigInt());
129
150
  }
130
- appendSiloed(siloedNullifier) {
131
- this.siloedNullifiers.add(siloedNullifier.toBigInt());
132
- }
133
151
  /**
134
152
  * Merge another cache's nullifiers into this instance's.
135
153
  *
@@ -169,4 +187,4 @@ export class NullifierCollisionError extends Error {
169
187
  this.name = 'NullifierCollisionError';
170
188
  }
171
189
  }
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVsbGlmaWVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vam91cm5hbC9udWxsaWZpZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSTlDOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUlyQjtJQUNFLCtEQUErRDtJQUM5QyxjQUE2QjtJQUM5Qyx3REFBd0Q7SUFDdkMsTUFBK0I7UUFGL0IsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFFN0IsV0FBTSxHQUFOLE1BQU0sQ0FBeUI7UUFFaEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyx1QkFBdUIsQ0FBQyxjQUFrQixFQUFFLFNBQWE7UUFDL0QseUJBQXlCO1FBQ3pCLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuRSxvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEMsK0VBQStFO1lBQy9FLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuRixDQUFDO1FBQ0QsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNJLEtBQUssQ0FBQyxXQUFXLENBQ3RCLGNBQWtCLEVBQ2xCLFNBQWE7UUFFYiw4Q0FBOEM7UUFDOUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixD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
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVsbGlmaWVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vam91cm5hbC9udWxsaWZpZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSTlDOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCO0lBQ0UsK0RBQStEO0lBQzlDLGNBQTZCO0lBQzlDLHlCQUF5QjtJQUNSLFFBQXdCLElBQUksY0FBYyxFQUFFO0lBQzdELCtDQUErQztJQUM5QixNQUF5QjtRQUp6QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUU3QixVQUFLLEdBQUwsS0FBSyxDQUF1QztRQUU1QyxXQUFNLEdBQU4sTUFBTSxDQUFtQjtJQUN6QyxDQUFDO0lBRUo7O09BRUc7SUFDSSxNQUFNLENBQUMsOEJBQThCLENBQUMsY0FBNkIsRUFBRSx1QkFBNkI7UUFDdkcsTUFBTSxLQUFLLEdBQUcsSUFBSSxjQUFjLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMxRCxPQUFPLElBQUksZ0JBQWdCLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUk7UUFDVCxPQUFPLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLGNBQWMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyx1QkFBdUIsQ0FBQyxjQUFrQixFQUFFLFNBQWE7UUFDL0QseUJBQXlCO1FBQ3pCLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuRSxvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEMsK0VBQStFO1lBQy9FLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuRixDQUFDO1FBQ0QsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNJLEtBQUssQ0FBQyxXQUFXLENBQ3RCLGNBQWtCLEVBQ2xCLFNBQWE7UUFFYiw4Q0FBOEM7UUFDOUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNoRiw4REFBOEQ7UUFDOUQsa0ZBQWtGO1FBQ2xGLElBQUksU0FBUyxHQUF1QixTQUFTLENBQUM7UUFDOUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JCLG1FQUFtRTtZQUNuRSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNwRyxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsZUFBZSxJQUFJLFNBQVMsS0FBSyxTQUFTLENBQUM7UUFDMUQsU0FBUyxHQUFHLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzVELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBa0IsRUFBRSxTQUFhO1FBQ25ELE1BQU0sQ0FBQyxNQUFNLEVBQUUsQUFBRCxFQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0RSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLHVCQUF1QixDQUMvQixhQUFhLFNBQVMsZ0JBQWdCLGNBQWMsMENBQTBDLENBQy9GLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksY0FBYyxDQUFDLGtCQUFvQztRQUN4RCxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0Y7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFTekI7O09BRUc7SUFDSCxZQUFZLGtCQUF5QjtRQVhyQzs7OztXQUlHO1FBQ0sscUJBQWdCLEdBQTZCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdkQscUJBQWdCLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7UUFNaEQsSUFBSSxrQkFBa0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0YsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsY0FBa0IsRUFBRSxTQUFhO1FBQzdDLE1BQU0sTUFBTSxHQUNWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMvRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDekcsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxjQUFrQixFQUFFLFNBQWE7UUFDN0MsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sSUFBSSx1QkFBdUIsQ0FDL0IsYUFBYSxTQUFTLGdCQUFnQixjQUFjLDJCQUEyQixDQUNoRixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUkscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNqRiw0RkFBNEY7UUFDNUYsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDM0IscUJBQXFCLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFDRCxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksY0FBYyxDQUFDLGtCQUFrQztRQUN0RCwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDcEcsOERBQThEO1FBQzlELEtBQUssTUFBTSxDQUFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDN0YsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUN6Qiw4Q0FBOEM7Z0JBQzlDLHlEQUF5RDtnQkFDekQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztZQUN0RSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sdUVBQXVFO2dCQUN2RSxzRUFBc0U7Z0JBQ3RFLEtBQUssTUFBTSxTQUFTLElBQUksdUJBQXVCLEVBQUUsQ0FBQztvQkFDaEQsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQzt3QkFDdkMsTUFBTSxJQUFJLHVCQUF1QixDQUMvQix1REFBdUQsU0FBUywrQkFBK0IsZUFBZSxHQUFHLENBQ2xILENBQUM7b0JBQ0osQ0FBQztvQkFDRCxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3JDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxLQUFLO0lBQ2hELFlBQVksT0FBZSxFQUFFLEdBQUcsSUFBVztRQUN6QyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyx5QkFBeUIsQ0FBQztJQUN4QyxDQUFDO0NBQ0YifQ==
@@ -22,6 +22,10 @@ export declare class PublicStorage {
22
22
  hostPublicStorage: PublicStateDB,
23
23
  /** Parent's storage. Checked on this' cache-miss. */
24
24
  parent?: PublicStorage | undefined);
25
+ /**
26
+ * Create a new public storage manager forked from this one
27
+ */
28
+ fork(): PublicStorage;
25
29
  /**
26
30
  * Get the pending storage.
27
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"public_storage.d.ts","sourceRoot":"","sources":["../../../src/avm/journal/public_storage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,KAAK,uBAAuB,GAAG;IAC7B,KAAK,EAAE,EAAE,CAAC;IACV,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,qBAAa,aAAa;IAKtB,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,qDAAqD;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAP1B,6BAA6B;IAC7B,OAAO,CAAC,KAAK,CAAqB;;IAGhC,+DAA+D;IAC9C,iBAAiB,EAAE,aAAa;IACjD,qDAAqD;IACpC,MAAM,CAAC,2BAAe;IAKzC;;OAEG;IACI,QAAQ;IAIf;;;;;;;OAOG;IACI,gBAAgB,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,SAAS;IAWrE;;;;;;;;;;OAUG;IACU,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAgBjF;;;;;;OAMG;IACI,KAAK,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IAIpD;;;;OAIG;IACI,cAAc,CAAC,qBAAqB,EAAE,aAAa;IAI1D;;OAEG;IACU,UAAU;CAOxB;AAED;;;;GAIG;AACH,cAAM,kBAAkB;IACtB;;;;OAIG;IACI,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAa;IAGlE;;;;;;OAMG;IACI,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,SAAS;IAIzD;;;;;;OAMG;IACI,KAAK,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IAUpD;;;;;;;;;OASG;IACI,cAAc,CAAC,oBAAoB,EAAE,kBAAkB;CAiB/D"}
1
+ {"version":3,"file":"public_storage.d.ts","sourceRoot":"","sources":["../../../src/avm/journal/public_storage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,KAAK,uBAAuB,GAAG;IAC7B,KAAK,EAAE,EAAE,CAAC;IACV,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,qBAAa,aAAa;IAKtB,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,qDAAqD;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAP1B,6BAA6B;IAC7B,OAAO,CAAC,KAAK,CAAqB;;IAGhC,+DAA+D;IAC9C,iBAAiB,EAAE,aAAa;IACjD,qDAAqD;IACpC,MAAM,CAAC,2BAAe;IAKzC;;OAEG;IACI,IAAI;IAIX;;OAEG;IACI,QAAQ;IAIf;;;;;;;OAOG;IACI,gBAAgB,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,SAAS;IAWrE;;;;;;;;;;OAUG;IACU,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAmBjF;;;;;;OAMG;IACI,KAAK,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IAIpD;;;;OAIG;IACI,cAAc,CAAC,qBAAqB,EAAE,aAAa;IAI1D;;OAEG;IACU,UAAU;CAOxB;AAED;;;;GAIG;AACH,cAAM,kBAAkB;IACtB;;;;OAIG;IACI,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAa;IAGlE;;;;;;OAMG;IACI,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,SAAS;IAIzD;;;;;;OAMG;IACI,KAAK,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IAUpD;;;;;;;;;OASG;IACI,cAAc,CAAC,oBAAoB,EAAE,kBAAkB;CAiB/D"}
@@ -15,6 +15,12 @@ export class PublicStorage {
15
15
  this.parent = parent;
16
16
  this.cache = new PublicStorageCache();
17
17
  }
18
+ /**
19
+ * Create a new public storage manager forked from this one
20
+ */
21
+ fork() {
22
+ return new PublicStorage(this.hostPublicStorage, this);
23
+ }
18
24
  /**
19
25
  * Get the pending storage.
20
26
  */
@@ -57,6 +63,9 @@ export class PublicStorage {
57
63
  // Finally try the host's Aztec state (a trip to the database)
58
64
  if (!value) {
59
65
  value = await this.hostPublicStorage.storageRead(storageAddress, slot);
66
+ // TODO(dbanks12): if value retrieved from host storage, we can cache it here
67
+ // any future reads to the same slot can read from cache instead of more expensive
68
+ // DB access
60
69
  }
61
70
  else {
62
71
  cached = true;
@@ -165,4 +174,4 @@ class PublicStorageCache {
165
174
  }
166
175
  }
167
176
  }
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3N0b3JhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL2pvdXJuYWwvcHVibGljX3N0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVU5Qzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFJeEI7SUFDRSwrREFBK0Q7SUFDOUMsaUJBQWdDO0lBQ2pELHFEQUFxRDtJQUNwQyxNQUFzQjtRQUZ0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWU7UUFFaEMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFFdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLGdCQUFnQixDQUFDLGNBQWtCLEVBQUUsSUFBUTtRQUNsRCxxQ0FBcUM7UUFDckMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELGtDQUFrQztRQUNsQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQiwrRUFBK0U7WUFDL0UsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFrQixFQUFFLElBQVE7UUFDNUMsSUFBSSxNQUFNLEdBQUcs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
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3N0b3JhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL2pvdXJuYWwvcHVibGljX3N0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVU5Qzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFJeEI7SUFDRSwrREFBK0Q7SUFDOUMsaUJBQWdDO0lBQ2pELHFEQUFxRDtJQUNwQyxNQUFzQjtRQUZ0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWU7UUFFaEMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFFdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSTtRQUNULE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxnQkFBZ0IsQ0FBQyxjQUFrQixFQUFFLElBQVE7UUFDbEQscUNBQXFDO1FBQ3JDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRCxrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUIsK0VBQStFO1lBQy9FLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENB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
@@ -56,11 +56,11 @@ export declare class EmitUnencryptedLog extends Instruction {
56
56
  private indirect;
57
57
  private eventSelectorOffset;
58
58
  private logOffset;
59
- private logSize;
59
+ private logSizeOffset;
60
60
  static type: string;
61
61
  static readonly opcode: Opcode;
62
62
  static readonly wireFormat: OperandType[];
63
- constructor(indirect: number, eventSelectorOffset: number, logOffset: number, logSize: number);
63
+ constructor(indirect: number, eventSelectorOffset: number, logOffset: number, logSizeOffset: number);
64
64
  execute(context: AvmContext): Promise<void>;
65
65
  }
66
66
  export declare class SendL2ToL1Message extends Instruction {
@@ -1 +1 @@
1
- {"version":3,"file":"accrued_substate.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/accrued_substate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accrued_substate.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/accrued_substate.ts"],"names":[],"mappings":"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"}