@aztec/simulator 0.44.0 → 0.45.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 (110) hide show
  1. package/dest/acvm/oracle/oracle.d.ts +1 -1
  2. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  3. package/dest/acvm/oracle/oracle.js +3 -3
  4. package/dest/acvm/oracle/typed_oracle.d.ts +1 -1
  5. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  6. package/dest/acvm/oracle/typed_oracle.js +2 -2
  7. package/dest/avm/avm_context.d.ts +1 -1
  8. package/dest/avm/avm_context.d.ts.map +1 -1
  9. package/dest/avm/avm_context.js +3 -3
  10. package/dest/avm/{avm_message_call_result.d.ts → avm_contract_call_result.d.ts} +2 -2
  11. package/dest/avm/avm_contract_call_result.d.ts.map +1 -0
  12. package/dest/avm/avm_contract_call_result.js +18 -0
  13. package/dest/avm/avm_execution_environment.d.ts +7 -11
  14. package/dest/avm/avm_execution_environment.d.ts.map +1 -1
  15. package/dest/avm/avm_execution_environment.js +11 -20
  16. package/dest/avm/avm_gas.js +2 -2
  17. package/dest/avm/avm_simulator.d.ts +4 -4
  18. package/dest/avm/avm_simulator.d.ts.map +1 -1
  19. package/dest/avm/avm_simulator.js +7 -7
  20. package/dest/avm/bytecode_utils.d.ts +5 -0
  21. package/dest/avm/bytecode_utils.d.ts.map +1 -0
  22. package/dest/avm/bytecode_utils.js +29 -0
  23. package/dest/avm/errors.js +2 -2
  24. package/dest/avm/fixtures/index.d.ts.map +1 -1
  25. package/dest/avm/fixtures/index.js +3 -3
  26. package/dest/avm/journal/journal.d.ts +5 -5
  27. package/dest/avm/journal/journal.d.ts.map +1 -1
  28. package/dest/avm/journal/journal.js +9 -7
  29. package/dest/avm/journal/public_storage.d.ts +1 -1
  30. package/dest/avm/journal/public_storage.d.ts.map +1 -1
  31. package/dest/avm/journal/public_storage.js +2 -2
  32. package/dest/avm/opcodes/accrued_substate.d.ts +1 -2
  33. package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
  34. package/dest/avm/opcodes/accrued_substate.js +6 -15
  35. package/dest/avm/opcodes/environment_getters.d.ts +13 -8
  36. package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
  37. package/dest/avm/opcodes/environment_getters.js +20 -13
  38. package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
  39. package/dest/avm/opcodes/external_calls.js +1 -2
  40. package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  41. package/dest/avm/serialization/bytecode_serialization.js +5 -5
  42. package/dest/avm/serialization/instruction_serialization.d.ts +9 -9
  43. package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
  44. package/dest/avm/serialization/instruction_serialization.js +10 -10
  45. package/dest/client/client_execution_context.d.ts +3 -1
  46. package/dest/client/client_execution_context.d.ts.map +1 -1
  47. package/dest/client/client_execution_context.js +6 -4
  48. package/dest/client/view_data_oracle.d.ts +3 -1
  49. package/dest/client/view_data_oracle.d.ts.map +1 -1
  50. package/dest/client/view_data_oracle.js +6 -4
  51. package/dest/mocks/fixtures.d.ts +3 -3
  52. package/dest/mocks/fixtures.d.ts.map +1 -1
  53. package/dest/mocks/fixtures.js +4 -4
  54. package/dest/public/abstract_phase_manager.js +12 -12
  55. package/dest/public/execution.d.ts +6 -5
  56. package/dest/public/execution.d.ts.map +1 -1
  57. package/dest/public/execution.js +2 -2
  58. package/dest/public/executor.d.ts +4 -4
  59. package/dest/public/executor.d.ts.map +1 -1
  60. package/dest/public/executor.js +19 -14
  61. package/dest/public/hints_builder.d.ts +1 -1
  62. package/dest/public/index.d.ts +1 -1
  63. package/dest/public/index.d.ts.map +1 -1
  64. package/dest/public/index.js +1 -1
  65. package/dest/public/public_kernel.d.ts +1 -1
  66. package/dest/public/public_kernel.d.ts.map +1 -1
  67. package/dest/public/public_kernel.js +2 -2
  68. package/dest/public/side_effect_trace.d.ts +5 -4
  69. package/dest/public/side_effect_trace.d.ts.map +1 -1
  70. package/dest/public/side_effect_trace.js +23 -9
  71. package/dest/public/side_effect_trace_interface.d.ts +3 -3
  72. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  73. package/dest/rollup/rollup.d.ts +1 -1
  74. package/dest/rollup/rollup.d.ts.map +1 -1
  75. package/dest/rollup/rollup.js +2 -2
  76. package/package.json +9 -9
  77. package/src/acvm/oracle/oracle.ts +12 -2
  78. package/src/acvm/oracle/typed_oracle.ts +6 -1
  79. package/src/avm/avm_context.ts +2 -2
  80. package/src/avm/{avm_message_call_result.ts → avm_contract_call_result.ts} +1 -1
  81. package/src/avm/avm_execution_environment.ts +10 -27
  82. package/src/avm/avm_gas.ts +1 -1
  83. package/src/avm/avm_simulator.ts +9 -11
  84. package/src/avm/bytecode_utils.ts +32 -0
  85. package/src/avm/errors.ts +1 -1
  86. package/src/avm/fixtures/index.ts +3 -6
  87. package/src/avm/journal/journal.ts +14 -11
  88. package/src/avm/journal/public_storage.ts +2 -2
  89. package/src/avm/opcodes/accrued_substate.ts +6 -19
  90. package/src/avm/opcodes/environment_getters.ts +23 -14
  91. package/src/avm/opcodes/external_calls.ts +2 -3
  92. package/src/avm/serialization/bytecode_serialization.ts +4 -3
  93. package/src/avm/serialization/instruction_serialization.ts +3 -3
  94. package/src/client/client_execution_context.ts +12 -3
  95. package/src/client/view_data_oracle.ts +12 -3
  96. package/src/mocks/fixtures.ts +5 -5
  97. package/src/public/abstract_phase_manager.ts +15 -15
  98. package/src/public/execution.ts +10 -6
  99. package/src/public/executor.ts +35 -20
  100. package/src/public/index.ts +1 -1
  101. package/src/public/public_kernel.ts +2 -1
  102. package/src/public/side_effect_trace.ts +31 -13
  103. package/src/public/side_effect_trace_interface.ts +3 -3
  104. package/src/rollup/rollup.ts +3 -1
  105. package/dest/avm/avm_message_call_result.d.ts.map +0 -1
  106. package/dest/avm/avm_message_call_result.js +0 -18
  107. package/dest/public/transitional_adaptors.d.ts +0 -17
  108. package/dest/public/transitional_adaptors.d.ts.map +0 -1
  109. package/dest/public/transitional_adaptors.js +0 -42
  110. package/src/public/transitional_adaptors.ts +0 -70
