@aztec/simulator 0.57.0 → 0.59.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 (135) hide show
  1. package/dest/acvm/oracle/oracle.js +2 -2
  2. package/dest/acvm/oracle/typed_oracle.d.ts +1 -2
  3. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  4. package/dest/acvm/oracle/typed_oracle.js +1 -1
  5. package/dest/avm/avm_gas.js +2 -2
  6. package/dest/avm/avm_memory_types.d.ts +7 -3
  7. package/dest/avm/avm_memory_types.d.ts.map +1 -1
  8. package/dest/avm/avm_memory_types.js +29 -14
  9. package/dest/avm/avm_simulator.d.ts.map +1 -1
  10. package/dest/avm/avm_simulator.js +5 -2
  11. package/dest/avm/fixtures/index.d.ts.map +1 -1
  12. package/dest/avm/fixtures/index.js +3 -3
  13. package/dest/avm/journal/journal.d.ts.map +1 -1
  14. package/dest/avm/journal/journal.js +2 -3
  15. package/dest/avm/opcodes/accrued_substate.js +17 -17
  16. package/dest/avm/opcodes/arithmetic.js +2 -2
  17. package/dest/avm/opcodes/bitwise.d.ts +3 -3
  18. package/dest/avm/opcodes/bitwise.d.ts.map +1 -1
  19. package/dest/avm/opcodes/bitwise.js +9 -8
  20. package/dest/avm/opcodes/comparators.js +2 -2
  21. package/dest/avm/opcodes/contract.d.ts.map +1 -1
  22. package/dest/avm/opcodes/contract.js +4 -3
  23. package/dest/avm/opcodes/control_flow.js +1 -1
  24. package/dest/avm/opcodes/conversion.js +4 -4
  25. package/dest/avm/opcodes/ec_add.d.ts.map +1 -1
  26. package/dest/avm/opcodes/ec_add.js +18 -9
  27. package/dest/avm/opcodes/external_calls.js +10 -10
  28. package/dest/avm/opcodes/hashing.js +8 -8
  29. package/dest/avm/opcodes/instruction_impl.d.ts +1 -2
  30. package/dest/avm/opcodes/instruction_impl.d.ts.map +1 -1
  31. package/dest/avm/opcodes/instruction_impl.js +2 -5
  32. package/dest/avm/opcodes/memory.js +3 -3
  33. package/dest/avm/opcodes/misc.js +4 -4
  34. package/dest/avm/opcodes/multi_scalar_mul.d.ts.map +1 -1
  35. package/dest/avm/opcodes/multi_scalar_mul.js +24 -9
  36. package/dest/avm/opcodes/storage.js +2 -2
  37. package/dest/avm/serialization/instruction_serialization.js +2 -2
  38. package/dest/avm/test_utils.d.ts +1 -2
  39. package/dest/avm/test_utils.d.ts.map +1 -1
  40. package/dest/avm/test_utils.js +1 -1
  41. package/dest/client/client_execution_context.d.ts.map +1 -1
  42. package/dest/client/client_execution_context.js +7 -3
  43. package/dest/client/db_oracle.d.ts +1 -2
  44. package/dest/client/db_oracle.d.ts.map +1 -1
  45. package/dest/client/db_oracle.js +1 -1
  46. package/dest/client/index.d.ts +1 -0
  47. package/dest/client/index.d.ts.map +1 -1
  48. package/dest/client/index.js +2 -1
  49. package/dest/client/private_execution.d.ts +10 -1
  50. package/dest/client/private_execution.d.ts.map +1 -1
  51. package/dest/client/private_execution.js +25 -5
  52. package/dest/client/view_data_oracle.d.ts +1 -2
  53. package/dest/client/view_data_oracle.d.ts.map +1 -1
  54. package/dest/client/view_data_oracle.js +1 -1
  55. package/dest/public/db_interfaces.d.ts +1 -2
  56. package/dest/public/db_interfaces.d.ts.map +1 -1
  57. package/dest/public/dual_side_effect_trace.d.ts +76 -0
  58. package/dest/public/dual_side_effect_trace.d.ts.map +1 -0
  59. package/dest/public/dual_side_effect_trace.js +109 -0
  60. package/dest/public/enqueued_call_side_effect_trace.d.ts +114 -0
  61. package/dest/public/enqueued_call_side_effect_trace.d.ts.map +1 -0
  62. package/dest/public/enqueued_call_side_effect_trace.js +314 -0
  63. package/dest/public/enqueued_call_simulator.d.ts +2 -2
  64. package/dest/public/enqueued_call_simulator.d.ts.map +1 -1
  65. package/dest/public/enqueued_call_simulator.js +18 -7
  66. package/dest/public/enqueued_calls_processor.d.ts +2 -2
  67. package/dest/public/enqueued_calls_processor.d.ts.map +1 -1
  68. package/dest/public/enqueued_calls_processor.js +3 -5
  69. package/dest/public/execution.d.ts +3 -4
  70. package/dest/public/execution.d.ts.map +1 -1
  71. package/dest/public/execution.js +1 -1
  72. package/dest/public/executor.d.ts +6 -4
  73. package/dest/public/executor.d.ts.map +1 -1
  74. package/dest/public/executor.js +18 -9
  75. package/dest/public/fee_payment.d.ts +1 -1
  76. package/dest/public/fee_payment.d.ts.map +1 -1
  77. package/dest/public/fee_payment.js +4 -7
  78. package/dest/public/hints_builder.d.ts +2 -2
  79. package/dest/public/hints_builder.d.ts.map +1 -1
  80. package/dest/public/hints_builder.js +1 -1
  81. package/dest/public/public_db_sources.d.ts +4 -5
  82. package/dest/public/public_db_sources.d.ts.map +1 -1
  83. package/dest/public/public_db_sources.js +15 -11
  84. package/dest/public/public_kernel_tail_simulator.d.ts +3 -3
  85. package/dest/public/public_kernel_tail_simulator.d.ts.map +1 -1
  86. package/dest/public/public_kernel_tail_simulator.js +1 -1
  87. package/dest/public/public_processor.d.ts +7 -11
  88. package/dest/public/public_processor.d.ts.map +1 -1
  89. package/dest/public/public_processor.js +8 -12
  90. package/dest/public/side_effect_trace.d.ts +1 -2
  91. package/dest/public/side_effect_trace.d.ts.map +1 -1
  92. package/dest/public/side_effect_trace.js +2 -2
  93. package/package.json +9 -9
  94. package/src/acvm/oracle/oracle.ts +1 -1
  95. package/src/acvm/oracle/typed_oracle.ts +6 -2
  96. package/src/avm/avm_gas.ts +1 -1
  97. package/src/avm/avm_memory_types.ts +28 -11
  98. package/src/avm/avm_simulator.ts +7 -1
  99. package/src/avm/fixtures/index.ts +2 -2
  100. package/src/avm/journal/journal.ts +3 -4
  101. package/src/avm/opcodes/accrued_substate.ts +17 -17
  102. package/src/avm/opcodes/arithmetic.ts +1 -1
  103. package/src/avm/opcodes/bitwise.ts +8 -7
  104. package/src/avm/opcodes/comparators.ts +1 -1
  105. package/src/avm/opcodes/contract.ts +3 -2
  106. package/src/avm/opcodes/control_flow.ts +1 -1
  107. package/src/avm/opcodes/conversion.ts +4 -4
  108. package/src/avm/opcodes/ec_add.ts +15 -8
  109. package/src/avm/opcodes/external_calls.ts +10 -10
  110. package/src/avm/opcodes/hashing.ts +8 -8
  111. package/src/avm/opcodes/instruction_impl.ts +0 -3
  112. package/src/avm/opcodes/memory.ts +3 -3
  113. package/src/avm/opcodes/misc.ts +4 -4
  114. package/src/avm/opcodes/multi_scalar_mul.ts +20 -12
  115. package/src/avm/opcodes/storage.ts +2 -2
  116. package/src/avm/serialization/instruction_serialization.ts +1 -1
  117. package/src/avm/test_utils.ts +1 -2
  118. package/src/client/client_execution_context.ts +6 -1
  119. package/src/client/db_oracle.ts +6 -2
  120. package/src/client/index.ts +1 -0
  121. package/src/client/private_execution.ts +36 -6
  122. package/src/client/view_data_oracle.ts +1 -2
  123. package/src/public/db_interfaces.ts +5 -2
  124. package/src/public/dual_side_effect_trace.ts +173 -0
  125. package/src/public/enqueued_call_side_effect_trace.ts +552 -0
  126. package/src/public/enqueued_call_simulator.ts +33 -11
  127. package/src/public/enqueued_calls_processor.ts +4 -6
  128. package/src/public/execution.ts +2 -4
  129. package/src/public/executor.ts +38 -9
  130. package/src/public/fee_payment.ts +4 -6
  131. package/src/public/hints_builder.ts +2 -2
  132. package/src/public/public_db_sources.ts +31 -22
  133. package/src/public/public_kernel_tail_simulator.ts +3 -3
  134. package/src/public/public_processor.ts +16 -16
  135. package/src/public/side_effect_trace.ts +2 -2
