@aztec/simulator 0.59.0 → 0.61.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 (190) hide show
  1. package/dest/acvm/acvm.d.ts +1 -0
  2. package/dest/acvm/acvm.d.ts.map +1 -1
  3. package/dest/acvm/oracle/oracle.d.ts +5 -3
  4. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  5. package/dest/acvm/oracle/oracle.js +15 -7
  6. package/dest/acvm/oracle/typed_oracle.d.ts +7 -4
  7. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  8. package/dest/acvm/oracle/typed_oracle.js +10 -4
  9. package/dest/acvm/serialize.d.ts +1 -0
  10. package/dest/acvm/serialize.d.ts.map +1 -1
  11. package/dest/avm/avm_context.d.ts +1 -1
  12. package/dest/avm/avm_context.js +1 -1
  13. package/dest/avm/avm_execution_environment.d.ts +2 -5
  14. package/dest/avm/avm_execution_environment.d.ts.map +1 -1
  15. package/dest/avm/avm_execution_environment.js +7 -15
  16. package/dest/avm/avm_gas.d.ts.map +1 -1
  17. package/dest/avm/avm_gas.js +6 -10
  18. package/dest/avm/avm_machine_state.d.ts +2 -0
  19. package/dest/avm/avm_machine_state.d.ts.map +1 -1
  20. package/dest/avm/avm_machine_state.js +3 -1
  21. package/dest/avm/avm_memory_types.d.ts +1 -0
  22. package/dest/avm/avm_memory_types.d.ts.map +1 -1
  23. package/dest/avm/avm_simulator.d.ts +16 -0
  24. package/dest/avm/avm_simulator.d.ts.map +1 -1
  25. package/dest/avm/avm_simulator.js +45 -4
  26. package/dest/avm/bytecode_utils.d.ts +1 -0
  27. package/dest/avm/bytecode_utils.d.ts.map +1 -1
  28. package/dest/avm/fixtures/index.d.ts +3 -0
  29. package/dest/avm/fixtures/index.d.ts.map +1 -1
  30. package/dest/avm/fixtures/index.js +8 -2
  31. package/dest/avm/journal/journal.d.ts +19 -19
  32. package/dest/avm/journal/journal.d.ts.map +1 -1
  33. package/dest/avm/journal/journal.js +73 -48
  34. package/dest/avm/journal/nullifiers.d.ts +9 -9
  35. package/dest/avm/journal/nullifiers.d.ts.map +1 -1
  36. package/dest/avm/journal/nullifiers.js +24 -24
  37. package/dest/avm/journal/public_storage.d.ts +10 -10
  38. package/dest/avm/journal/public_storage.d.ts.map +1 -1
  39. package/dest/avm/journal/public_storage.js +21 -21
  40. package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
  41. package/dest/avm/opcodes/accrued_substate.js +5 -5
  42. package/dest/avm/opcodes/contract.d.ts +8 -1
  43. package/dest/avm/opcodes/contract.d.ts.map +1 -1
  44. package/dest/avm/opcodes/contract.js +41 -21
  45. package/dest/avm/opcodes/conversion.d.ts +1 -1
  46. package/dest/avm/opcodes/conversion.d.ts.map +1 -1
  47. package/dest/avm/opcodes/conversion.js +12 -9
  48. package/dest/avm/opcodes/environment_getters.d.ts +13 -14
  49. package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
  50. package/dest/avm/opcodes/environment_getters.js +17 -16
  51. package/dest/avm/opcodes/external_calls.d.ts +3 -6
  52. package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
  53. package/dest/avm/opcodes/external_calls.js +23 -43
  54. package/dest/avm/opcodes/hashing.d.ts +2 -26
  55. package/dest/avm/opcodes/hashing.d.ts.map +1 -1
  56. package/dest/avm/opcodes/hashing.js +11 -95
  57. package/dest/avm/opcodes/index.d.ts +0 -1
  58. package/dest/avm/opcodes/index.d.ts.map +1 -1
  59. package/dest/avm/opcodes/index.js +1 -2
  60. package/dest/avm/opcodes/instruction.d.ts +1 -0
  61. package/dest/avm/opcodes/instruction.d.ts.map +1 -1
  62. package/dest/avm/opcodes/memory.d.ts +20 -0
  63. package/dest/avm/opcodes/memory.d.ts.map +1 -1
  64. package/dest/avm/opcodes/memory.js +59 -3
  65. package/dest/avm/opcodes/storage.js +3 -3
  66. package/dest/avm/serialization/buffer_cursor.d.ts +1 -0
  67. package/dest/avm/serialization/buffer_cursor.d.ts.map +1 -1
  68. package/dest/avm/serialization/bytecode_serialization.d.ts +1 -0
  69. package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  70. package/dest/avm/serialization/bytecode_serialization.js +5 -7
  71. package/dest/avm/serialization/instruction_serialization.d.ts +34 -35
  72. package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
  73. package/dest/avm/serialization/instruction_serialization.js +34 -36
  74. package/dest/avm/test_utils.d.ts +3 -1
  75. package/dest/avm/test_utils.d.ts.map +1 -1
  76. package/dest/avm/test_utils.js +4 -1
  77. package/dest/client/client_execution_context.d.ts +9 -18
  78. package/dest/client/client_execution_context.d.ts.map +1 -1
  79. package/dest/client/client_execution_context.js +30 -50
  80. package/dest/client/db_oracle.d.ts +17 -1
  81. package/dest/client/db_oracle.d.ts.map +1 -1
  82. package/dest/client/db_oracle.js +1 -1
  83. package/dest/client/private_execution.d.ts.map +1 -1
  84. package/dest/client/private_execution.js +3 -4
  85. package/dest/client/simulator.d.ts.map +1 -1
  86. package/dest/client/simulator.js +3 -3
  87. package/dest/client/view_data_oracle.d.ts +17 -1
  88. package/dest/client/view_data_oracle.d.ts.map +1 -1
  89. package/dest/client/view_data_oracle.js +21 -1
  90. package/dest/common/index.d.ts +0 -1
  91. package/dest/common/index.d.ts.map +1 -1
  92. package/dest/common/index.js +1 -2
  93. package/dest/mocks/fixtures.js +2 -2
  94. package/dest/providers/acvm_native.d.ts +1 -0
  95. package/dest/providers/acvm_native.d.ts.map +1 -1
  96. package/dest/public/db_interfaces.d.ts +1 -0
  97. package/dest/public/db_interfaces.d.ts.map +1 -1
  98. package/dest/public/dual_side_effect_trace.d.ts +10 -11
  99. package/dest/public/dual_side_effect_trace.d.ts.map +1 -1
  100. package/dest/public/dual_side_effect_trace.js +26 -22
  101. package/dest/public/enqueued_call_side_effect_trace.d.ts +11 -12
  102. package/dest/public/enqueued_call_side_effect_trace.d.ts.map +1 -1
  103. package/dest/public/enqueued_call_side_effect_trace.js +33 -23
  104. package/dest/public/enqueued_call_simulator.d.ts +3 -3
  105. package/dest/public/enqueued_call_simulator.d.ts.map +1 -1
  106. package/dest/public/enqueued_call_simulator.js +30 -39
  107. package/dest/public/enqueued_calls_processor.d.ts +2 -3
  108. package/dest/public/enqueued_calls_processor.d.ts.map +1 -1
  109. package/dest/public/enqueued_calls_processor.js +19 -26
  110. package/dest/public/execution.d.ts +1 -0
  111. package/dest/public/execution.d.ts.map +1 -1
  112. package/dest/public/execution.js +2 -2
  113. package/dest/public/executor.d.ts.map +1 -1
  114. package/dest/public/executor.js +6 -5
  115. package/dest/public/public_db_sources.d.ts +1 -0
  116. package/dest/public/public_db_sources.d.ts.map +1 -1
  117. package/dest/public/public_kernel.d.ts +0 -1
  118. package/dest/public/public_kernel.d.ts.map +1 -1
  119. package/dest/public/public_kernel.js +5 -8
  120. package/dest/public/public_kernel_tail_simulator.d.ts +1 -5
  121. package/dest/public/public_kernel_tail_simulator.d.ts.map +1 -1
  122. package/dest/public/public_kernel_tail_simulator.js +6 -12
  123. package/dest/public/public_processor.js +4 -4
  124. package/dest/public/side_effect_trace.d.ts +11 -9
  125. package/dest/public/side_effect_trace.d.ts.map +1 -1
  126. package/dest/public/side_effect_trace.js +40 -30
  127. package/dest/public/side_effect_trace_interface.d.ts +10 -9
  128. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  129. package/package.json +9 -9
  130. package/src/acvm/oracle/oracle.ts +13 -6
  131. package/src/acvm/oracle/typed_oracle.ts +9 -3
  132. package/src/avm/avm_context.ts +1 -1
  133. package/src/avm/avm_execution_environment.ts +0 -15
  134. package/src/avm/avm_gas.ts +5 -9
  135. package/src/avm/avm_machine_state.ts +2 -0
  136. package/src/avm/avm_simulator.ts +69 -6
  137. package/src/avm/fixtures/index.ts +7 -2
  138. package/src/avm/journal/journal.ts +93 -50
  139. package/src/avm/journal/nullifiers.ts +23 -23
  140. package/src/avm/journal/public_storage.ts +20 -20
  141. package/src/avm/opcodes/accrued_substate.ts +4 -8
  142. package/src/avm/opcodes/contract.ts +45 -21
  143. package/src/avm/opcodes/conversion.ts +9 -6
  144. package/src/avm/opcodes/environment_getters.ts +7 -5
  145. package/src/avm/opcodes/external_calls.ts +21 -45
  146. package/src/avm/opcodes/hashing.ts +9 -122
  147. package/src/avm/opcodes/index.ts +0 -1
  148. package/src/avm/opcodes/memory.ts +69 -2
  149. package/src/avm/opcodes/storage.ts +2 -2
  150. package/src/avm/serialization/bytecode_serialization.ts +6 -9
  151. package/src/avm/serialization/instruction_serialization.ts +3 -5
  152. package/src/avm/test_utils.ts +5 -1
  153. package/src/client/client_execution_context.ts +21 -71
  154. package/src/client/db_oracle.ts +26 -0
  155. package/src/client/private_execution.ts +1 -9
  156. package/src/client/simulator.ts +0 -2
  157. package/src/client/view_data_oracle.ts +31 -1
  158. package/src/common/index.ts +0 -1
  159. package/src/mocks/fixtures.ts +1 -1
  160. package/src/public/dual_side_effect_trace.ts +38 -24
  161. package/src/public/enqueued_call_side_effect_trace.ts +60 -28
  162. package/src/public/enqueued_call_simulator.ts +52 -49
  163. package/src/public/enqueued_calls_processor.ts +27 -41
  164. package/src/public/execution.ts +1 -1
  165. package/src/public/executor.ts +11 -5
  166. package/src/public/public_kernel.ts +9 -12
  167. package/src/public/public_kernel_tail_simulator.ts +6 -15
  168. package/src/public/public_processor.ts +3 -3
  169. package/src/public/side_effect_trace.ts +73 -29
  170. package/src/public/side_effect_trace_interface.ts +15 -10
  171. package/dest/avm/opcodes/commitment.d.ts +0 -16
  172. package/dest/avm/opcodes/commitment.d.ts.map +0 -1
  173. package/dest/avm/opcodes/commitment.js +0 -51
  174. package/dest/client/test_utils.d.ts +0 -9
  175. package/dest/client/test_utils.d.ts.map +0 -1
  176. package/dest/client/test_utils.js +0 -27
  177. package/dest/common/side_effect_counter.d.ts +0 -10
  178. package/dest/common/side_effect_counter.d.ts.map +0 -1
  179. package/dest/common/side_effect_counter.js +0 -18
  180. package/dest/rollup/index.d.ts +0 -2
  181. package/dest/rollup/index.d.ts.map +0 -1
  182. package/dest/rollup/index.js +0 -2
  183. package/dest/rollup/rollup.d.ts +0 -101
  184. package/dest/rollup/rollup.d.ts.map +0 -1
  185. package/dest/rollup/rollup.js +0 -100
  186. package/src/avm/opcodes/commitment.ts +0 -65
  187. package/src/client/test_utils.ts +0 -57
  188. package/src/common/side_effect_counter.ts +0 -17
  189. package/src/rollup/index.ts +0 -1
  190. package/src/rollup/rollup.ts +0 -228