@@ -2,12 +2,14 @@ import { UnencryptedFunctionL2Logs, UnencryptedL2Log } from '@aztec/circuit-type
2
2
  import { AvmContractInstanceHint, AvmExecutionHints, AvmExternalCallHint, AvmKeyValueHint, AztecAddress, CallContext, ContractStorageRead, ContractStorageUpdateRequest, EthAddress, Gas, L2ToL1Message, LogHash, NoteHash, Nullifier, ReadRequest, } from '@aztec/circuits.js';
3
3
  import { EventSelector } from '@aztec/foundation/abi';
4
4
  import { Fr } from '@aztec/foundation/fields';
5
+ import { createDebugLogger } from '@aztec/foundation/log';
5
6
  import { createSimulationError } from '../common/errors.js';
6
7
  export class PublicSideEffectTrace {
7
8
  constructor(
8
9
  /** The counter of this trace's first side effect. */
9
10
  startSideEffectCounter = 0) {
10
11
  this.startSideEffectCounter = startSideEffectCounter;
12
+ this.logger = createDebugLogger('aztec:public_side_effect_trace');
11
13
  this.contractStorageReads = [];
12
14
  this.contractStorageUpdateRequests = [];
13
15
  this.noteHashReadRequests = [];
@@ -40,12 +42,14 @@ export class PublicSideEffectTrace {
40
42
  // NOTE: exists and cached are unused for now but may be used for optimizations or kernel hints later
41
43
  this.contractStorageReads.push(new ContractStorageRead(slot, value, this.sideEffectCounter, AztecAddress.fromField(storageAddress)));
42
44
  this.avmCircuitHints.storageValues.items.push(new AvmKeyValueHint(/*key=*/ new Fr(this.sideEffectCounter), /*value=*/ value));
45
+ this.logger.debug(`SLOAD cnt: ${this.sideEffectCounter} val: ${value} slot: ${slot}`);
43
46
  this.incrementSideEffectCounter();
44
47
  }
45
48
  tracePublicStorageWrite(storageAddress, slot, value) {
46
49
  // TODO(4805): check if some threshold is reached for max storage writes
47
50
  // (need access to parent length, or trace needs to be initialized with parent's contents)
48
51
  this.contractStorageUpdateRequests.push(new ContractStorageUpdateRequest(slot, value, this.sideEffectCounter, storageAddress));
52
+ this.logger.debug(`SSTORE cnt: ${this.sideEffectCounter} val: ${value} slot: ${slot}`);
49
53
  this.incrementSideEffectCounter();
50
54
  }
51
55
  traceNoteHashCheck(_storageAddress, noteHash, _leafIndex, exists) {
@@ -55,6 +59,7 @@ export class PublicSideEffectTrace {
55
59
  // is in fact checking the leaf indicated by the user
56
60
  this.noteHashReadRequests.push(new ReadRequest(noteHash, this.sideEffectCounter));
57
61
  this.avmCircuitHints.noteHashExists.items.push(new AvmKeyValueHint(/*key=*/ new Fr(this.sideEffectCounter), /*value=*/ new Fr(exists ? 1 : 0)));
62
+ this.logger.debug(`NOTE_HASH_CHECK cnt: ${this.sideEffectCounter}`);
58
63
  this.incrementSideEffectCounter();
59
64
  }
60
65
  traceNewNoteHash(_storageAddress, noteHash) {
@@ -65,6 +70,7 @@ export class PublicSideEffectTrace {
65
70
  // the noteHash against the one provided by the user code to determine what to return to the user (exists or not),
66
71
  // and will then propagate the actually-present noteHash to its public inputs.
67
72
  this.newNoteHashes.push(new NoteHash(noteHash, this.sideEffectCounter));
73
+ this.logger.debug(`NEW_NOTE_HASH cnt: ${this.sideEffectCounter}`);
68
74
  this.incrementSideEffectCounter();
69
75
  }
70
76
  traceNullifierCheck(_storageAddress, nullifier, _leafIndex, exists, _isPending) {
@@ -79,12 +85,14 @@ export class PublicSideEffectTrace {
79
85
  this.nullifierNonExistentReadRequests.push(readRequest);
80
86
  }
81
87
  this.avmCircuitHints.nullifierExists.items.push(new AvmKeyValueHint(/*key=*/ new Fr(this.sideEffectCounter), /*value=*/ new Fr(exists ? 1 : 0)));
88
+ this.logger.debug(`NULLIFIER_EXISTS cnt: ${this.sideEffectCounter}`);
82
89
  this.incrementSideEffectCounter();
83
90
  }
84
91
  traceNewNullifier(_storageAddress, nullifier) {
85
92
  // TODO(4805): check if some threshold is reached for max new nullifier
86
93
  // NOTE: storageAddress is unused but will be important when an AVM circuit processes an entire enqueued call
87
94
  this.newNullifiers.push(new Nullifier(nullifier, this.sideEffectCounter, /*noteHash=*/ Fr.ZERO));
95
+ this.logger.debug(`NEW_NULLIFIER cnt: ${this.sideEffectCounter}`);
88
96
  this.incrementSideEffectCounter();
89
97
  }
90
98
  traceL1ToL2MessageCheck(_contractAddress, msgHash, _msgLeafIndex, exists) {
@@ -94,28 +102,34 @@ export class PublicSideEffectTrace {
94
102
  // is in fact checking the leaf indicated by the user
95
103
  this.l1ToL2MsgReadRequests.push(new ReadRequest(msgHash, this.sideEffectCounter));
96
104
  this.avmCircuitHints.l1ToL2MessageExists.items.push(new AvmKeyValueHint(/*key=*/ new Fr(this.sideEffectCounter), /*value=*/ new Fr(exists ? 1 : 0)));
105
+ this.logger.debug(`L1_TO_L2_MSG_CHECK cnt: ${this.sideEffectCounter}`);
97
106
  this.incrementSideEffectCounter();
98
107
  }
99
108
  traceNewL2ToL1Message(recipient, content) {
100
109
  // TODO(4805): check if some threshold is reached for max messages
101
110
  const recipientAddress = EthAddress.fromField(recipient);
102
111
  this.newL2ToL1Messages.push(new L2ToL1Message(recipientAddress, content, this.sideEffectCounter));
112
+ this.logger.debug(`NEW_L2_TO_L1_MSG cnt: ${this.sideEffectCounter}`);
103
113
  this.incrementSideEffectCounter();
104
114
  }
105
- traceUnencryptedLog(contractAddress, event, log) {
115
+ traceUnencryptedLog(contractAddress, log) {
106
116
  // TODO(4805): check if some threshold is reached for max logs
107
- const ulog = new UnencryptedL2Log(AztecAddress.fromField(contractAddress), EventSelector.fromField(event), Buffer.concat(log.map(f => f.toBuffer())));
117
+ const ulog = new UnencryptedL2Log(AztecAddress.fromField(contractAddress),
118
+ // TODO(#7198): Remove event selector from UnencryptedL2Log
119
+ EventSelector.fromField(new Fr(0)), Buffer.concat(log.map(f => f.toBuffer())));
108
120
  const basicLogHash = Fr.fromBuffer(ulog.hash());
109
121
  this.unencryptedLogs.push(ulog);
110
122
  this.allUnencryptedLogs.push(ulog);
111
123
  // TODO(6578): explain magic number 4 here
112
124
  this.unencryptedLogsHashes.push(new LogHash(basicLogHash, this.sideEffectCounter, new Fr(ulog.length + 4)));
125
+ this.logger.debug(`NEW_UNENCRYPTED_LOG cnt: ${this.sideEffectCounter}`);
113
126
  this.incrementSideEffectCounter();
114
127
  }
115
128
  traceGetContractInstance(instance) {
116
129
  // TODO(4805): check if some threshold is reached for max contract instance retrievals
117
130
  this.gotContractInstances.push(instance);
118
131
  this.avmCircuitHints.contractInstances.items.push(new AvmContractInstanceHint(instance.address, new Fr(instance.exists ? 1 : 0), instance.salt, instance.deployer, instance.contractClassId, instance.initializationHash, instance.publicKeysHash));
132
+ this.logger.debug(`CONTRACT_INSTANCE cnt: ${this.sideEffectCounter}`);
119
133
  this.incrementSideEffectCounter();
120
134
  }
121
135
  /**
@@ -145,7 +159,8 @@ export class PublicSideEffectTrace {
145
159
  // this function will accept all of the nested's side effects into this instance
146
160
  this.nestedExecutions.push(result);
147
161
  const gasUsed = new Gas(result.startGasLeft.daGas - result.endGasLeft.daGas, result.startGasLeft.l2Gas - result.endGasLeft.l2Gas);
148
- this.avmCircuitHints.externalCalls.items.push(new AvmExternalCallHint(/*success=*/ new Fr(result.reverted ? 0 : 1), result.returnValues, gasUsed));
162
+ this.avmCircuitHints.externalCalls.items.push(new AvmExternalCallHint(
163
+ /*success=*/ new Fr(result.reverted ? 0 : 1), result.returnValues, gasUsed, result.endSideEffectCounter));
149
164
  }
150
165
  /**
151
166
  * Convert this trace to a PublicExecutionResult for use externally to the simulator.
@@ -166,7 +181,7 @@ export class PublicSideEffectTrace {
166
181
  /** The side effect counter of the execution request itself */
167
182
  requestSideEffectCounter = this.startSideEffectCounter) {
168
183
  return {
169
- execution: createPublicExecutionRequest(requestSideEffectCounter, avmEnvironment),
184
+ executionRequest: createPublicExecutionRequest(requestSideEffectCounter, avmEnvironment),
170
185
  startSideEffectCounter: new Fr(this.startSideEffectCounter),
171
186
  endSideEffectCounter: new Fr(this.sideEffectCounter),
172
187
  startGasLeft,
@@ -205,18 +220,17 @@ function createPublicExecutionRequest(requestSideEffectCounter, avmEnvironment)
205
220
  const callContext = CallContext.from({
206
221
  msgSender: avmEnvironment.sender,
207
222
  storageContractAddress: avmEnvironment.storageAddress,
208
- functionSelector: avmEnvironment.temporaryFunctionSelector,
223
+ functionSelector: avmEnvironment.functionSelector,
209
224
  isDelegateCall: avmEnvironment.isDelegateCall,
210
225
  isStaticCall: avmEnvironment.isStaticCall,
211
226
  sideEffectCounter: requestSideEffectCounter,
212
227
  });
213
- const execution = {
228
+ return {
214
229
  contractAddress: avmEnvironment.address,
215
- functionSelector: avmEnvironment.temporaryFunctionSelector,
230
+ functionSelector: avmEnvironment.functionSelector,
216
231
  callContext,
217
232
  // execution request does not contain AvmContextInputs prefix
218
233
  args: avmEnvironment.getCalldataWithoutPrefix(),
219
234
  };
220
- return execution;
221
235
  }
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZV9lZmZlY3RfdHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3NpZGVfZWZmZWN0X3RyYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25GLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsWUFBWSxFQUNaLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLFVBQVUsRUFDVixHQUFHLEVBQ0gsYUFBYSxFQUNiLE9BQU8sRUFDUCxRQUFRLEVBQ1IsU0FBUyxFQUNULFdBQVcsR0FDWixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFLOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFNNUQsTUFBTSxPQUFPLHFCQUFxQjtJQTJCaEM7SUFDRSxxREFBcUQ7SUFDckMseUJBQWlDLENBQUM7UUFBbEMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFZO1FBekI1Qyx5QkFBb0IsR0FBMEIsRUFBRSxDQUFDO1FBQ2pELGtDQUE2QixHQUFtQyxFQUFFLENBQUM7UUFFbkUseUJBQW9CLEdBQWtCLEVBQUUsQ0FBQztRQUN6QyxrQkFBYSxHQUFlLEVBQUUsQ0FBQztRQUUvQiwwQkFBcUIsR0FBa0IsRUFBRSxDQUFDO1FBQzFDLHFDQUFnQyxHQUFrQixFQUFFLENBQUM7UUFDckQsa0JBQWEsR0FBZ0IsRUFBRSxDQUFDO1FBRWhDLDBCQUFxQixHQUFrQixFQUFFLENBQUM7UUFDMUMsc0JBQWlCLEdBQW9CLEVBQUUsQ0FBQztRQUV4QyxvQkFBZSxHQUF1QixFQUFFLENBQUM7UUFD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
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZV9lZmZlY3RfdHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3NpZGVfZWZmZWN0X3RyYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25GLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsWUFBWSxFQUNaLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLFVBQVUsRUFDVixHQUFHLEVBQ0gsYUFBYSxFQUNiLE9BQU8sRUFDUCxRQUFRLEVBQ1IsU0FBUyxFQUNULFdBQVcsR0FDWixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFNNUQsTUFBTSxPQUFPLHFCQUFxQjtJQTZCaEM7SUFDRSxxREFBcUQ7SUFDckMseUJBQWlDLENBQUM7UUFBbEMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFZO1FBOUI3QyxXQUFNLEdBQUcsaUJBQWlCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUs1RCx5QkFBb0IsR0FBMEIsRUFBRSxDQUFDO1FBQ2pELGtDQUE2QixHQUFtQyxFQUFFLENBQUM7UUFFbkUseUJBQW9CLEdBQWtCLEVBQUUsQ0FBQztRQUN6QyxrQkFBYSxHQUFlLEVBQUUsQ0FBQztRQUUvQiwwQkFBcUIsR0FBa0IsRUFBRSxDQUFDO1FBQzFDLHFDQUFnQyxHQUFrQixFQUFFLENBQUM7UUFDckQsa0JBQWEsR0FBZ0IsRUFBRSxDQUFD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
@@ -1,8 +1,8 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  import { type Gas } from '@aztec/circuits.js';
3
3
  import { type Fr } from '@aztec/foundation/fields';
4
+ import { type AvmContractCallResult } from '../avm/avm_contract_call_result.js';
4
5
  import { type AvmExecutionEnvironment } from '../avm/avm_execution_environment.js';
5
- import { type AvmContractCallResults } from '../avm/avm_message_call_result.js';
6
6
  import { type TracedContractInstance } from './side_effect_trace.js';
7
7
  export interface PublicSideEffectTraceInterface {
8
8
  fork(): PublicSideEffectTraceInterface;
@@ -15,7 +15,7 @@ export interface PublicSideEffectTraceInterface {
15
15
  traceNewNullifier(storageAddress: Fr, nullifier: Fr): void;
16
16
  traceL1ToL2MessageCheck(contractAddress: Fr, msgHash: Fr, msgLeafIndex: Fr, exists: boolean): void;
17
17
  traceNewL2ToL1Message(recipient: Fr, content: Fr): void;
18
- traceUnencryptedLog(contractAddress: Fr, event: Fr, log: Fr[]): void;
18
+ traceUnencryptedLog(contractAddress: Fr, log: Fr[]): void;
19
19
  traceGetContractInstance(instance: TracedContractInstance): void;
20
20
  traceNestedCall(
21
21
  /** The trace of the nested call. */
@@ -29,7 +29,7 @@ export interface PublicSideEffectTraceInterface {
29
29
  /** Bytecode used for this execution. */
30
30
  bytecode: Buffer,
31
31
  /** The call's results */
32
- avmCallResults: AvmContractCallResults,
32
+ avmCallResults: AvmContractCallResult,
33
33
  /** Function name */
34
34
  functionName: string): void;
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"side_effect_trace_interface.d.ts","sourceRoot":"","sources":["../../src/public/side_effect_trace_interface.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,MAAM,WAAW,8BAA8B;IAC7C,IAAI,IAAI,8BAA8B,CAAC;IACvC,UAAU,IAAI,MAAM,CAAC;IACrB,sBAAsB,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACxG,uBAAuB,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC;IACvE,kBAAkB,CAAC,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3F,gBAAgB,CAAC,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC;IACzD,mBAAmB,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IACjH,iBAAiB,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC;IAC3D,uBAAuB,CAAC,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAEnG,qBAAqB,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC;IACxD,mBAAmB,CAAC,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAErE,wBAAwB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACjE,eAAe;IACb,oCAAoC;IACpC,eAAe,EAAE,8BAA8B;IAC/C,oDAAoD;IACpD,iBAAiB,EAAE,uBAAuB;IAC1C,4DAA4D;IAE5D,YAAY,EAAE,GAAG;IACjB,yDAAyD;IAEzD,UAAU,EAAE,GAAG;IACf,wCAAwC;IACxC,QAAQ,EAAE,MAAM;IAChB,yBAAyB;IACzB,cAAc,EAAE,sBAAsB;IACtC,oBAAoB;IACpB,YAAY,EAAE,MAAM,GACnB,IAAI,CAAC;CACT"}
1
+ {"version":3,"file":"side_effect_trace_interface.d.ts","sourceRoot":"","sources":["../../src/public/side_effect_trace_interface.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,MAAM,WAAW,8BAA8B;IAC7C,IAAI,IAAI,8BAA8B,CAAC;IACvC,UAAU,IAAI,MAAM,CAAC;IACrB,sBAAsB,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACxG,uBAAuB,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC;IACvE,kBAAkB,CAAC,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3F,gBAAgB,CAAC,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC;IACzD,mBAAmB,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IACjH,iBAAiB,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC;IAC3D,uBAAuB,CAAC,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAEnG,qBAAqB,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC;IACxD,mBAAmB,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAE1D,wBAAwB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACjE,eAAe;IACb,oCAAoC;IACpC,eAAe,EAAE,8BAA8B;IAC/C,oDAAoD;IACpD,iBAAiB,EAAE,uBAAuB;IAC1C,4DAA4D;IAE5D,YAAY,EAAE,GAAG;IACjB,yDAAyD;IAEzD,UAAU,EAAE,GAAG;IACf,wCAAwC;IACxC,QAAQ,EAAE,MAAM;IAChB,yBAAyB;IACzB,cAAc,EAAE,qBAAqB;IACrC,oBAAoB;IACpB,YAAY,EAAE,MAAM,GACnB,IAAI,CAAC;CACT"}
@@ -1,5 +1,5 @@
1
1
  import { type BaseOrMergeRollupPublicInputs, type BaseParityInputs, type BaseRollupInputs, type MergeRollupInputs, type ParityPublicInputs, type RootParityInputs, type RootRollupInputs, type RootRollupPublicInputs } from '@aztec/circuits.js';
2
- import { type SimulationProvider } from '@aztec/simulator';
2
+ import { type SimulationProvider } from '../providers/simulation_provider.js';
3
3
  /**
4
4
  * Circuit simulator for the rollup circuits.
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/rollup/rollup.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAoB5B,OAAO,EAAE,KAAK,kBAAkB,EAAiB,MAAM,kBAAkB,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzE;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzE;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACnF;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACrF;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC7E;AAED;;GAEG;AACH,qBAAa,0BAA2B,YAAW,eAAe;IAMpD,OAAO,CAAC,kBAAkB;IALtC,OAAO,CAAC,GAAG,CAA+C;IAG1D,OAAO,CAAC,aAAa,CAAsC;gBAEvC,kBAAkB,EAAE,kBAAkB;IAE1D;;;;OAIG;IACU,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAUrF;;;;OAIG;IACU,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAUrF;;;;OAIG;IACU,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAS/F;;;;OAIG;IACU,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAUjG;;;;OAIG;IACU,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAgBzF"}
1
+ {"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/rollup/rollup.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAsB5B,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzE;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzE;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACnF;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACrF;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC7E;AAED;;GAEG;AACH,qBAAa,0BAA2B,YAAW,eAAe;IAMpD,OAAO,CAAC,kBAAkB;IALtC,OAAO,CAAC,GAAG,CAA+C;IAG1D,OAAO,CAAC,aAAa,CAAsC;gBAEvC,kBAAkB,EAAE,kBAAkB;IAE1D;;;;OAIG;IACU,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAUrF;;;;OAIG;IACU,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAUrF;;;;OAIG;IACU,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAS/F;;;;OAIG;IACU,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAUjG;;;;OAIG;IACU,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAgBzF"}
@@ -1,7 +1,7 @@
1
1
  import { createDebugLogger } from '@aztec/foundation/log';
2
2
  import { elapsed } from '@aztec/foundation/timer';
3
3
  import { BaseParityArtifact, MergeRollupArtifact, RootParityArtifact, RootRollupArtifact, SimulatedBaseRollupArtifact, convertBaseParityInputsToWitnessMap, convertBaseParityOutputsFromWitnessMap, convertMergeRollupInputsToWitnessMap, convertMergeRollupOutputsFromWitnessMap, convertRootParityInputsToWitnessMap, convertRootParityOutputsFromWitnessMap, convertRootRollupInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap, convertSimulatedBaseRollupInputsToWitnessMap, convertSimulatedBaseRollupOutputsFromWitnessMap, } from '@aztec/noir-protocol-circuits-types';
4
- import { WASMSimulator } from '@aztec/simulator';
4
+ import { WASMSimulator } from '../providers/acvm_wasm.js';
5
5
  /**
6
6
  * Implements the rollup circuit simulator.
7
7
  */
@@ -75,4 +75,4 @@ export class RealRollupCircuitSimulator {
75
75
  return result;
76
76
  }
77
77
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbHVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9yb2xsdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsMkJBQTJCLEVBQzNCLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsb0NBQW9DLEVBQ3BDLHVDQUF1QyxFQUN2QyxtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsNENBQTRDLEVBQzVDLCtDQUErQyxHQUNoRCxNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBMkIsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFzQzFFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDBCQUEwQjtJQU1yQyxZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUxsRCxRQUFHLEdBQUcsaUJBQWlCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUUxRCxzREFBc0Q7UUFDOUMsa0JBQWEsR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUVFLENBQUM7SUFFOUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUF3QjtRQUNyRCxNQUFNLFVBQVUsR0FBRyxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFFOUYsTUFBTSxNQUFNLEdBQUcsc0NBQXNDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFL0QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQXdCO1FBQ3JELE1BQU0sVUFBVSxHQUFHLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9ELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUU5RixNQUFNLE1BQU0sR0FBRyxzQ0FBc0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBdUI7UUFDcEQsTUFBTSxVQUFVLEdBQUcsNENBQTRDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1FBRXZHLE1BQU0sTUFBTSxHQUFHLCtDQUErQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUF3QjtRQUN0RCxNQUFNLFVBQVUsR0FBRyxvQ0FBb0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBRTFGLE1BQU0sTUFBTSxHQUFHLHVDQUF1QyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWhFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQXVCO1FBQ3BELE1BQU0sVUFBVSxHQUFHLG1DQUFtQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlELE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUVwSCxNQUFNLE1BQU0sR0FBRyxzQ0FBc0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvRCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsRUFBRTtZQUM5QyxTQUFTLEVBQUUsb0JBQW9CO1lBQy9CLFdBQVcsRUFBRSxhQUFhO1lBQzFCLFFBQVE7WUFDUixTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07WUFDbEMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNO1NBQ0osQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiJ9
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbHVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9yb2xsdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsMkJBQTJCLEVBQzNCLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsb0NBQW9DLEVBQ3BDLHVDQUF1QyxFQUN2QyxtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsNENBQTRDLEVBQzVDLCtDQUErQyxHQUNoRCxNQUFNLHFDQUFxQyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQXVDMUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sMEJBQTBCO0lBTXJDLFlBQW9CLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBTGxELFFBQUcsR0FBRyxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRTFELHNEQUFzRDtRQUM5QyxrQkFBYSxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO0lBRUUsQ0FBQztJQUU5RDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQXdCO1FBQ3JELE1BQU0sVUFBVSxHQUFHLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9ELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUU5RixNQUFNLE1BQU0sR0FBRyxzQ0FBc0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBd0I7UUFDckQsTUFBTSxVQUFVLEdBQUcsbUNBQW1DLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBRTlGLE1BQU0sTUFBTSxHQUFHLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRS9ELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUF1QjtRQUNwRCxNQUFNLFVBQVUsR0FBRyw0Q0FBNEMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2RSxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFFdkcsTUFBTSxNQUFNLEdBQUcsK0NBQStDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQXdCO1FBQ3RELE1BQU0sVUFBVSxHQUFHLG9DQUFvQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9ELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFMUYsTUFBTSxNQUFNLEdBQUcsdUNBQXVDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFaEUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBdUI7UUFDcEQsTUFBTSxVQUFVLEdBQUcsbUNBQW1DLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUQsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBRXBILE1BQU0sTUFBTSxHQUFHLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLCtCQUErQixFQUFFO1lBQzlDLFNBQVMsRUFBRSxvQkFBb0I7WUFDL0IsV0FBVyxFQUFFLGFBQWE7WUFDMUIsUUFBUTtZQUNSLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTTtZQUNsQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07U0FDSixDQUFDLENBQUM7UUFDcEMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/simulator",
3
- "version": "0.44.0",
3
+ "version": "0.45.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -56,14 +56,14 @@
56
56
  ]
57
57
  },
58
58
  "dependencies": {
59
- "@aztec/circuit-types": "0.44.0",
60
- "@aztec/circuits.js": "0.44.0",
61
- "@aztec/foundation": "0.44.0",
62
- "@aztec/noir-protocol-circuits-types": "0.44.0",
63
- "@aztec/protocol-contracts": "0.44.0",
64
- "@aztec/telemetry-client": "0.44.0",
65
- "@aztec/types": "0.44.0",
66
- "@aztec/world-state": "0.44.0",
59
+ "@aztec/circuit-types": "0.45.0",
60
+ "@aztec/circuits.js": "0.45.0",
61
+ "@aztec/foundation": "0.45.0",
62
+ "@aztec/noir-protocol-circuits-types": "0.45.0",
63
+ "@aztec/protocol-contracts": "0.45.0",
64
+ "@aztec/telemetry-client": "0.45.0",
65
+ "@aztec/types": "0.45.0",
66
+ "@aztec/world-state": "0.45.0",
67
67
  "@noir-lang/acvm_js": "portal:../../noir/packages/acvm_js",
68
68
  "@noir-lang/types": "portal:../../noir/packages/types",
69
69
  "levelup": "^5.1.1",
@@ -287,8 +287,18 @@ export class Oracle {
287
287
  return message.toFields().map(toACVMField);
288
288
  }
289
289
 
290
- async storageRead([startStorageSlot]: ACVMField[], [numberOfElements]: ACVMField[]): Promise<ACVMField[]> {
291
- const values = await this.typedOracle.storageRead(fromACVMField(startStorageSlot), +numberOfElements);
290
+ async storageRead(
291
+ [contractAddress]: ACVMField[],
292
+ [startStorageSlot]: ACVMField[],
293
+ [blockNumber]: ACVMField[],
294
+ [numberOfElements]: ACVMField[],
295
+ ): Promise<ACVMField[]> {
296
+ const values = await this.typedOracle.storageRead(
297
+ fromACVMField(contractAddress),
298
+ fromACVMField(startStorageSlot),
299
+ +blockNumber,
300
+ +numberOfElements,
301
+ );
292
302
  return values.map(toACVMField);
293
303
  }
294
304
 
@@ -190,7 +190,12 @@ export abstract class TypedOracle {
190
190
  throw new OracleMethodNotAvailableError('getL1ToL2MembershipWitness');
191
191
  }
192
192
 
193
- storageRead(_startStorageSlot: Fr, _numberOfElements: number): Promise<Fr[]> {
193
+ storageRead(
194
+ _contractAddress: Fr,
195
+ _startStorageSlot: Fr,
196
+ _blockNumber: number,
197
+ _numberOfElements: number,
198
+ ): Promise<Fr[]> {
194
199
  throw new OracleMethodNotAvailableError('storageRead');
195
200
  }
196
201
 
@@ -43,13 +43,13 @@ export class AvmContext {
43
43
  calldata: Fr[],
44
44
  allocatedGas: Gas,
45
45
  callType: 'CALL' | 'STATICCALL',
46
- temporaryFunctionSelector: FunctionSelector = FunctionSelector.empty(),
46
+ functionSelector: FunctionSelector = FunctionSelector.empty(),
47
47
  ): AvmContext {
48
48
  const deriveFn =
49
49
  callType === 'CALL'
50
50
  ? this.environment.deriveEnvironmentForNestedCall
51
51
  : this.environment.deriveEnvironmentForNestedStaticCall;
52
- const newExecutionEnvironment = deriveFn.call(this.environment, address, calldata, temporaryFunctionSelector);
52
+ const newExecutionEnvironment = deriveFn.call(this.environment, address, calldata, functionSelector);
53
53
  const forkedWorldState = this.persistableState.fork();
54
54
  const machineState = AvmMachineState.fromState(gasToGasLeft(allocatedGas));
55
55
  return new AvmContext(forkedWorldState, newExecutionEnvironment, machineState);
@@ -5,7 +5,7 @@ import { type AvmRevertReason } from './errors.js';
5
5
  /**
6
6
  * Results of an contract call's execution in the AVM.
7
7
  */
8
- export class AvmContractCallResults {
8
+ export class AvmContractCallResult {
9
9
  constructor(public reverted: boolean, public output: Fr[], public revertReason?: AvmRevertReason) {}
10
10
 
11
11
  toString(): string {
@@ -1,15 +1,15 @@
1
- import { FunctionSelector, type GasSettings, type GlobalVariables, type Header } from '@aztec/circuits.js';
1
+ import { FunctionSelector, type GlobalVariables, type Header } from '@aztec/circuits.js';
2
2
  import { computeVarArgsHash } from '@aztec/circuits.js/hash';
3
3
  import { type AztecAddress } from '@aztec/foundation/aztec-address';
4
4
  import { Fr } from '@aztec/foundation/fields';
5
5
 
6
6
  export class AvmContextInputs {
7
- static readonly SIZE = 3;
7
+ static readonly SIZE = 2;
8
8
 
9
- constructor(private selector: Fr, private argsHash: Fr, private isStaticCall: boolean) {}
9
+ constructor(private argsHash: Fr, private isStaticCall: boolean) {}
10
10
 
11
11
  public toFields(): Fr[] {
12
- return [this.selector, this.argsHash, new Fr(this.isStaticCall)];
12
+ return [this.argsHash, new Fr(this.isStaticCall)];
13
13
  }
14
14
  }
15
15
 
@@ -17,38 +17,24 @@ export class AvmContextInputs {
17
17
  * Contains variables that remain constant during AVM execution
18
18
  * These variables are provided by the public kernel circuit
19
19
  */
20
- // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3992): gas not implemented
21
20
  export class AvmExecutionEnvironment {
22
- private readonly calldataPrefixLength;
23
21
  constructor(
24
22
  public readonly address: AztecAddress,
25
23
  public readonly storageAddress: AztecAddress,
26
24
  public readonly sender: AztecAddress,
27
- public readonly feePerL2Gas: Fr,
28
- public readonly feePerDaGas: Fr,
25
+ public readonly functionSelector: FunctionSelector, // may be temporary (#7224)
29
26
  public readonly contractCallDepth: Fr,
27
+ public readonly transactionFee: Fr,
30
28
  public readonly header: Header,
31
29
  public readonly globals: GlobalVariables,
32
30
  public readonly isStaticCall: boolean,
33
31
  public readonly isDelegateCall: boolean,
34
32
  public readonly calldata: Fr[],
35
- public readonly gasSettings: GasSettings,
36
- public readonly transactionFee: Fr,
37
-
38
- // Function selector is temporary since eventually public contract bytecode will be one blob
39
- // containing all functions, and function selector will become an application-level mechanism
40
- // (e.g. first few bytes of calldata + compiler-generated jump table)
41
- public readonly temporaryFunctionSelector: FunctionSelector,
42
33
  ) {
43
34
  // We encode some extra inputs (AvmContextInputs) in calldata.
44
35
  // This will have to go once we move away from one proof per call.
45
- const inputs = new AvmContextInputs(
46
- temporaryFunctionSelector.toField(),
47
- computeVarArgsHash(calldata),
48
- isStaticCall,
49
- ).toFields();
36
+ const inputs = new AvmContextInputs(computeVarArgsHash(calldata), isStaticCall).toFields();
50
37
  this.calldata = [...inputs, ...calldata];
51
- this.calldataPrefixLength = inputs.length;
52
38
  }
53
39
 
54
40
  private deriveEnvironmentForNestedCallInternal(
@@ -62,17 +48,14 @@ export class AvmExecutionEnvironment {
62
48
  /*address=*/ targetAddress,
63
49
  /*storageAddress=*/ targetAddress,
64
50
  /*sender=*/ this.address,
65
- this.feePerL2Gas,
66
- this.feePerDaGas,
51
+ functionSelector,
67
52
  this.contractCallDepth.add(Fr.ONE),
53
+ this.transactionFee,
68
54
  this.header,
69
55
  this.globals,
70
56
  isStaticCall,
71
57
  isDelegateCall,
72
58
  calldata,
73
- this.gasSettings,
74
- this.transactionFee,
75
- functionSelector,
76
59
  );
77
60
  }
78
61
 
@@ -114,6 +97,6 @@ export class AvmExecutionEnvironment {
114
97
 
115
98
  public getCalldataWithoutPrefix(): Fr[] {
116
99
  // clip off the first few entries
117
- return this.calldata.slice(this.calldataPrefixLength);
100
+ return this.calldata.slice(AvmContextInputs.SIZE);
118
101
  }
119
102
  }
@@ -76,7 +76,7 @@ const BaseGasCosts: Record<Opcode, Gas> = {
76
76
  [Opcode.FEEPERL2GAS]: DefaultBaseGasCost,
77
77
  [Opcode.FEEPERDAGAS]: DefaultBaseGasCost,
78
78
  [Opcode.TRANSACTIONFEE]: DefaultBaseGasCost,
79
- [Opcode.CONTRACTCALLDEPTH]: DefaultBaseGasCost,
79
+ [Opcode.FUNCTIONSELECTOR]: DefaultBaseGasCost,
80
80
  [Opcode.CHAINID]: DefaultBaseGasCost,
81
81
  [Opcode.VERSION]: DefaultBaseGasCost,
82
82
  [Opcode.BLOCKNUMBER]: DefaultBaseGasCost,
@@ -2,9 +2,9 @@ import { type DebugLogger, createDebugLogger } from '@aztec/foundation/log';
2
2
 
3
3
  import { strict as assert } from 'assert';
4
4
 
5
- import { decompressBytecodeIfCompressed, isAvmBytecode } from '../public/transitional_adaptors.js';
6
5
  import type { AvmContext } from './avm_context.js';
7
- import { AvmContractCallResults } from './avm_message_call_result.js';
6
+ import { AvmContractCallResult } from './avm_contract_call_result.js';
7
+ import { decompressBytecodeIfCompressed, isAvmBytecode } from './bytecode_utils.js';
8
8
  import {
9
9
  AvmExecutionError,
10
10
  InvalidProgramCounterError,
@@ -20,18 +20,16 @@ export class AvmSimulator {
20
20
  private bytecode: Buffer | undefined;
21
21
 
22
22
  constructor(private context: AvmContext) {
23
- this.log = createDebugLogger(
24
- `aztec:avm_simulator:core(f:${context.environment.temporaryFunctionSelector.toString()})`,
25
- );
23
+ this.log = createDebugLogger(`aztec:avm_simulator:core(f:${context.environment.functionSelector.toString()})`);
26
24
  }
27
25
 
28
26
  /**
29
27
  * Fetch the bytecode and execute it in the current context.
30
28
  */
31
- public async execute(): Promise<AvmContractCallResults> {
29
+ public async execute(): Promise<AvmContractCallResult> {
32
30
  const bytecode = await this.context.persistableState.getBytecode(
33
31
  this.context.environment.address,
34
- this.context.environment.temporaryFunctionSelector,
32
+ this.context.environment.functionSelector,
35
33
  );
36
34
 
37
35
  // This assumes that we will not be able to send messages to accounts without code
@@ -54,7 +52,7 @@ export class AvmSimulator {
54
52
  * Executes the provided bytecode in the current context.
55
53
  * This method is useful for testing and debugging.
56
54
  */
57
- public async executeBytecode(bytecode: Buffer): Promise<AvmContractCallResults> {
55
+ public async executeBytecode(bytecode: Buffer): Promise<AvmContractCallResult> {
58
56
  const decompressedBytecode = await decompressBytecodeIfCompressed(bytecode);
59
57
  assert(isAvmBytecode(decompressedBytecode), "AVM simulator can't execute non-AVM bytecode");
60
58
 
@@ -66,7 +64,7 @@ export class AvmSimulator {
66
64
  * Executes the provided instructions in the current context.
67
65
  * This method is useful for testing and debugging.
68
66
  */
69
- public async executeInstructions(instructions: Instruction[]): Promise<AvmContractCallResults> {
67
+ public async executeInstructions(instructions: Instruction[]): Promise<AvmContractCallResult> {
70
68
  assert(instructions.length > 0);
71
69
  const { machineState } = this.context;
72
70
  try {
@@ -95,7 +93,7 @@ export class AvmSimulator {
95
93
  const output = machineState.getOutput();
96
94
  const reverted = machineState.getReverted();
97
95
  const revertReason = reverted ? revertReasonFromExplicitRevert(output, this.context) : undefined;
98
- const results = new AvmContractCallResults(reverted, output, revertReason);
96
+ const results = new AvmContractCallResult(reverted, output, revertReason);
99
97
  this.log.debug(`Context execution results: ${results.toString()}`);
100
98
  // Return results for processing by calling context
101
99
  return results;
@@ -108,7 +106,7 @@ export class AvmSimulator {
108
106
 
109
107
  const revertReason = revertReasonFromExceptionalHalt(err, this.context);
110
108
  // Note: "exceptional halts" cannot return data, hence []
111
- const results = new AvmContractCallResults(/*reverted=*/ true, /*output=*/ [], revertReason);
109
+ const results = new AvmContractCallResult(/*reverted=*/ true, /*output=*/ [], revertReason);
112
110
  this.log.debug(`Context execution results: ${results.toString()}`);
113
111
  // Return results for processing by calling context
114
112
  return results;
@@ -0,0 +1,32 @@
1
+ import { promisify } from 'util';
2
+ import { gunzip } from 'zlib';
3
+
4
+ import { Mov } from '../avm/opcodes/memory.js';
5
+
6
+ const AVM_MAGIC_SUFFIX = Buffer.from([
7
+ Mov.opcode, // opcode
8
+ 0x00, // indirect
9
+ ...Buffer.from('000018ca', 'hex'), // srcOffset
10
+ ...Buffer.from('000018ca', 'hex'), // dstOffset
11
+ ]);
12
+
13
+ export function markBytecodeAsAvm(bytecode: Buffer): Buffer {
14
+ return Buffer.concat([bytecode, AVM_MAGIC_SUFFIX]);
15
+ }
16
+
17
+ // This is just a helper function for the AVM simulator
18
+ export async function decompressBytecodeIfCompressed(bytecode: Buffer): Promise<Buffer> {
19
+ try {
20
+ return await promisify(gunzip)(bytecode);
21
+ } catch {
22
+ // If the bytecode is not compressed, the gunzip call will throw an error
23
+ // In this case, we assume the bytecode is not compressed and continue.
24
+ return Promise.resolve(bytecode);
25
+ }
26
+ }
27
+
28
+ export async function isAvmBytecode(bytecode: Buffer): Promise<boolean> {
29
+ const decompressedBytecode = await decompressBytecodeIfCompressed(bytecode);
30
+ const magicSize = AVM_MAGIC_SUFFIX.length;
31
+ return decompressedBytecode.subarray(-magicSize).equals(AVM_MAGIC_SUFFIX);
32
+ }
package/src/avm/errors.ts CHANGED
@@ -113,7 +113,7 @@ function createRevertReason(message: string, context: AvmContext, nestedError?:
113
113
  message,
114
114
  /*failingFunction=*/ {
115
115
  contractAddress: context.environment.address,
116
- functionSelector: context.environment.temporaryFunctionSelector,
116
+ functionSelector: context.environment.functionSelector,
117
117
  },
118
118
  /*noirCallStack=*/ [...context.machineState.internalCallStack, context.machineState.pc].map(pc => `0.${pc}`),
119
119
  /*options=*/ { cause: nestedError },
@@ -1,4 +1,4 @@
1
- import { GasFees, GasSettings, GlobalVariables, Header } from '@aztec/circuits.js';
1
+ import { GasFees, GlobalVariables, Header } from '@aztec/circuits.js';
2
2
  import { FunctionSelector } from '@aztec/foundation/abi';
3
3
  import { AztecAddress } from '@aztec/foundation/aztec-address';
4
4
  import { EthAddress } from '@aztec/foundation/eth-address';
@@ -72,17 +72,14 @@ export function initExecutionEnvironment(overrides?: Partial<AvmExecutionEnviron
72
72
  overrides?.address ?? AztecAddress.zero(),
73
73
  overrides?.storageAddress ?? AztecAddress.zero(),
74
74
  overrides?.sender ?? AztecAddress.zero(),
75
- overrides?.feePerL2Gas ?? Fr.zero(),
76
- overrides?.feePerDaGas ?? Fr.zero(),
75
+ overrides?.functionSelector ?? FunctionSelector.empty(),
77
76
  overrides?.contractCallDepth ?? Fr.zero(),
77
+ overrides?.transactionFee ?? Fr.zero(),
78
78
  overrides?.header ?? Header.empty(),
79
79
  overrides?.globals ?? GlobalVariables.empty(),
80
80
  overrides?.isStaticCall ?? false,
81
81
  overrides?.isDelegateCall ?? false,
82
82
  overrides?.calldata ?? [],
83
- overrides?.gasSettings ?? GasSettings.empty(),
84
- overrides?.transactionFee ?? Fr.ZERO,
85
- overrides?.temporaryFunctionSelector ?? FunctionSelector.empty(),
86
83
  );
87
84
  }
88
85