@@ -1,10 +1,10 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { NestedProcessReturnValues, Tx, makeProcessedTx, validateProcessedTx, } from '@aztec/circuit-types';
3
- import { AztecAddress, ContractClassRegisteredEvent, FEE_JUICE_ADDRESS, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PROTOCOL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PublicDataUpdateRequest, } from '@aztec/circuits.js';
3
+ import { ContractClassRegisteredEvent, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PROTOCOL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PublicDataUpdateRequest, } from '@aztec/circuits.js';
4
4
  import { times } from '@aztec/foundation/collection';
5
5
  import { createDebugLogger } from '@aztec/foundation/log';
6
6
  import { Timer } from '@aztec/foundation/timer';
7
- import { ClassRegistererAddress } from '@aztec/protocol-contracts/class-registerer';
7
+ import { ProtocolContractAddress } from '@aztec/protocol-contracts';
8
8
  import { Attributes, trackSpan } from '@aztec/telemetry-client';
9
9
  import { EnqueuedCallsProcessor } from './enqueued_calls_processor.js';
10
10
  import { PublicExecutor } from './executor.js';
@@ -16,8 +16,7 @@ import { PublicProcessorMetrics } from './public_processor_metrics.js';
16
16
  * Creates new instances of PublicProcessor given the provided merkle tree db and contract data source.
17
17
  */