@@ -1,5 +1,5 @@
1
1
  import { UnencryptedL2Log } from '@aztec/circuit-types';
2
- import { AvmContractInstanceHint, AvmExecutionHints, AvmExternalCallHint, AvmKeyValueHint, AztecAddress, CallContext, ContractStorageRead, ContractStorageUpdateRequest, EthAddress, Gas, L2ToL1Message, LogHash, MAX_ENCRYPTED_LOGS_PER_TX, MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, MAX_PUBLIC_DATA_READS_PER_TX, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_UNENCRYPTED_LOGS_PER_TX, NoteHash, Nullifier, PublicAccumulatedData, PublicAccumulatedDataArrayLengths, PublicCallRequest, PublicDataRead, PublicDataUpdateRequest, PublicInnerCallRequest, PublicValidationRequestArrayLengths, PublicValidationRequests, ReadRequest, RollupValidationRequests, ScopedL2ToL1Message, ScopedLogHash, ScopedNoteHash, ScopedReadRequest, TreeLeafReadRequest, VMCircuitPublicInputs, } from '@aztec/circuits.js';
2
+ import { AvmContractBytecodeHints, AvmContractInstanceHint, AvmExecutionHints, AvmExternalCallHint, AvmKeyValueHint, AztecAddress, CallContext, ContractStorageRead, ContractStorageUpdateRequest, EthAddress, Gas, L2ToL1Message, LogHash, MAX_ENCRYPTED_LOGS_PER_TX, MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, MAX_PUBLIC_DATA_READS_PER_TX, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_UNENCRYPTED_LOGS_PER_TX, NoteHash, Nullifier, PublicAccumulatedData, PublicAccumulatedDataArrayLengths, PublicCallRequest, PublicDataRead, PublicDataUpdateRequest, PublicInnerCallRequest, PublicValidationRequestArrayLengths, PublicValidationRequests, ReadRequest, RollupValidationRequests, ScopedL2ToL1Message, ScopedLogHash, ScopedNoteHash, ScopedReadRequest, SerializableContractInstance, TreeLeafReadRequest, VMCircuitPublicInputs, } from '@aztec/circuits.js';
3
3
  import { computeVarArgsHash } from '@aztec/circuits.js/hash';
4
4
  import { makeTuple } from '@aztec/foundation/array';
5
5
  import { padArrayEnd } from '@aztec/foundation/collection';
@@ -47,29 +47,29 @@ export class PublicEnqueuedCallSideEffectTrace {
47
47
  incrementSideEffectCounter() {
48
48
  this.sideEffectCounter++;
49
49
  }
50
- tracePublicStorageRead(storageAddress, slot, value, _exists, _cached) {
50
+ tracePublicStorageRead(contractAddress, slot, value, _exists, _cached) {
51
51
  // NOTE: exists and cached are unused for now but may be used for optimizations or kernel hints later
52
52
  if (this.contractStorageReads.length + this.previousValidationRequestArrayLengths.publicDataReads >=
53
53
  MAX_PUBLIC_DATA_READS_PER_TX) {
54
54
  throw new SideEffectLimitReachedError('contract storage read', MAX_PUBLIC_DATA_READS_PER_TX);
55
55
  }
56
- this.contractStorageReads.push(new ContractStorageRead(slot, value, this.sideEffectCounter, AztecAddress.fromField(storageAddress)));
56
+ this.contractStorageReads.push(new ContractStorageRead(slot, value, this.sideEffectCounter, AztecAddress.fromField(contractAddress)));
57
57
  this.avmCircuitHints.storageValues.items.push(new AvmKeyValueHint(/*key=*/ new Fr(this.sideEffectCounter), /*value=*/ value));
58
58
  this.log.debug(`SLOAD cnt: ${this.sideEffectCounter} val: ${value} slot: ${slot}`);
59
59
  this.incrementSideEffectCounter();
60
60
  }
61
- tracePublicStorageWrite(storageAddress, slot, value) {
61
+ tracePublicStorageWrite(contractAddress, slot, value) {
62
62
  if (this.contractStorageUpdateRequests.length + this.previousAccumulatedDataArrayLengths.publicDataUpdateRequests >=
63
63
  MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX) {
64
64
  throw new SideEffectLimitReachedError('contract storage write', MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX);
65
65
  }
66
- this.contractStorageUpdateRequests.push(new ContractStorageUpdateRequest(slot, value, this.sideEffectCounter, storageAddress));
66
+ this.contractStorageUpdateRequests.push(new ContractStorageUpdateRequest(slot, value, this.sideEffectCounter, contractAddress));
67
67
  this.log.debug(`SSTORE cnt: ${this.sideEffectCounter} val: ${value} slot: ${slot}`);
68
68
  this.incrementSideEffectCounter();
69
69
  }
70
70
  // TODO(8287): _exists can be removed once we have the vm properly handling the equality check
71
- traceNoteHashCheck(_storageAddress, noteHash, leafIndex, exists) {
72
- // NOTE: storageAddress is unused because noteHash is an already-siloed leaf
71
+ traceNoteHashCheck(_contractAddress, noteHash, leafIndex, exists) {
72
+ // NOTE: contractAddress is unused because noteHash is an already-siloed leaf
73
73
  if (this.noteHashReadRequests.length + this.previousValidationRequestArrayLengths.noteHashReadRequests >=
74
74
  MAX_NOTE_HASH_READ_REQUESTS_PER_TX) {
75
75
  throw new SideEffectLimitReachedError('note hash read request', MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
@@ -78,18 +78,18 @@ export class PublicEnqueuedCallSideEffectTrace {
78
78
  this.avmCircuitHints.noteHashExists.items.push(new AvmKeyValueHint(/*key=*/ new Fr(leafIndex), /*value=*/ exists ? Fr.ONE : Fr.ZERO));
79
79
  // NOTE: counter does not increment for note hash checks (because it doesn't rely on pending note hashes)
80
80
  }
81
- traceNewNoteHash(storageAddress, noteHash) {
81
+ traceNewNoteHash(contractAddress, noteHash) {
82
82
  if (this.noteHashes.length + this.previousAccumulatedDataArrayLengths.noteHashes >= MAX_NOTE_HASHES_PER_TX) {
83
83
  throw new SideEffectLimitReachedError('note hash', MAX_NOTE_HASHES_PER_TX);
84
84
  }
85
- this.noteHashes.push(new NoteHash(noteHash, this.sideEffectCounter).scope(AztecAddress.fromField(storageAddress)));
85
+ this.noteHashes.push(new NoteHash(noteHash, this.sideEffectCounter).scope(AztecAddress.fromField(contractAddress)));
86
86
  this.log.debug(`NEW_NOTE_HASH cnt: ${this.sideEffectCounter}`);
87
87
  this.incrementSideEffectCounter();
88
88
  }
89
- traceNullifierCheck(storageAddress, nullifier, _leafIndex, exists, _isPending) {
89
+ traceNullifierCheck(contractAddress, nullifier, _leafIndex, exists, _isPending) {
90
90
  // NOTE: isPending and leafIndex are unused for now but may be used for optimizations or kernel hints later
91
91
  this.enforceLimitOnNullifierChecks();
92
- const readRequest = new ReadRequest(nullifier, this.sideEffectCounter).scope(AztecAddress.fromField(storageAddress));
92
+ const readRequest = new ReadRequest(nullifier, this.sideEffectCounter).scope(AztecAddress.fromField(contractAddress));
93
93
  if (exists) {
94
94
  this.nullifierReadRequests.push(readRequest);
95
95
  }
@@ -100,11 +100,11 @@ export class PublicEnqueuedCallSideEffectTrace {
100
100
  this.log.debug(`NULLIFIER_EXISTS cnt: ${this.sideEffectCounter}`);
101
101
  this.incrementSideEffectCounter();
102
102
  }
103
- traceNewNullifier(storageAddress, nullifier) {
103
+ traceNewNullifier(contractAddress, nullifier) {
104
104
  if (this.nullifiers.length + this.previousAccumulatedDataArrayLengths.nullifiers >= MAX_NULLIFIERS_PER_TX) {
105
105
  throw new SideEffectLimitReachedError('nullifier', MAX_NULLIFIERS_PER_TX);
106
106
  }
107
- this.nullifiers.push(new Nullifier(nullifier, this.sideEffectCounter, /*noteHash=*/ Fr.ZERO).scope(AztecAddress.fromField(storageAddress)));
107
+ this.nullifiers.push(new Nullifier(nullifier, this.sideEffectCounter, /*noteHash=*/ Fr.ZERO).scope(AztecAddress.fromField(contractAddress)));
108
108
  this.log.debug(`NEW_NULLIFIER cnt: ${this.sideEffectCounter}`);
109
109
  this.incrementSideEffectCounter();
110
110
  }
@@ -141,13 +141,25 @@ export class PublicEnqueuedCallSideEffectTrace {
141
141
  this.log.debug(`NEW_UNENCRYPTED_LOG cnt: ${this.sideEffectCounter}`);
142
142
  this.incrementSideEffectCounter();
143
143
  }
144
- traceGetContractInstance(instance) {
144
+ traceGetContractInstance(contractAddress, exists, instance = SerializableContractInstance.default()) {
145
145
  this.enforceLimitOnNullifierChecks('(contract address nullifier from GETCONTRACTINSTANCE)');
146
- // TODO(dbanks12): should emit a nullifier read request
147
- this.avmCircuitHints.contractInstances.items.push(new AvmContractInstanceHint(instance.address, new Fr(instance.exists ? 1 : 0), instance.salt, instance.deployer, instance.contractClassId, instance.initializationHash, instance.publicKeys));
146
+ this.avmCircuitHints.contractInstances.items.push(new AvmContractInstanceHint(contractAddress, exists, instance.salt, instance.deployer, instance.contractClassId, instance.initializationHash, instance.publicKeys));
148
147
  this.log.debug(`CONTRACT_INSTANCE cnt: ${this.sideEffectCounter}`);
149
148
  this.incrementSideEffectCounter();
150
149
  }
150
+ // This tracing function gets called everytime we start simulation/execution.
151
+ // This happens both when starting a new top-level trace and the start of every nested trace
152
+ // We use this to collect the AvmContractBytecodeHints
153
+ traceGetBytecode(contractAddress, exists, bytecode = Buffer.alloc(0), contractInstance = SerializableContractInstance.default(), contractClass = {
154
+ artifactHash: Fr.zero(),
155
+ privateFunctionsRoot: Fr.zero(),
156
+ publicBytecodeCommitment: Fr.zero(),
157
+ }) {
158
+ const instance = new AvmContractInstanceHint(contractAddress, exists, contractInstance.salt, contractInstance.deployer, contractInstance.contractClassId, contractInstance.initializationHash, contractInstance.publicKeys);
159
+ // We need to deduplicate the contract instances based on addresses
160
+ this.avmCircuitHints.contractBytecodeHints.items.push(new AvmContractBytecodeHints(bytecode, instance, contractClass));
161
+ this.log.debug(`Bytecode retrieval for contract execution traced: exists=${exists}, instance=${JSON.stringify(contractInstance)}`);
162
+ }
151
163
  /**
152
164
  * Trace a nested call.
153
165
  * Accept some results from a finished nested call's trace into this one.
@@ -156,7 +168,7 @@ export class PublicEnqueuedCallSideEffectTrace {
156
168
  /** The trace of the nested call. */
157
169
  nestedCallTrace,
158
170
  /** The execution environment of the nested call. */
159
- _nestedEnvironment,
171
+ nestedEnvironment,
160
172
  /** How much gas was available for this public execution. */
161
173
  startGasLeft,
162
174
  /** How much gas was left after this public execution. */
@@ -182,7 +194,7 @@ export class PublicEnqueuedCallSideEffectTrace {
182
194
  }
183
195
  const gasUsed = new Gas(startGasLeft.daGas - endGasLeft.daGas, startGasLeft.l2Gas - endGasLeft.l2Gas);
184
196
  this.avmCircuitHints.externalCalls.items.push(new AvmExternalCallHint(
185
- /*success=*/ new Fr(avmCallResults.reverted ? 0 : 1), avmCallResults.output, gasUsed, endSideEffectCounter));
197
+ /*success=*/ new Fr(avmCallResults.reverted ? 0 : 1), avmCallResults.output, gasUsed, endSideEffectCounter, nestedEnvironment.address));
186
198
  }
187
199
  absorbSuccessfulNestedTrace(nestedTrace) {
188
200
  this.sideEffectCounter = nestedTrace.sideEffectCounter;
@@ -303,12 +315,10 @@ export class PublicEnqueuedCallSideEffectTrace {
303
315
  function createPublicCallRequest(avmEnvironment) {
304
316
  const callContext = CallContext.from({
305
317
  msgSender: avmEnvironment.sender,
306
- storageContractAddress: avmEnvironment.storageAddress,
318
+ contractAddress: avmEnvironment.address,
307
319
  functionSelector: avmEnvironment.functionSelector,
308
- isDelegateCall: avmEnvironment.isDelegateCall,
309
320
  isStaticCall: avmEnvironment.isStaticCall,
310
321
  });
311
- return new PublicCallRequest(avmEnvironment.address, callContext, computeVarArgsHash(avmEnvironment.calldata),
312
- /*counter=*/ 0);
322
+ return new PublicCallRequest(callContext, computeVarArgsHash(avmEnvironment.calldata), /*counter=*/ 0);
313
323
  }
314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5xdWV1ZWRfY2FsbF9zaWRlX2VmZmVjdF90cmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvZW5xdWV1ZWRfY2FsbF9zaWRlX2VmZmVjdF90cmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBR1gsbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1QixVQUFVLEVBQ1YsR0FBRyxFQUNILGFBQWEsRUFDYixPQUFPLEVBQ1AseUJBQXlCLEVBQ3pCLHFDQUFxQyxFQUNyQyx3QkFBd0IsRUFDeEIsOEJBQThCLEVBQzlCLHNCQUFzQixFQUN0QixrQ0FBa0MsRUFDbEMscUJBQXFCLEVBQ3JCLCtDQUErQyxFQUMvQyxrQ0FBa0MsRUFDbEMsbUNBQW1DLEVBQ25DLDRCQUE0QixFQUM1QixzQ0FBc0MsRUFDdEMsMkJBQTJCLEVBQzNCLFFBQVEsRUFDUixTQUFTLEVBQ1QscUJBQXFCLEVBQ3JCLGlDQUFpQyxFQUNqQyxpQkFBaUIsRUFDakIsY0FBYyxFQUNkLHVCQUF1QixFQUN2QixzQkFBc0IsRUFDdEIsbUNBQW1DLEVBQ25DLHdCQUF3QixFQUN4QixXQUFXLEVBQ1gsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQixhQUFhLEVBQ2IsY0FBYyxFQUVkLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIscUJBQXFCLEdBQ3RCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFP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
324
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5xdWV1ZWRfY2FsbF9zaWRlX2VmZmVjdF90cmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvZW5xdWV1ZWRfY2FsbF9zaWRlX2VmZmVjdF90cmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixZQUFZLEVBQ1osV0FBVyxFQUdYLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIsVUFBVSxFQUNWLEdBQUcsRUFDSCxhQUFhLEVBQ2IsT0FBTyxFQUNQLHlCQUF5QixFQUN6QixxQ0FBcUMsRUFDckMsd0JBQXdCLEVBQ3hCLDhCQUE4QixFQUM5QixzQkFBc0IsRUFDdEIsa0NBQWtDLEVBQ2xDLHFCQUFxQixFQUNyQiwrQ0FBK0MsRUFDL0Msa0NBQWtDLEVBQ2xDLG1DQUFtQyxFQUNuQyw0QkFBNEIsRUFDNUIsc0NBQXNDLEVBQ3RDLDJCQUEyQixFQUMzQixRQUFRLEVBQ1IsU0FBUyxFQUNULHFCQUFxQixFQUNyQixpQ0FBaUMsRUFDakMsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLG1DQUFtQyxFQUNuQyx3QkFBd0IsRUFDeEIsV0FBVyxFQUNYLHdCQUF3QixFQUN4QixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLGNBQWMsRUFFZCxpQkFBaUIsRUFDakIsNEJBQTRCLEVBQzVCLG1CQUFtQixFQUNuQixxQkFBcUIsR0FDdEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxN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
@@ -1,11 +1,11 @@
1
- import { NestedProcessReturnValues, type PublicExecutionRequest, PublicKernelPhase, type PublicProvingRequest, type SimulationError, type Tx, UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
1
+ import { type AvmProvingRequest, NestedProcessReturnValues, type PublicExecutionRequest, PublicKernelPhase, type SimulationError, type Tx, UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
2
2
  import { Fr, Gas, type GlobalVariables, type Header, type PublicCallRequest, type PublicKernelCircuitPublicInputs, VMCircuitPublicInputs } from '@aztec/circuits.js';
3
3
  import { type MerkleTreeReadOperations } from '@aztec/world-state';
4
4
  import { type PublicExecutor } from './executor.js';
5
5
  import { type PublicKernelCircuitSimulator } from './public_kernel_circuit_simulator.js';
6
6
  export type EnqueuedCallResult = {
7
7
  /** Inputs to be used for proving */
8
- provingRequests: PublicProvingRequest[];
8
+ avmProvingRequest: AvmProvingRequest;
9
9
  /** The public kernel output at the end of the enqueued call */
10
10
  kernelOutput: VMCircuitPublicInputs;
11
11
  /** Unencrypted logs generated during the execution of this enqueued call */
@@ -37,7 +37,7 @@ export declare class EnqueuedCallSimulator {
37
37
  * @returns A corresponding PublicCallData object.
38
38
  */
39
39
  private getPublicCallData;
40
- private getPublicCallStackItem;
40
+ private getPublicCircuitPublicInputs;
41
41
  private getBytecodeHash;
42
42
  }
43
43
  //# sourceMappingURL=enqueued_call_simulator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enqueued_call_simulator.d.ts","sourceRoot":"","sources":["../../src/public/enqueued_call_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,yBAAyB,EAEzB,KAAK,sBAAsB,EAC3B,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,EAAE,EACP,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAIL,EAAE,EAEF,GAAG,EACH,KAAK,eAAe,EACpB,KAAK,MAAM,EAsBX,KAAK,iBAAiB,EAItB,KAAK,+BAA+B,EAQpC,qBAAqB,EAGtB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAGnE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAmBzF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oCAAoC;IACpC,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACxC,+DAA+D;IAC/D,YAAY,EAAE,qBAAqB,CAAC;IACpC,4EAA4E;IAC5E,kBAAkB,EAAE,yBAAyB,CAAC;IAC9C,qDAAqD;IACrD,YAAY,EAAE,yBAAyB,CAAC;IACxC,uDAAuD;IACvD,OAAO,EAAE,GAAG,CAAC;IACb,4BAA4B;IAC5B,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,CAAC;AAEF,qBAAa,qBAAqB;IAG9B,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,gBAAgB;IAN1B,OAAO,CAAC,GAAG,CAAc;gBAEf,EAAE,EAAE,wBAAwB,EAC5B,cAAc,EAAE,cAAc,EAC9B,qBAAqB,EAAE,4BAA4B,EACnD,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM;IAK5B,QAAQ,CACZ,WAAW,EAAE,iBAAiB,EAC9B,gBAAgB,EAAE,sBAAsB,EACxC,EAAE,EAAE,EAAE,EACN,0BAA0B,EAAE,+BAA+B,EAC3D,YAAY,EAAE,GAAG,EACjB,cAAc,EAAE,EAAE,EAClB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,kBAAkB,CAAC;YA8DhB,6BAA6B;IAuE3C,yDAAyD;IACzD,OAAO,CAAC,0BAA0B;YAIpB,gBAAgB;IAY9B;;;;;OAKG;YACW,iBAAiB;YAMjB,sBAAsB;IAkEpC,OAAO,CAAC,eAAe;CAMxB"}
1
+ {"version":3,"file":"enqueued_call_simulator.d.ts","sourceRoot":"","sources":["../../src/public/enqueued_call_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAEtB,yBAAyB,EAEzB,KAAK,sBAAsB,EAC3B,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,EAAE,EACP,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAKL,EAAE,EACF,GAAG,EACH,KAAK,eAAe,EACpB,KAAK,MAAM,EAsBX,KAAK,iBAAiB,EAGtB,KAAK,+BAA+B,EAQpC,qBAAqB,EAItB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAGnE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AASzF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oCAAoC;IACpC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,+DAA+D;IAC/D,YAAY,EAAE,qBAAqB,CAAC;IACpC,4EAA4E;IAC5E,kBAAkB,EAAE,yBAAyB,CAAC;IAC9C,qDAAqD;IACrD,YAAY,EAAE,yBAAyB,CAAC;IACxC,uDAAuD;IACvD,OAAO,EAAE,GAAG,CAAC;IACb,4BAA4B;IAC5B,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,CAAC;AAEF,qBAAa,qBAAqB;IAG9B,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,gBAAgB;IAN1B,OAAO,CAAC,GAAG,CAAc;gBAEf,EAAE,EAAE,wBAAwB,EAC5B,cAAc,EAAE,cAAc,EAC9B,qBAAqB,EAAE,4BAA4B,EACnD,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM;IAK5B,QAAQ,CACZ,WAAW,EAAE,iBAAiB,EAC9B,gBAAgB,EAAE,sBAAsB,EACxC,EAAE,EAAE,EAAE,EACN,0BAA0B,EAAE,+BAA+B,EAC3D,YAAY,EAAE,GAAG,EACjB,cAAc,EAAE,EAAE,EAClB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,kBAAkB,CAAC;YA8DhB,6BAA6B;IAkE3C,yDAAyD;IACzD,OAAO,CAAC,0BAA0B;YAIpB,gBAAgB;IAY9B;;;;;OAKG;YACW,iBAAiB;YAMjB,4BAA4B;IAuF1C,OAAO,CAAC,eAAe;CAMxB"}
@@ -1,22 +1,14 @@
1
- import { AVM_REQUEST, MerkleTreeId, NestedProcessReturnValues, ProvingRequestType, PublicKernelPhase, UnencryptedFunctionL2Logs, } from '@aztec/circuit-types';
2
- import { AztecAddress, ContractStorageRead, ContractStorageUpdateRequest, Fr, FunctionData, Gas, L2ToL1Message, LogHash, MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL, MAX_L2_GAS_PER_ENQUEUED_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NOTE_HASHES_PER_CALL, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, MAX_PUBLIC_DATA_READS_PER_CALL, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL, NESTED_RECURSIVE_PROOF_LENGTH, NoteHash, Nullifier, PublicAccumulatedData, PublicAccumulatedDataArrayLengths, PublicCallData, PublicCallStackItem, PublicCircuitPublicInputs, PublicInnerCallRequest, PublicKernelInnerCircuitPrivateInputs, PublicKernelInnerData, PublicValidationRequestArrayLengths, PublicValidationRequests, ReadRequest, RevertCode, TreeLeafReadRequest, VMCircuitPublicInputs, makeEmptyProof, makeEmptyRecursiveProof, } from '@aztec/circuits.js';
1
+ import { MerkleTreeId, NestedProcessReturnValues, ProvingRequestType, PublicKernelPhase, UnencryptedFunctionL2Logs, } from '@aztec/circuit-types';
2
+ import { AvmCircuitInputs, AztecAddress, ContractStorageRead, ContractStorageUpdateRequest, Fr, Gas, L2ToL1Message, LogHash, MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL, MAX_L2_GAS_PER_ENQUEUED_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NOTE_HASHES_PER_CALL, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, MAX_PUBLIC_DATA_READS_PER_CALL, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL, NESTED_RECURSIVE_PROOF_LENGTH, NoteHash, Nullifier, PublicAccumulatedData, PublicAccumulatedDataArrayLengths, PublicCallData, PublicCircuitPublicInputs, PublicInnerCallRequest, PublicKernelInnerCircuitPrivateInputs, PublicKernelInnerData, PublicValidationRequestArrayLengths, PublicValidationRequests, ReadRequest, RevertCode, TreeLeafReadRequest, VMCircuitPublicInputs, VerificationKeyData, makeEmptyProof, makeEmptyRecursiveProof, } from '@aztec/circuits.js';
3
3
  import { computeVarArgsHash } from '@aztec/circuits.js/hash';
4
4
  import { makeTuple } from '@aztec/foundation/array';
5
5
  import { padArrayEnd } from '@aztec/foundation/collection';
6
6
  import { createDebugLogger } from '@aztec/foundation/log';
7
- import { ProtocolCircuitVks } from '@aztec/noir-protocol-circuits-types';
8
7
  import { accumulatePublicReturnValues, collectExecutionResults } from './execution.js';
9
8
  function makeAvmProvingRequest(inputs, result) {
10
9
  return {
11
- type: AVM_REQUEST,
12
- functionName: result.functionName,
13
- calldata: result.calldata,
14
- bytecode: result.bytecode,
15
- avmHints: result.avmCircuitHints,
16
- kernelRequest: {
17
- type: ProvingRequestType.PUBLIC_KERNEL_INNER,
18
- inputs,
19
- },
10
+ type: ProvingRequestType.PUBLIC_VM,
11
+ inputs: new AvmCircuitInputs(result.functionName, result.calldata, inputs, result.avmCircuitHints),
20
12
  };
21
13
  }
22
14
  export class EnqueuedCallSimulator {
@@ -47,7 +39,7 @@ export class EnqueuedCallSimulator {
47
39
  constants.globalVariables = this.globalVariables;
48
40
  const result = await this.publicExecutor.simulate(executionRequest, constants, allocatedGas, tx.data.constants.txContext, pendingNullifiers, transactionFee, startSideEffectCounter, previousValidationRequestArrayLengths, previousAccumulatedDataArrayLengths);
49
41
  const callStack = makeTuple(MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, PublicInnerCallRequest.empty);
50
- callStack[0].item.contractAddress = callRequest.contractAddress;
42
+ callStack[0].item.contractAddress = callRequest.callContext.contractAddress;
51
43
  callStack[0].item.callContext = callRequest.callContext;
52
44
  callStack[0].item.argsHash = callRequest.argsHash;
53
45
  const accumulatedData = PublicAccumulatedData.empty();
@@ -57,33 +49,33 @@ export class EnqueuedCallSimulator {
57
49
  }
58
50
  async combineNestedExecutionResults(topResult, startVMCircuitOutput) {
59
51
  const executionResults = collectExecutionResults(topResult);
60
- const provingRequests = [];
52
+ let avmProvingRequest;
61
53
  let gasUsed = Gas.empty();
62
54
  let revertReason;
63
55
  let kernelOutput = startVMCircuitOutput;
64
56
  for (const result of executionResults) {
65
57
  // Accumulate gas used in this enqueued call.
66
58
  gasUsed = gasUsed.add(Gas.from(result.startGasLeft).sub(Gas.from(result.endGasLeft)));
59
+ const { contractAddress, functionSelector } = result.executionRequest.callContext;
67
60
  // Sanity check for a current upstream assumption.
68
61
  // Consumers of the result seem to expect "reverted <=> revertReason !== undefined".
69
- const functionSelector = result.executionRequest.callContext.functionSelector.toString();
70
62
  if (result.reverted && !result.revertReason) {
71
- throw new Error(`Simulation of ${result.executionRequest.contractAddress.toString()}:${functionSelector}(${result.functionName}) reverted with no reason.`);
63
+ throw new Error(`Simulation of ${contractAddress}:${functionSelector}(${result.functionName}) reverted with no reason.`);
72
64
  }
73
65
  // Simulate the public kernel circuit.
74
- this.log.debug(`Running public kernel inner circuit for ${result.executionRequest.contractAddress.toString()}:${functionSelector}(${result.functionName})`);
66
+ this.log.debug(`Running public kernel inner circuit for ${contractAddress}:${functionSelector}(${result.functionName})`);
75
67
  const callData = await this.getPublicCallData(result);
76
68
  const { inputs, output } = await this.runKernelCircuit(kernelOutput, callData);
77
69
  kernelOutput = output;
78
70
  // Capture the inputs for later proving in the AVM and kernel.
79
- provingRequests.push(makeAvmProvingRequest(inputs, result));
71
+ avmProvingRequest = makeAvmProvingRequest(inputs.publicCall.publicInputs, result);
80
72
  // Safely return the revert reason and the kernel output (which has had its revertible side effects dropped)
81
73
  // TODO(@leila) we shouldn't drop everything when it reverts. The tail kernel needs the data to prove that it's reverted for the correct reason.
82
74
  if (result.reverted) {
83
- this.log.debug(`Reverting on ${result.executionRequest.contractAddress.toString()}:${functionSelector}(${result.functionName}) with reason: ${result.revertReason}`);
75
+ this.log.debug(`Reverting on ${contractAddress}:${functionSelector}(${result.functionName}) with reason: ${result.revertReason}`);
84
76
  // TODO(@spalladino): Check gasUsed is correct. The AVM should take care of setting gasLeft to zero upon a revert.
85
77
  return {
86
- provingRequests,
78
+ avmProvingRequest,
87
79
  kernelOutput,
88
80
  newUnencryptedLogs: UnencryptedFunctionL2Logs.empty(),
89
81
  returnValues: NestedProcessReturnValues.empty(),
@@ -93,7 +85,7 @@ export class EnqueuedCallSimulator {
93
85
  }
94
86
  }
95
87
  return {
96
- provingRequests,
88
+ avmProvingRequest: avmProvingRequest,
97
89
  kernelOutput,
98
90
  newUnencryptedLogs: topResult.allUnencryptedLogs,
99
91
  returnValues: accumulatePublicReturnValues(topResult),
@@ -108,7 +100,7 @@ export class EnqueuedCallSimulator {
108
100
  async runKernelCircuit(previousOutput, callData) {
109
101
  // The proof is not used in simulation
110
102
  const proof = makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH);
111
- const vk = ProtocolCircuitVks.PublicKernelInnerArtifact;
103
+ const vk = VerificationKeyData.makeFakeHonk();
112
104
  const previousKernel = new PublicKernelInnerData(previousOutput, proof, vk);
113
105
  const inputs = new PublicKernelInnerCircuitPrivateInputs(previousKernel, callData);
114
106
  return { inputs, output: await this.publicKernelSimulator.publicKernelCircuitInner(inputs) };
@@ -121,30 +113,30 @@ export class EnqueuedCallSimulator {
121
113
  */
122
114
  async getPublicCallData(result) {
123
115
  const bytecodeHash = await this.getBytecodeHash(result);
124
- const callStackItem = await this.getPublicCallStackItem(result);
125
- return new PublicCallData(callStackItem, makeEmptyProof(), bytecodeHash);
116
+ const publicInputs = await this.getPublicCircuitPublicInputs(result);
117
+ return new PublicCallData(publicInputs, makeEmptyProof(), bytecodeHash);
126
118
  }
127
- async getPublicCallStackItem(result) {
119
+ async getPublicCircuitPublicInputs(result) {
128
120
  const publicDataTreeInfo = await this.db.getTreeInfo(MerkleTreeId.PUBLIC_DATA_TREE);
129
121
  this.historicalHeader.state.partial.publicDataTree.root = Fr.fromBuffer(publicDataTreeInfo.root);
130
- const publicCircuitPublicInputs = PublicCircuitPublicInputs.from({
122
+ return PublicCircuitPublicInputs.from({
131
123
  callContext: result.executionRequest.callContext,
132
124
  proverAddress: AztecAddress.ZERO,
133
125
  argsHash: computeVarArgsHash(result.executionRequest.args),
134
- noteHashes: padArrayEnd(result.noteHashes, NoteHash.empty(), MAX_NOTE_HASHES_PER_CALL),
135
- nullifiers: padArrayEnd(result.nullifiers, Nullifier.empty(), MAX_NULLIFIERS_PER_CALL),
136
- l2ToL1Msgs: padArrayEnd(result.l2ToL1Messages, L2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_CALL),
126
+ noteHashes: padArrayEnd(result.noteHashes, NoteHash.empty(), MAX_NOTE_HASHES_PER_CALL, `Too many note hashes. Got ${result.noteHashes.length} with max being ${MAX_NOTE_HASHES_PER_CALL}`),
127
+ nullifiers: padArrayEnd(result.nullifiers, Nullifier.empty(), MAX_NULLIFIERS_PER_CALL, `Too many nullifiers. Got ${result.nullifiers.length} with max being ${MAX_NULLIFIERS_PER_CALL}`),
128
+ l2ToL1Msgs: padArrayEnd(result.l2ToL1Messages, L2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_CALL, `Too many L2 to L1 messages. Got ${result.l2ToL1Messages.length} with max being ${MAX_L2_TO_L1_MSGS_PER_CALL}`),
137
129
  startSideEffectCounter: result.startSideEffectCounter,
138
130
  endSideEffectCounter: result.endSideEffectCounter,
139
131
  returnsHash: computeVarArgsHash(result.returnValues),
140
- noteHashReadRequests: padArrayEnd(result.noteHashReadRequests, TreeLeafReadRequest.empty(), MAX_NOTE_HASH_READ_REQUESTS_PER_CALL),
141
- nullifierReadRequests: padArrayEnd(result.nullifierReadRequests, ReadRequest.empty(), MAX_NULLIFIER_READ_REQUESTS_PER_CALL),
142
- nullifierNonExistentReadRequests: padArrayEnd(result.nullifierNonExistentReadRequests, ReadRequest.empty(), MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL),
143
- l1ToL2MsgReadRequests: padArrayEnd(result.l1ToL2MsgReadRequests, TreeLeafReadRequest.empty(), MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL),
144
- contractStorageReads: padArrayEnd(result.contractStorageReads, ContractStorageRead.empty(), MAX_PUBLIC_DATA_READS_PER_CALL),
145
- contractStorageUpdateRequests: padArrayEnd(result.contractStorageUpdateRequests, ContractStorageUpdateRequest.empty(), MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL),
146
- publicCallRequests: padArrayEnd(result.publicCallRequests, PublicInnerCallRequest.empty(), MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL),
147
- unencryptedLogsHashes: padArrayEnd(result.unencryptedLogsHashes, LogHash.empty(), MAX_UNENCRYPTED_LOGS_PER_CALL),
132
+ noteHashReadRequests: padArrayEnd(result.noteHashReadRequests, TreeLeafReadRequest.empty(), MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, `Too many note hash read requests. Got ${result.noteHashReadRequests.length} with max being ${MAX_NOTE_HASH_READ_REQUESTS_PER_CALL}`),
133
+ nullifierReadRequests: padArrayEnd(result.nullifierReadRequests, ReadRequest.empty(), MAX_NULLIFIER_READ_REQUESTS_PER_CALL, `Too many nullifier read requests. Got ${result.nullifierReadRequests.length} with max being ${MAX_NULLIFIER_READ_REQUESTS_PER_CALL}`),
134
+ nullifierNonExistentReadRequests: padArrayEnd(result.nullifierNonExistentReadRequests, ReadRequest.empty(), MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL, `Too many nullifier non-existent read requests. Got ${result.nullifierNonExistentReadRequests.length} with max being ${MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL}`),
135
+ l1ToL2MsgReadRequests: padArrayEnd(result.l1ToL2MsgReadRequests, TreeLeafReadRequest.empty(), MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL, `Too many L1 to L2 message read requests. Got ${result.l1ToL2MsgReadRequests.length} with max being ${MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL}`),
136
+ contractStorageReads: padArrayEnd(result.contractStorageReads, ContractStorageRead.empty(), MAX_PUBLIC_DATA_READS_PER_CALL, `Too many public data reads. Got ${result.contractStorageReads.length} with max being ${MAX_PUBLIC_DATA_READS_PER_CALL}`),
137
+ contractStorageUpdateRequests: padArrayEnd(result.contractStorageUpdateRequests, ContractStorageUpdateRequest.empty(), MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, `Too many public data update requests. Got ${result.contractStorageUpdateRequests.length} with max being ${MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL}`),
138
+ publicCallRequests: padArrayEnd(result.publicCallRequests, PublicInnerCallRequest.empty(), MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, `Too many public call requests. Got ${result.publicCallRequests.length} with max being ${MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL}`),
139
+ unencryptedLogsHashes: padArrayEnd(result.unencryptedLogsHashes, LogHash.empty(), MAX_UNENCRYPTED_LOGS_PER_CALL, `Too many unencrypted logs. Got ${result.unencryptedLogsHashes.length} with max being ${MAX_UNENCRYPTED_LOGS_PER_CALL}`),
148
140
  historicalHeader: this.historicalHeader,
149
141
  globalVariables: this.globalVariables,
150
142
  startGasLeft: Gas.from(result.startGasLeft),
@@ -153,7 +145,6 @@ export class EnqueuedCallSimulator {
153
145
  // TODO(@just-mitch): need better mapping from simulator to revert code.
154
146
  revertCode: result.reverted ? RevertCode.APP_LOGIC_REVERTED : RevertCode.OK,
155
147
  });
156
- return new PublicCallStackItem(result.executionRequest.contractAddress, new FunctionData(result.executionRequest.callContext.functionSelector, false), publicCircuitPublicInputs);
157
148
  }
158
149
  getBytecodeHash(_result) {
159
150
  // TODO: Determine how to calculate bytecode hash. Circuits just check it isn't zero for now.
@@ -162,4 +153,4 @@ export class EnqueuedCallSimulator {
162
153
  return Promise.resolve(bytecodeHash);
163
154
  }
164
155
  }
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5xdWV1ZWRfY2FsbF9zaW11bGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2VucXVldWVkX2NhbGxfc2ltdWxhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBRVgsWUFBWSxFQUNaLHlCQUF5QixFQUN6QixrQkFBa0IsRUFFbEIsaUJBQWlCLEVBSWpCLHlCQUF5QixHQUMxQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1QixFQUFFLEVBQ0YsWUFBWSxFQUNaLEdBQUcsRUFHSCxhQUFhLEVBQ2IsT0FBTyxFQUNQLHVDQUF1QyxFQUN2Qyw0QkFBNEIsRUFDNUIsMEJBQTBCLEVBQzFCLHdCQUF3QixFQUN4QixvQ0FBb0MsRUFDcEMsdUJBQXVCLEVBQ3ZCLGlEQUFpRCxFQUNqRCxvQ0FBb0MsRUFDcEMscUNBQXFDLEVBQ3JDLG1DQUFtQyxFQUNuQyw4QkFBOEIsRUFDOUIsd0NBQXdDLEVBQ3hDLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0IsUUFBUSxFQUNSLFNBQVMsRUFDVCxxQkFBcUIsRUFDckIsaUNBQWlDLEVBQ2pDLGNBQWMsRUFFZCxtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUV0QixxQ0FBcUMsRUFDckMscUJBQXFCLEVBQ3JCLG1DQUFtQyxFQUNuQyx3QkFBd0IsRUFDeEIsV0FBVyxFQUNYLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCx1QkFBdUIsR0FDeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FB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
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5xdWV1ZWRfY2FsbF9zaW11bGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2VucXVldWVkX2NhbGxfc2ltdWxhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxZQUFZLEVBQ1oseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUVsQixpQkFBaUIsRUFHakIseUJBQXlCLEdBQzFCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1QixFQUFFLEVBQ0YsR0FBRyxFQUdILGFBQWEsRUFDYixPQUFPLEVBQ1AsdUNBQXVDLEVBQ3ZDLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIsd0JBQXdCLEVBQ3hCLG9DQUFvQyxFQUNwQyx1QkFBdUIsRUFDdkIsaURBQWlELEVBQ2pELG9DQUFvQyxFQUNwQyxxQ0FBcUMsRUFDckMsbUNBQW1DLEVBQ25DLDhCQUE4QixFQUM5Qix3Q0FBd0MsRUFDeEMsNkJBQTZCLEVBQzdCLDZCQUE2QixFQUM3QixRQUFRLEVBQ1IsU0FBUyxFQUNULHFCQUFxQixFQUNyQixpQ0FBaUMsRUFDakMsY0FBYyxFQUVkLHlCQUF5QixFQUN6QixzQkFBc0IsRUFFdEIscUNBQXFDLEVBQ3JDLHFCQUFxQixFQUNyQixtQ0FBbUMsRUFDbkMsd0JBQXdCLEVBQ3hCLFdBQVcsRUFDWCxVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLHVCQUF1QixHQUN4QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FB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
@@ -1,4 +1,4 @@
1
- import { type MerkleTreeReadOperations, type NestedProcessReturnValues, type ProcessedTx, type PublicExecutionRequest, PublicKernelPhase, type PublicProvingRequest, type SimulationError, type Tx } from '@aztec/circuit-types';
1
+ import { type AvmProvingRequest, type MerkleTreeReadOperations, type NestedProcessReturnValues, type ProcessedTx, type PublicExecutionRequest, PublicKernelPhase, type SimulationError, type Tx } from '@aztec/circuit-types';
2
2
  import { type GlobalVariables, type Header, type KernelCircuitPublicInputs, type PublicCallRequest } from '@aztec/circuits.js';
3
3
  import { EnqueuedCallSimulator } from './enqueued_call_simulator.js';
4
4
  import { type PublicExecutor } from './executor.js';
@@ -11,8 +11,7 @@ export type ProcessedPhase = {
11
11
  revertReason?: SimulationError;
12
12
  };
13
13
  export type TxPublicCallsResult = {
14
- /** The collection of public proving requests */
15
- provingRequests: PublicProvingRequest[];
14
+ avmProvingRequest: AvmProvingRequest;
16
15
  /** The output of the public kernel tail circuit simulation for this tx */
17
16
  tailKernelOutput: KernelCircuitPublicInputs;
18
17
  /** Return values of simulating complete callstack */
@@ -1 +1 @@
1
- {"version":3,"file":"enqueued_calls_processor.d.ts","sourceRoot":"","sources":["../../src/public/enqueued_calls_processor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAEhB,KAAK,sBAAsB,EAE3B,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,EAAE,EACR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,yBAAyB,EAE9B,KAAK,iBAAiB,EAOvB,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAuB9E,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,iBAAiB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,gDAAgD;IAChD,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACxC,0EAA0E;IAC1E,gBAAgB,EAAE,yBAAyB,CAAC;IAC5C,qDAAqD;IACrD,YAAY,EAAE,yBAAyB,EAAE,CAAC;IAC1C,4CAA4C;IAC5C,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,4BAA4B;IAC5B,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC,CAAC;AAEF,qBAAa,sBAAsB;IAI/B,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,yBAAyB;IAPnC,OAAO,CAAC,GAAG,CAAc;gBAGf,qBAAqB,EAAE,4BAA4B,EACnD,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,qBAAqB,EAAE,qBAAqB,EAC5C,yBAAyB,EAAE,yBAAyB;IAK9D,MAAM,CAAC,MAAM,CACX,EAAE,EAAE,wBAAwB,EAC5B,cAAc,EAAE,cAAc,EAC9B,qBAAqB,EAAE,4BAA4B,EACnD,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,YAAY;IAqB5B,MAAM,CAAC,2BAA2B,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,GAAG,sBAAsB,EAAE;IAe9F,MAAM,CAAC,sBAAsB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,EAAE;IAe9E,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAyErC,YAAY;IA0F1B,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,iBAAiB;YAoBX,qBAAqB;IAuBnC,OAAO,CAAC,qBAAqB;CAa9B"}
1
+ {"version":3,"file":"enqueued_calls_processor.d.ts","sourceRoot":"","sources":["../../src/public/enqueued_calls_processor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,EAAE,EACR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,yBAAyB,EAE9B,KAAK,iBAAiB,EAQvB,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAsB9E,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,iBAAiB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,0EAA0E;IAC1E,gBAAgB,EAAE,yBAAyB,CAAC;IAC5C,qDAAqD;IACrD,YAAY,EAAE,yBAAyB,EAAE,CAAC;IAC1C,4CAA4C;IAC5C,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,4BAA4B;IAC5B,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC,CAAC;AAEF,qBAAa,sBAAsB;IAI/B,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,yBAAyB;IAPnC,OAAO,CAAC,GAAG,CAAc;gBAGf,qBAAqB,EAAE,4BAA4B,EACnD,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,qBAAqB,EAAE,qBAAqB,EAC5C,yBAAyB,EAAE,yBAAyB;IAK9D,MAAM,CAAC,MAAM,CACX,EAAE,EAAE,wBAAwB,EAC5B,cAAc,EAAE,cAAc,EAC9B,qBAAqB,EAAE,4BAA4B,EACnD,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,YAAY;IAqB5B,MAAM,CAAC,2BAA2B,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,GAAG,sBAAsB,EAAE;IAe9F,MAAM,CAAC,sBAAsB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,EAAE;IAe9E,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAwErC,YAAY;IAuF1B,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,iBAAiB;YAoBX,qBAAqB;IAgBnC,OAAO,CAAC,qBAAqB;CAa9B"}