18
18
  export class PublicProcessorFactory {
19
- constructor(merkleTree, contractDataSource, simulator, telemetryClient) {
20
- this.merkleTree = merkleTree;
19
+ constructor(contractDataSource, simulator, telemetryClient) {
21
20
  this.contractDataSource = contractDataSource;
22
21
  this.simulator = simulator;
23
22
  this.telemetryClient = telemetryClient;
@@ -28,17 +27,14 @@ export class PublicProcessorFactory {
28
27
  * @param globalVariables - The global variables for the block being processed.
29
28
  * @returns A new instance of a PublicProcessor.
30
29
  */
31
- create(maybeHistoricalHeader, globalVariables) {
32
- const { merkleTree, telemetryClient } = this;
30
+ create(merkleTree, maybeHistoricalHeader, globalVariables) {
31
+ const { telemetryClient } = this;
33
32
  const historicalHeader = maybeHistoricalHeader ?? merkleTree.getInitialHeader();
34
33
  const worldStateDB = new WorldStateDB(merkleTree, this.contractDataSource);
35
34
  const publicExecutor = new PublicExecutor(worldStateDB, telemetryClient);
36
35
  const publicKernelSimulator = new RealPublicKernelCircuitSimulator(this.simulator);
37
36
  return PublicProcessor.create(merkleTree, publicExecutor, publicKernelSimulator, globalVariables, historicalHeader, worldStateDB, this.telemetryClient);
38
37
  }
39
- getInitialHeader() {
40
- return this.merkleTree.getInitialHeader();
41
- }
42
38
  }
43
39
  /**
44
40
  * Converts Txs lifted from the P2P module into ProcessedTx objects by executing
@@ -144,7 +140,7 @@ let PublicProcessor = (() => {
144
140
  if (feePayer.isZero()) {
145
141
  return finalPublicDataUpdateRequests;
146
142
  }
147
- const feeJuiceAddress = AztecAddress.fromBigInt(FEE_JUICE_ADDRESS);
143
+ const feeJuiceAddress = ProtocolContractAddress.FeeJuice;
148
144
  const balanceSlot = computeFeePayerBalanceStorageSlot(feePayer);
149
145
  const leafSlot = computeFeePayerBalanceLeafSlot(feePayer);
150
146
  const txFee = tx.data.getTransactionFee(this.globalVariables.gasFees);
@@ -176,7 +172,7 @@ let PublicProcessor = (() => {
176
172
  this.metrics.recordPhaseDuration(phase.phase, phase.durationMs);
177
173
  }
178
174
  });
179
- this.metrics.recordClassRegistration(...ContractClassRegisteredEvent.fromLogs(tx.unencryptedLogs.unrollLogs(), ClassRegistererAddress));
175
+ this.metrics.recordClassRegistration(...ContractClassRegisteredEvent.fromLogs(tx.unencryptedLogs.unrollLogs(), ProtocolContractAddress.ContractClassRegisterer));
180
176
  const phaseCount = processedPhases.length;
181
177
  this.metrics.recordTx(phaseCount, timer.ms());
182
178
  const processedTx = makeProcessedTx(tx, tailKernelOutput, provingRequests, revertReason, gasUsed);
@@ -194,4 +190,4 @@ let PublicProcessor = (() => {
194
190
  _a;
195
191
  })();
196
192
  export { PublicProcessor };
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3Byb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLHlCQUF5QixFQUd6QixFQUFFLEVBRUYsZUFBZSxFQUNmLG1CQUFtQixHQUNwQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxZQUFZLEVBQ1osNEJBQTRCLEVBQzVCLGlCQUFpQixFQUdqQixzQ0FBc0MsRUFDdEMsMkNBQTJDLEVBQzNDLHVCQUF1QixHQUN4QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBcUMsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFLbkcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFdkU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQ1UsVUFBZ0MsRUFDaEMsa0JBQXNDLEVBQ3RDLFNBQTZC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
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3Byb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdMLHlCQUF5QixFQUd6QixFQUFFLEVBRUYsZUFBZSxFQUNmLG1CQUFtQixHQUNwQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCw0QkFBNEIsRUFJNUIsc0NBQXNDLEVBQ3RDLDJDQUEyQyxFQUMzQyx1QkFBdUIsR0FDeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQXFDLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR25HLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLDhCQUE4QixFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXZFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUNVLGtCQUFzQyxFQUN0QyxTQUE2QixFQUM3QixlQUFnQztRQUZoQyx1QkFBa0IsR0FBbEIsa0JB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
@@ -1,7 +1,6 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- import { Gas } from '@aztec/circuits.js';
2
+ import { type ContractInstanceWithAddress, Gas } from '@aztec/circuits.js';
3
3
  import { Fr } from '@aztec/foundation/fields';
4
- import { type ContractInstanceWithAddress } from '@aztec/types/contracts';
5
4
  import { type AvmContractCallResult } from '../avm/avm_contract_call_result.js';
6
5
  import { type AvmExecutionEnvironment } from '../avm/avm_execution_environment.js';
7
6
  import { type PublicExecutionResult } from './execution.js';
@@ -1 +1 @@
1
- {"version":3,"file":"side_effect_trace.d.ts","sourceRoot":"","sources":["../../src/public/side_effect_trace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"side_effect_trace.d.ts","sourceRoot":"","sources":["../../src/public/side_effect_trace.ts"],"names":[],"mappings":";AACA,OAAO,EAOL,KAAK,2BAA2B,EAIhC,GAAG,EAkBJ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAEnF,OAAO,EAAE,KAAK,qBAAqB,EAA6B,MAAM,gBAAgB,CAAC;AAEvF,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAEvF,MAAM,MAAM,sBAAsB,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,2BAA2B,CAAC;AAEvF,qBAAa,qBAAsB,YAAW,8BAA8B;IA8BxE,qDAAqD;aACrC,sBAAsB,EAAE,MAAM;IA9BzC,MAAM,yCAAuD;IAEpE,uEAAuE;IACvE,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,6BAA6B,CAAsC;IAE3E,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAO,CAAC,qBAAqB,CAAqB;IAClD,OAAO,CAAC,gCAAgC,CAAqB;IAC7D,OAAO,CAAC,UAAU,CAAmB;IAErC,OAAO,CAAC,qBAAqB,CAA6B;IAC1D,OAAO,CAAC,iBAAiB,CAAuB;IAEhD,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,qBAAqB,CAAiB;IAE9C,OAAO,CAAC,kBAAkB,CAAgC;IAE1D,OAAO,CAAC,gBAAgB,CAA+B;IAEvD,OAAO,CAAC,eAAe,CAAoB;;IAGzC,qDAAqD;IACrC,sBAAsB,GAAE,MAAU;IAM7C,IAAI;IAIJ,UAAU;IAIjB,OAAO,CAAC,0BAA0B;IAM3B,sBAAsB,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAelG,uBAAuB,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IAY/D,kBAAkB,CAAC,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO;IAYpF,gBAAgB,CAAC,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE;IASlD,mBAAmB,CAAC,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAmB5G,iBAAiB,CAAC,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;IAWpD,uBAAuB,CAAC,gBAAgB,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO;IAY5F,qBAAqB,CAAC,gBAAgB,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;IAUtE,mBAAmB,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;IAkBlD,wBAAwB,CAAC,QAAQ,EAAE,sBAAsB;IAmBhE;;;OAGG;IACI,eAAe;IACpB,oCAAoC;IACpC,eAAe,EAAE,qBAAqB;IACtC,oDAAoD;IACpD,iBAAiB,EAAE,uBAAuB;IAC1C,4DAA4D;IAC5D,YAAY,EAAE,GAAG;IACjB,yDAAyD;IACzD,UAAU,EAAE,GAAG;IACf,wCAAwC;IACxC,QAAQ,EAAE,MAAM;IAChB,yBAAyB;IACzB,cAAc,EAAE,qBAAqB;IACrC,gCAAgC;IAChC,YAAY,GAAE,MAAkB;IAuClC;;OAEG;IACI,uBAAuB;IAC5B,oDAAoD;IACpD,cAAc,EAAE,uBAAuB;IACvC,4DAA4D;IAC5D,YAAY,EAAE,GAAG;IACjB,yDAAyD;IACzD,UAAU,EAAE,GAAG;IACf,wCAAwC;IACxC,QAAQ,EAAE,MAAM;IAChB,yBAAyB;IACzB,cAAc,EAAE,qBAAqB;IACrC,gCAAgC;IAChC,YAAY,GAAE,MAAkB,GAC/B,qBAAqB;IAuCxB,OAAO,CAAC,6BAA6B;CAoBtC"}
@@ -134,7 +134,7 @@ export class PublicSideEffectTrace {
134
134
  traceGetContractInstance(instance) {
135
135
  this.enforceLimitOnNullifierChecks('(contract address nullifier from GETCONTRACTINSTANCE)');
136
136
  // TODO(dbanks12): should emit a nullifier read request
137
- 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));
137
+ 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));
138
138
  this.logger.debug(`CONTRACT_INSTANCE cnt: ${this.sideEffectCounter}`);
139
139
  this.incrementSideEffectCounter();
140
140
  }
@@ -249,4 +249,4 @@ function createPublicExecutionRequest(avmEnvironment) {
249
249
  });
250
250
  return new PublicExecutionRequest(avmEnvironment.address, callContext, avmEnvironment.calldata);
251
251
  }
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZV9lZmZlY3RfdHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3NpZGVfZWZmZWN0X3RyYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNHLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsWUFBWSxFQUNaLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLFVBQVUsRUFDVixHQUFHLEVBQ0gsYUFBYSxFQUNiLE9BQU8sRUFDUCxxQ0FBcUMsRUFDckMsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixrQ0FBa0MsRUFDbEMscUJBQXFCLEVBQ3JCLCtDQUErQyxFQUMvQyxrQ0FBa0MsRUFDbEMsNEJBQTRCLEVBQzVCLHNDQUFzQyxFQUN0QywyQkFBMkIsRUFDM0IsUUFBUSxFQUNSLFNBQVMsRUFFVCxXQUFXLEVBQ1gsbUJBQW1CLEdBQ3BCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBOEIseUJBQXlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUt0RSxNQUFNLE9BQU8scUJBQXFCO0lBNkJoQztJQUNFLHFEQUFxRDtJQUNyQyx5QkFBaUMsQ0FBQztRQUFsQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVk7UUE5QjdDLFdBQU0sR0FBRyxpQkFBaUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxD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
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZV9lZmZlY3RfdHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3NpZGVfZWZmZWN0X3RyYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNHLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsWUFBWSxFQUNaLFdBQVcsRUFFWCxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLFVBQVUsRUFDVixHQUFHLEVBQ0gsYUFBYSxFQUNiLE9BQU8sRUFDUCxxQ0FBcUMsRUFDckMsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixrQ0FBa0MsRUFDbEMscUJBQXFCLEVBQ3JCLCtDQUErQyxFQUMvQyxrQ0FBa0MsRUFDbEMsNEJBQTRCLEVBQzVCLHNDQUFzQyxFQUN0QywyQkFBMkIsRUFDM0IsUUFBUSxFQUNSLFNBQVMsRUFFVCxXQUFXLEVBQ1gsbUJBQW1CLEdBQ3BCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSTFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBOEIseUJBQXlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUt0RSxNQUFNLE9BQU8scUJBQXFCO0lBNkJoQztJQUNFLHFEQUFxRDtJQUNyQyx5QkFBaUMsQ0FBQztRQUFsQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVk7UUE5QjdDLFdBQU0sR0FBRyxpQkFBaUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxD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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/simulator",
3
- "version": "0.57.0",
3
+ "version": "0.59.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -59,14 +59,14 @@
59
59
  ]
60
60
  },
61
61
  "dependencies": {
62
- "@aztec/circuit-types": "0.57.0",
63
- "@aztec/circuits.js": "0.57.0",
64
- "@aztec/foundation": "0.57.0",
65
- "@aztec/noir-protocol-circuits-types": "0.57.0",
66
- "@aztec/protocol-contracts": "0.57.0",
67
- "@aztec/telemetry-client": "0.57.0",
68
- "@aztec/types": "0.57.0",
69
- "@aztec/world-state": "0.57.0",
62
+ "@aztec/circuit-types": "0.59.0",
63
+ "@aztec/circuits.js": "0.59.0",
64
+ "@aztec/foundation": "0.59.0",
65
+ "@aztec/noir-protocol-circuits-types": "0.59.0",
66
+ "@aztec/protocol-contracts": "0.59.0",
67
+ "@aztec/telemetry-client": "0.59.0",
68
+ "@aztec/types": "0.59.0",
69
+ "@aztec/world-state": "0.59.0",
70
70
  "@noir-lang/acvm_js": "portal:../../noir/packages/acvm_js",
71
71
  "@noir-lang/types": "portal:../../noir/packages/types",
72
72
  "levelup": "^5.1.1",
@@ -70,7 +70,7 @@ export class Oracle {
70
70
  instance.deployer,
71
71
  instance.contractClassId,
72
72
  instance.initializationHash,
73
- instance.publicKeysHash,
73
+ ...instance.publicKeys.toFields(),
74
74
  ].map(toACVMField);
75
75
  }
76
76
 
@@ -8,11 +8,15 @@ import {
8
8
  type SiblingPath,
9
9
  type UnencryptedL2Log,
10
10
  } from '@aztec/circuit-types';
11
- import { type Header, type KeyValidationRequest, type L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/circuits.js';
11
+ import {
12
+ type ContractInstance,
13
+ type Header,
14
+ type KeyValidationRequest,
15
+ type L1_TO_L2_MSG_TREE_HEIGHT,
16
+ } from '@aztec/circuits.js';
12
17
  import { type FunctionSelector, type NoteSelector } from '@aztec/foundation/abi';
13
18
  import { type AztecAddress } from '@aztec/foundation/aztec-address';
14
19
  import { Fr } from '@aztec/foundation/fields';
15
- import { type ContractInstance } from '@aztec/types/contracts';
16
20
 
17
21
  /**
18
22
  * Information about a note needed during execution.
@@ -180,6 +180,7 @@ export function getGasCostForTypeTag(tag: TypeTag, baseCost: Gas) {
180
180
  function getGasCostMultiplierFromTypeTag(tag: TypeTag) {
181
181
  switch (tag) {
182
182
  case TypeTag.UINT1: // same as u8
183
+ return 1;
183
184
  case TypeTag.UINT8:
184
185
  return 1;
185
186
  case TypeTag.UINT16:
@@ -193,7 +194,6 @@ function getGasCostMultiplierFromTypeTag(tag: TypeTag) {
193
194
  case TypeTag.FIELD:
194
195
  return 32;
195
196
  case TypeTag.INVALID:
196
- case TypeTag.UNINITIALIZED:
197
197
  throw new InstructionExecutionError(`Invalid tag type for gas cost multiplier: ${TypeTag[tag]}`);
198
198
  }
199
199
  }
@@ -208,21 +208,19 @@ export class Field extends MemoryValue {
208
208
  }
209
209
 
210
210
  export enum TypeTag {
211
- UNINITIALIZED,
211
+ FIELD = MEM_TAG_FF,
212
212
  UINT1 = MEM_TAG_U1,
213
213
  UINT8 = MEM_TAG_U8,
214
214
  UINT16 = MEM_TAG_U16,
215
215
  UINT32 = MEM_TAG_U32,
216
216
  UINT64 = MEM_TAG_U64,
217
217
  UINT128 = MEM_TAG_U128,
218
- FIELD = MEM_TAG_FF,
219
218
  INVALID,
220
219
  }
221
220
 
222
221
  // Lazy interface definition for tagged memory
223
222
  export type TaggedMemoryInterface = FunctionsOf<TaggedMemory>;
224
223
 
225
- // TODO: Consider automatic conversion when getting undefined values.
226
224
  export class TaggedMemory implements TaggedMemoryInterface {
227
225
  static readonly log: DebugLogger = createDebugLogger('aztec:avm_simulator:memory');
228
226
 
@@ -255,6 +253,7 @@ export class TaggedMemory implements TaggedMemoryInterface {
255
253
  TaggedMemory.log.debug(`get(${offset}) = ${word}`);
256
254
  if (word === undefined) {
257
255
  TaggedMemory.log.debug(`WARNING: Memory at offset ${offset} is undefined!`);
256
+ return new Field(0) as T;
258
257
  }
259
258
  return word as T;
260
259
  }
@@ -264,7 +263,11 @@ export class TaggedMemory implements TaggedMemoryInterface {
264
263
  assert(offset + size < TaggedMemory.MAX_MEMORY_SIZE);
265
264
  const value = this._mem.slice(offset, offset + size);
266
265
  TaggedMemory.log.debug(`getSlice(${offset}, ${size}) = ${value}`);
267
- assert(!value.some(e => e === undefined), 'Memory slice contains undefined values.');
266
+ for (let i = 0; i < value.length; i++) {
267
+ if (value[i] === undefined) {
268
+ value[i] = new Field(0);
269
+ }
270
+ }
268
271
  assert(value.length === size, `Expected slice of size ${size}, got ${value.length}.`);
269
272
  return value;
270
273
  }
@@ -332,6 +335,16 @@ export class TaggedMemory implements TaggedMemoryInterface {
332
335
  }
333
336
  }
334
337
 
338
+ /**
339
+ * Check that all tags at the given offsets are the same.
340
+ */
341
+ public checkTagsAreSame(...offsets: number[]) {
342
+ const tag = this.getTag(offsets[0]);
343
+ for (let i = 1; i < offsets.length; i++) {
344
+ this.checkTag(tag, offsets[i]);
345
+ }
346
+ }
347
+
335
348
  /**
336
349
  * Check tags for all memory in the specified range.
337
350
  */
@@ -347,7 +360,9 @@ export class TaggedMemory implements TaggedMemoryInterface {
347
360
  let tag = TypeTag.INVALID;
348
361
 
349
362
  if (v === undefined) {
350
- tag = TypeTag.UNINITIALIZED;
363
+ tag = TypeTag.FIELD; // uninitialized memory is Field(0)
364
+ } else if (v instanceof Field) {
365
+ tag = TypeTag.FIELD;
351
366
  } else if (v instanceof Uint1) {
352
367
  tag = TypeTag.UINT1;
353
368
  } else if (v instanceof Uint8) {
@@ -360,8 +375,6 @@ export class TaggedMemory implements TaggedMemoryInterface {
360
375
  tag = TypeTag.UINT64;
361
376
  } else if (v instanceof Uint128) {
362
377
  tag = TypeTag.UINT128;
363
- } else if (v instanceof Field) {
364
- tag = TypeTag.FIELD;
365
378
  }
366
379
 
367
380
  return tag;
@@ -371,6 +384,8 @@ export class TaggedMemory implements TaggedMemoryInterface {
371
384
  public static buildFromTagTruncating(v: bigint | number, tag: TypeTag): MemoryValue {
372
385
  v = BigInt(v);
373
386
  switch (tag) {
387
+ case TypeTag.FIELD:
388
+ return new Field(v);
374
389
  case TypeTag.UINT1:
375
390
  return new Uint1(v & 1n);
376
391
  case TypeTag.UINT8:
@@ -383,8 +398,6 @@ export class TaggedMemory implements TaggedMemoryInterface {
383
398
  return new Uint64(v & ((1n << 64n) - 1n));
384
399
  case TypeTag.UINT128:
385
400
  return new Uint128(v & ((1n << 128n) - 1n));
386
- case TypeTag.FIELD:
387
- return new Field(v);
388
401
  default:
389
402
  throw new Error(`${TypeTag[tag]} is not a valid tag.`);
390
403
  }
@@ -393,6 +406,8 @@ export class TaggedMemory implements TaggedMemoryInterface {
393
406
  // Does not truncate. Type constructor will check that it fits.
394
407
  public static buildFromTagOrDie(v: bigint | number, tag: TypeTag): MemoryValue {
395
408
  switch (tag) {
409
+ case TypeTag.FIELD:
410
+ return new Field(v);
396
411
  case TypeTag.UINT1:
397
412
  return new Uint1(v);
398
413
  case TypeTag.UINT8:
@@ -405,8 +420,6 @@ export class TaggedMemory implements TaggedMemoryInterface {
405
420
  return new Uint64(v);
406
421
  case TypeTag.UINT128:
407
422
  return new Uint128(v);
408
- case TypeTag.FIELD:
409
- return new Field(v);
410
423
  default:
411
424
  throw new Error(`${TypeTag[tag]} is not a valid integral type.`);
412
425
  }
@@ -511,6 +524,10 @@ export class MeteredTaggedMemory implements TaggedMemoryInterface {
511
524
  this.wrapped.checkTags(tag, ...offsets);
512
525
  }
513
526
 
527
+ public checkTagsAreSame(...offsets: number[]): void {
528
+ this.wrapped.checkTagsAreSame(...offsets);
529
+ }
530
+
514
531
  public checkTagsRange(tag: TypeTag, startOffset: number, size: number): void {
515
532
  this.wrapped.checkTagsRange(tag, startOffset, size);
516
533
  }
@@ -1,7 +1,9 @@
1
+ import { MAX_L2_GAS_PER_ENQUEUED_CALL } from '@aztec/circuits.js';
1
2
  import { type DebugLogger, createDebugLogger } from '@aztec/foundation/log';
2
3
 
3
4
  import { strict as assert } from 'assert';
4
5
 
6
+ import { SideEffectLimitReachedError } from '../public/side_effect_errors.js';
5
7
  import type { AvmContext } from './avm_context.js';
6
8
  import { AvmContractCallResult } from './avm_contract_call_result.js';
7
9
  import { isAvmBytecode } from './bytecode_utils.js';
@@ -20,6 +22,10 @@ export class AvmSimulator {
20
22
  private bytecode: Buffer | undefined;
21
23
 
22
24
  constructor(private context: AvmContext) {
25
+ assert(
26
+ context.machineState.gasLeft.l2Gas <= MAX_L2_GAS_PER_ENQUEUED_CALL,
27
+ `Cannot allocate more than ${MAX_L2_GAS_PER_ENQUEUED_CALL} to the AVM for execution of an enqueued call`,
28
+ );
23
29
  this.log = createDebugLogger(`aztec:avm_simulator:core(f:${context.environment.functionSelector.toString()})`);
24
30
  }
25
31
 
@@ -98,7 +104,7 @@ export class AvmSimulator {
98
104
  return results;
99
105
  } catch (err: any) {
100
106
  this.log.verbose('Exceptional halt (revert by something other than REVERT opcode)');
101
- if (!(err instanceof AvmExecutionError)) {
107
+ if (!(err instanceof AvmExecutionError || err instanceof SideEffectLimitReachedError)) {
102
108
  this.log.verbose(`Unknown error thrown by AVM: ${err}`);
103
109
  throw err;
104
110
  }
@@ -1,5 +1,5 @@
1
1
  import { isNoirCallStackUnresolved } from '@aztec/circuit-types';
2
- import { GasFees, GlobalVariables } from '@aztec/circuits.js';
2
+ import { GasFees, GlobalVariables, MAX_L2_GAS_PER_ENQUEUED_CALL } from '@aztec/circuits.js';
3
3
  import { FunctionSelector, getFunctionDebugMetadata } from '@aztec/foundation/abi';
4
4
  import { AztecAddress } from '@aztec/foundation/aztec-address';
5
5
  import { EthAddress } from '@aztec/foundation/eth-address';
@@ -91,7 +91,7 @@ export function initGlobalVariables(overrides?: Partial<GlobalVariables>): Globa
91
91
  */
92
92
  export function initMachineState(overrides?: Partial<AvmMachineState>): AvmMachineState {
93
93
  return AvmMachineState.fromState({
94
- l2GasLeft: overrides?.l2GasLeft ?? 1e8,
94
+ l2GasLeft: overrides?.l2GasLeft ?? MAX_L2_GAS_PER_ENQUEUED_CALL,
95
95
  daGasLeft: overrides?.daGasLeft ?? 1e8,
96
96
  });
97
97
  }
@@ -1,7 +1,6 @@
1
- import { AztecAddress, type FunctionSelector, type Gas } from '@aztec/circuits.js';
1
+ import { AztecAddress, type FunctionSelector, type Gas, SerializableContractInstance } from '@aztec/circuits.js';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
- import { type DebugLogger, createDebugLogger } from '@aztec/foundation/log';
4
- import { SerializableContractInstance } from '@aztec/types/contracts';
3
+ import { createDebugLogger } from '@aztec/foundation/log';
5
4
 
6
5
  import { getPublicFunctionDebugName } from '../../common/debug_fn_name.js';
7
6
  import { type WorldStateDB } from '../../public/public_db_sources.js';
@@ -22,7 +21,7 @@ import { PublicStorage } from './public_storage.js';
22
21
  * Manages merging of successful/reverted child state into current state.
23
22
  */
24
23
  export class AvmPersistableStateManager {
25
- private readonly log: DebugLogger = createDebugLogger('aztec:avm_simulator:state_manager');
24
+ private readonly log = createDebugLogger('aztec:avm_simulator:state_manager');
26
25
 
27
26
  constructor(
28
27
  /** Reference to node storage */
@@ -1,5 +1,5 @@
1
1
  import type { AvmContext } from '../avm_context.js';
2
- import { TypeTag, Uint8 } from '../avm_memory_types.js';
2
+ import { TypeTag, Uint1 } from '../avm_memory_types.js';
3
3
  import { InstructionExecutionError, StaticCallAlterationError } from '../errors.js';
4
4
  import { NullifierCollisionError } from '../journal/nullifiers.js';
5
5
  import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
@@ -13,9 +13,9 @@ export class NoteHashExists extends Instruction {
13
13
  static readonly wireFormat = [
14
14
  OperandType.UINT8,
15
15
  OperandType.UINT8,
16
- OperandType.UINT32,
17
- OperandType.UINT32,
18
- OperandType.UINT32,
16
+ OperandType.UINT16,
17
+ OperandType.UINT16,
18
+ OperandType.UINT16,
19
19
  ];
20
20
 
21
21
  constructor(
@@ -44,7 +44,7 @@ export class NoteHashExists extends Instruction {
44
44
  noteHash,
45
45
  leafIndex,
46
46
  );
47
- memory.set(existsOffset, exists ? new Uint8(1) : new Uint8(0));
47
+ memory.set(existsOffset, exists ? new Uint1(1) : new Uint1(0));
48
48
 
49
49
  memory.assert({ reads: 2, writes: 1, addressing });
50
50
  context.machineState.incrementPc();
@@ -55,7 +55,7 @@ export class EmitNoteHash extends Instruction {
55
55
  static type: string = 'EMITNOTEHASH';
56
56
  static readonly opcode: Opcode = Opcode.EMITNOTEHASH;
57
57
  // Informs (de)serialization. See Instruction.deserialize.
58
- static readonly wireFormat = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT32];
58
+ static readonly wireFormat = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT16];
59
59
 
60
60
  constructor(private indirect: number, private noteHashOffset: number) {
61
61
  super();
@@ -89,9 +89,9 @@ export class NullifierExists extends Instruction {
89
89
  static readonly wireFormat = [
90
90
  OperandType.UINT8,
91
91
  OperandType.UINT8,
92
- OperandType.UINT32,
93
- OperandType.UINT32,
94
- OperandType.UINT32,
92
+ OperandType.UINT16,
93
+ OperandType.UINT16,
94
+ OperandType.UINT16,
95
95
  ];
96
96
 
97
97
  constructor(
@@ -116,7 +116,7 @@ export class NullifierExists extends Instruction {
116
116
  const address = memory.get(addressOffset).toFr();
117
117
  const exists = await context.persistableState.checkNullifierExists(address, nullifier);
118
118
 
119
- memory.set(existsOffset, exists ? new Uint8(1) : new Uint8(0));
119
+ memory.set(existsOffset, exists ? new Uint1(1) : new Uint1(0));
120
120
 
121
121
  memory.assert({ reads: 2, writes: 1, addressing });
122
122
  context.machineState.incrementPc();
@@ -127,7 +127,7 @@ export class EmitNullifier extends Instruction {
127
127
  static type: string = 'EMITNULLIFIER';
128
128
  static readonly opcode: Opcode = Opcode.EMITNULLIFIER;
129
129
  // Informs (de)serialization. See Instruction.deserialize.
130
- static readonly wireFormat = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT32];
130
+ static readonly wireFormat = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT16];
131
131
 
132
132
  constructor(private indirect: number, private nullifierOffset: number) {
133
133
  super();
@@ -172,9 +172,9 @@ export class L1ToL2MessageExists extends Instruction {
172
172
  static readonly wireFormat = [
173
173
  OperandType.UINT8,
174
174
  OperandType.UINT8,
175
- OperandType.UINT32,
176
- OperandType.UINT32,
177
- OperandType.UINT32,
175
+ OperandType.UINT16,
176
+ OperandType.UINT16,
177
+ OperandType.UINT16,
178
178
  ];
179
179
 
180
180
  constructor(
@@ -202,7 +202,7 @@ export class L1ToL2MessageExists extends Instruction {
202
202
  msgHash,
203
203
  msgLeafIndex,
204
204
  );
205
- memory.set(existsOffset, exists ? new Uint8(1) : new Uint8(0));
205
+ memory.set(existsOffset, exists ? new Uint1(1) : new Uint1(0));
206
206
 
207
207
  memory.assert({ reads: 2, writes: 1, addressing });
208
208
  context.machineState.incrementPc();
@@ -213,7 +213,7 @@ export class EmitUnencryptedLog extends Instruction {
213
213
  static type: string = 'EMITUNENCRYPTEDLOG';
214
214
  static readonly opcode: Opcode = Opcode.EMITUNENCRYPTEDLOG;
215
215
  // Informs (de)serialization. See Instruction.deserialize.
216
- static readonly wireFormat = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT32, OperandType.UINT32];
216
+ static readonly wireFormat = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT16, OperandType.UINT16];
217
217
 
218
218
  constructor(private indirect: number, private logOffset: number, private logSizeOffset: number) {
219
219
  super();
@@ -248,7 +248,7 @@ export class SendL2ToL1Message extends Instruction {
248
248
  static type: string = 'SENDL2TOL1MSG';
249
249
  static readonly opcode: Opcode = Opcode.SENDL2TOL1MSG;
250
250
  // Informs (de)serialization. See Instruction.deserialize.
251
- static readonly wireFormat = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT32, OperandType.UINT32];
251
+ static readonly wireFormat = [OperandType.UINT8, OperandType.UINT8, OperandType.UINT16, OperandType.UINT16];
252
252
 
253
253
  constructor(private indirect: number, private recipientOffset: number, private contentOffset: number) {
254
254
  super();
@@ -12,7 +12,7 @@ export abstract class ThreeOperandArithmeticInstruction extends ThreeOperandInst
12
12
  const operands = [this.aOffset, this.bOffset, this.dstOffset];
13
13
  const addressing = Addressing.fromWire(this.indirect, operands.length);
14
14
  const [aOffset, bOffset, dstOffset] = addressing.resolve(operands, memory);
15
- memory.checkTags(this.inTag, aOffset, bOffset);
15
+ memory.checkTagsAreSame(aOffset, bOffset);
16
16
 
17
17
  const a = memory.get(aOffset);
18
18
  const b = memory.get(bOffset);
@@ -13,7 +13,7 @@ abstract class ThreeOperandBitwiseInstruction extends ThreeOperandInstruction {
13
13
  const operands = [this.aOffset, this.bOffset, this.dstOffset];
14
14
  const addressing = Addressing.fromWire(this.indirect, operands.length);
15
15
  const [aOffset, bOffset, dstOffset] = addressing.resolve(operands, memory);
16
- this.checkTags(memory, this.inTag, aOffset, bOffset);
16
+ this.checkTags(memory, aOffset, bOffset);
17
17
 
18
18
  const a = memory.getAs<IntegralValue>(aOffset);
19
19
  const b = memory.getAs<IntegralValue>(bOffset);
@@ -26,8 +26,9 @@ abstract class ThreeOperandBitwiseInstruction extends ThreeOperandInstruction {
26
26
  }
27
27
 
28
28
  protected abstract compute(a: IntegralValue, b: IntegralValue): IntegralValue;
29
- protected checkTags(memory: TaggedMemoryInterface, inTag: number, aOffset: number, bOffset: number) {
30
- memory.checkTags(inTag, aOffset, bOffset);
29
+ protected checkTags(memory: TaggedMemoryInterface, aOffset: number, bOffset: number) {
30
+ TaggedMemory.checkIsIntegralTag(memory.getTag(aOffset));
31
+ memory.checkTagsAreSame(aOffset, bOffset);
31
32
  }
32
33
  }
33
34
 
@@ -65,8 +66,8 @@ export class Shl extends ThreeOperandBitwiseInstruction {
65
66
  protected override compute(a: IntegralValue, b: IntegralValue): IntegralValue {
66
67
  return a.shl(b);
67
68
  }
68
- protected override checkTags(memory: TaggedMemoryInterface, inTag: number, aOffset: number, bOffset: number) {
69
- memory.checkTag(inTag, aOffset);
69
+ protected override checkTags(memory: TaggedMemoryInterface, aOffset: number, bOffset: number) {
70
+ TaggedMemory.checkIsIntegralTag(memory.getTag(aOffset));
70
71
  memory.checkTag(TypeTag.UINT8, bOffset);
71
72
  }
72
73
  }
@@ -78,8 +79,8 @@ export class Shr extends ThreeOperandBitwiseInstruction {
78
79
  protected override compute(a: IntegralValue, b: IntegralValue): IntegralValue {
79
80
  return a.shr(b);
80
81
  }
81
- protected override checkTags(memory: TaggedMemoryInterface, inTag: number, aOffset: number, bOffset: number) {
82
- memory.checkTag(inTag, aOffset);
82
+ protected override checkTags(memory: TaggedMemoryInterface, aOffset: number, bOffset: number) {
83
+ TaggedMemory.checkIsIntegralTag(memory.getTag(aOffset));
83
84
  memory.checkTag(TypeTag.UINT8, bOffset);
84
85
  }
85
86
  }