@aztec/simulator 0.80.0 → 0.82.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 (144) hide show
  1. package/dest/common/db_interfaces.d.ts +30 -17
  2. package/dest/common/db_interfaces.d.ts.map +1 -1
  3. package/dest/common/db_interfaces.js +1 -1
  4. package/dest/common/debug_fn_name.d.ts +2 -2
  5. package/dest/common/debug_fn_name.d.ts.map +1 -1
  6. package/dest/common/message_load_oracle_inputs.d.ts +4 -0
  7. package/dest/common/message_load_oracle_inputs.d.ts.map +1 -1
  8. package/dest/common/message_load_oracle_inputs.js +9 -0
  9. package/dest/private/acvm/acvm.d.ts +6 -1
  10. package/dest/private/acvm/acvm.d.ts.map +1 -1
  11. package/dest/private/acvm/acvm.js +7 -13
  12. package/dest/private/acvm/deserialize.d.ts +19 -18
  13. package/dest/private/acvm/deserialize.d.ts.map +1 -1
  14. package/dest/private/acvm/deserialize.js +31 -23
  15. package/dest/private/acvm/oracle/oracle.d.ts +36 -34
  16. package/dest/private/acvm/oracle/oracle.d.ts.map +1 -1
  17. package/dest/private/acvm/oracle/oracle.js +134 -79
  18. package/dest/private/acvm/oracle/typed_oracle.d.ts +3 -2
  19. package/dest/private/acvm/oracle/typed_oracle.d.ts.map +1 -1
  20. package/dest/private/acvm/oracle/typed_oracle.js +5 -2
  21. package/dest/private/acvm/serialize.d.ts +11 -0
  22. package/dest/private/acvm/serialize.d.ts.map +1 -1
  23. package/dest/private/acvm/serialize.js +27 -0
  24. package/dest/private/execution_data_provider.d.ts +15 -13
  25. package/dest/private/execution_data_provider.d.ts.map +1 -1
  26. package/dest/private/private_execution.d.ts +2 -2
  27. package/dest/private/private_execution.d.ts.map +1 -1
  28. package/dest/private/private_execution.js +4 -5
  29. package/dest/private/private_execution_oracle.d.ts.map +1 -1
  30. package/dest/private/private_execution_oracle.js +1 -1
  31. package/dest/private/providers/acvm_native.d.ts +6 -4
  32. package/dest/private/providers/acvm_native.d.ts.map +1 -1
  33. package/dest/private/providers/acvm_native.js +6 -3
  34. package/dest/private/providers/acvm_wasm.d.ts +6 -7
  35. package/dest/private/providers/acvm_wasm.d.ts.map +1 -1
  36. package/dest/private/providers/acvm_wasm.js +13 -15
  37. package/dest/private/providers/acvm_wasm_with_blobs.d.ts +5 -5
  38. package/dest/private/providers/acvm_wasm_with_blobs.d.ts.map +1 -1
  39. package/dest/private/providers/acvm_wasm_with_blobs.js +7 -9
  40. package/dest/private/providers/circuit_recording/circuit_recorder.d.ts +90 -0
  41. package/dest/private/providers/circuit_recording/circuit_recorder.d.ts.map +1 -0
  42. package/dest/private/providers/circuit_recording/circuit_recorder.js +246 -0
  43. package/dest/private/providers/circuit_recording/simulation_provider_recorder_wrapper.d.ts +18 -0
  44. package/dest/private/providers/circuit_recording/simulation_provider_recorder_wrapper.d.ts.map +1 -0
  45. package/dest/private/providers/circuit_recording/simulation_provider_recorder_wrapper.js +39 -0
  46. package/dest/private/providers/simulation_provider.d.ts +21 -7
  47. package/dest/private/providers/simulation_provider.d.ts.map +1 -1
  48. package/dest/private/simulator.d.ts +3 -2
  49. package/dest/private/simulator.d.ts.map +1 -1
  50. package/dest/private/simulator.js +2 -2
  51. package/dest/private/unconstrained_execution.d.ts +2 -2
  52. package/dest/private/unconstrained_execution.d.ts.map +1 -1
  53. package/dest/private/unconstrained_execution.js +1 -2
  54. package/dest/private/unconstrained_execution_oracle.d.ts +5 -3
  55. package/dest/private/unconstrained_execution_oracle.d.ts.map +1 -1
  56. package/dest/private/unconstrained_execution_oracle.js +9 -5
  57. package/dest/public/avm/avm_simulator.d.ts.map +1 -1
  58. package/dest/public/avm/avm_simulator.js +0 -2
  59. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
  60. package/dest/public/avm/fixtures/avm_simulation_tester.js +5 -5
  61. package/dest/public/avm/fixtures/index.d.ts +4 -4
  62. package/dest/public/avm/fixtures/index.d.ts.map +1 -1
  63. package/dest/public/avm/fixtures/index.js +9 -6
  64. package/dest/public/avm/fixtures/simple_contract_data_source.d.ts +1 -2
  65. package/dest/public/avm/fixtures/simple_contract_data_source.d.ts.map +1 -1
  66. package/dest/public/avm/fixtures/simple_contract_data_source.js +0 -3
  67. package/dest/public/avm/journal/journal.d.ts +16 -70
  68. package/dest/public/avm/journal/journal.d.ts.map +1 -1
  69. package/dest/public/avm/journal/journal.js +88 -210
  70. package/dest/public/avm/journal/nullifiers.d.ts +2 -2
  71. package/dest/public/avm/journal/nullifiers.d.ts.map +1 -1
  72. package/dest/public/avm/journal/public_storage.d.ts +2 -2
  73. package/dest/public/avm/journal/public_storage.d.ts.map +1 -1
  74. package/dest/public/avm/test_utils.d.ts +10 -13
  75. package/dest/public/avm/test_utils.d.ts.map +1 -1
  76. package/dest/public/avm/test_utils.js +8 -13
  77. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +3 -3
  78. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  79. package/dest/public/fixtures/public_tx_simulation_tester.js +10 -9
  80. package/dest/public/hinting_db_sources.d.ts +19 -0
  81. package/dest/public/hinting_db_sources.d.ts.map +1 -0
  82. package/dest/public/hinting_db_sources.js +36 -0
  83. package/dest/public/public_db_sources.d.ts +46 -22
  84. package/dest/public/public_db_sources.d.ts.map +1 -1
  85. package/dest/public/public_db_sources.js +82 -27
  86. package/dest/public/public_processor/public_processor.d.ts +5 -5
  87. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  88. package/dest/public/public_processor/public_processor.js +21 -20
  89. package/dest/public/public_tx_simulator/public_tx_context.d.ts +9 -14
  90. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  91. package/dest/public/public_tx_simulator/public_tx_context.js +15 -19
  92. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +9 -6
  93. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  94. package/dest/public/public_tx_simulator/public_tx_simulator.js +28 -14
  95. package/dest/public/side_effect_trace.d.ts +6 -22
  96. package/dest/public/side_effect_trace.d.ts.map +1 -1
  97. package/dest/public/side_effect_trace.js +11 -70
  98. package/dest/public/side_effect_trace_interface.d.ts +5 -19
  99. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  100. package/dest/testing.d.ts +2 -0
  101. package/dest/testing.d.ts.map +1 -0
  102. package/dest/testing.js +1 -0
  103. package/package.json +15 -14
  104. package/src/common/db_interfaces.ts +32 -18
  105. package/src/common/debug_fn_name.ts +2 -2
  106. package/src/common/message_load_oracle_inputs.ts +8 -0
  107. package/src/private/acvm/acvm.ts +8 -24
  108. package/src/private/acvm/deserialize.ts +35 -29
  109. package/src/private/acvm/oracle/oracle.ts +171 -129
  110. package/src/private/acvm/oracle/typed_oracle.ts +7 -3
  111. package/src/private/acvm/serialize.ts +28 -0
  112. package/src/private/execution_data_provider.ts +19 -14
  113. package/src/private/private_execution.ts +11 -7
  114. package/src/private/private_execution_oracle.ts +5 -1
  115. package/src/private/providers/acvm_native.ts +17 -6
  116. package/src/private/providers/acvm_wasm.ts +27 -20
  117. package/src/private/providers/acvm_wasm_with_blobs.ts +15 -12
  118. package/src/private/providers/circuit_recording/circuit_recorder.ts +283 -0
  119. package/src/private/providers/circuit_recording/simulation_provider_recorder_wrapper.ts +82 -0
  120. package/src/private/providers/simulation_provider.ts +30 -5
  121. package/src/private/simulator.ts +5 -3
  122. package/src/private/unconstrained_execution.ts +8 -4
  123. package/src/private/unconstrained_execution_oracle.ts +15 -9
  124. package/src/public/avm/avm_simulator.ts +0 -2
  125. package/src/public/avm/fixtures/avm_simulation_tester.ts +8 -5
  126. package/src/public/avm/fixtures/index.ts +16 -10
  127. package/src/public/avm/fixtures/simple_contract_data_source.ts +1 -10
  128. package/src/public/avm/journal/journal.ts +119 -353
  129. package/src/public/avm/journal/nullifiers.ts +2 -2
  130. package/src/public/avm/journal/public_storage.ts +2 -2
  131. package/src/public/avm/test_utils.ts +20 -29
  132. package/src/public/fixtures/public_tx_simulation_tester.ts +9 -12
  133. package/src/public/hinting_db_sources.ts +71 -0
  134. package/src/public/public_db_sources.ts +134 -32
  135. package/src/public/public_processor/public_processor.ts +22 -21
  136. package/src/public/public_tx_simulator/public_tx_context.ts +30 -38
  137. package/src/public/public_tx_simulator/public_tx_simulator.ts +47 -17
  138. package/src/public/side_effect_trace.ts +8 -172
  139. package/src/public/side_effect_trace_interface.ts +4 -55
  140. package/src/testing.ts +1 -0
  141. package/dest/public/avm/bytecode_utils.d.ts +0 -5
  142. package/dest/public/avm/bytecode_utils.d.ts.map +0 -1
  143. package/dest/public/avm/bytecode_utils.js +0 -17
  144. package/src/public/avm/bytecode_utils.ts +0 -17
@@ -1,76 +1,25 @@
1
1
  import type { Fr } from '@aztec/foundation/fields';
2
- import type { AvmPublicDataReadTreeHint } from '@aztec/stdlib/avm';
3
2
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
- import type { ContractClassWithCommitment, SerializableContractInstance } from '@aztec/stdlib/contract';
5
3
  import type { PublicCallRequest } from '@aztec/stdlib/kernel';
6
4
  import type { PublicLog } from '@aztec/stdlib/logs';
7
- import type { NullifierLeafPreimage, PublicDataTreeLeafPreimage } from '@aztec/stdlib/trees';
8
5
 
9
6
  export interface PublicSideEffectTraceInterface {
10
7
  fork(): PublicSideEffectTraceInterface;
11
8
  merge(nestedTrace: PublicSideEffectTraceInterface, reverted?: boolean): void;
12
9
  getCounter(): number;
13
10
  // all "trace*" functions can throw SideEffectLimitReachedError
14
- tracePublicStorageRead(
15
- contractAddress: AztecAddress,
16
- slot: Fr,
17
- value: Fr,
18
- leafPreimage?: PublicDataTreeLeafPreimage,
19
- leafIndex?: Fr,
20
- path?: Fr[],
21
- ): void;
22
11
  tracePublicStorageWrite(
23
12
  contractAddress: AztecAddress,
24
13
  slot: Fr, // This is the storage slot not the computed leaf slot
25
14
  value: Fr,
26
15
  protocolWrite: boolean,
27
- lowLeafPreimage?: PublicDataTreeLeafPreimage,
28
- lowLeafIndex?: Fr,
29
- lowLeafPath?: Fr[],
30
- newLeafPreimage?: PublicDataTreeLeafPreimage,
31
- insertionPath?: Fr[],
32
16
  ): Promise<void>;
33
- traceNoteHashCheck(contractAddress: AztecAddress, noteHash: Fr, leafIndex: Fr, exists: boolean, path?: Fr[]): void;
34
- traceNewNoteHash(uniqueNoteHash: Fr, leafIndex?: Fr, path?: Fr[]): void;
17
+ traceNewNoteHash(uniqueNoteHash: Fr): void;
35
18
  getNoteHashCount(): number;
36
- traceNullifierCheck(
37
- siloedNullifier: Fr,
38
- exists: boolean,
39
- lowLeafPreimage?: NullifierLeafPreimage,
40
- lowLeafIndex?: Fr,
41
- lowLeafPath?: Fr[],
42
- ): void;
43
- traceNewNullifier(
44
- siloedNullifier: Fr,
45
- lowLeafPreimage?: NullifierLeafPreimage,
46
- lowLeafIndex?: Fr,
47
- lowLeafPath?: Fr[],
48
- insertionPath?: Fr[],
49
- ): void;
50
- traceL1ToL2MessageCheck(
51
- contractAddress: AztecAddress,
52
- msgHash: Fr,
53
- msgLeafIndex: Fr,
54
- exists: boolean,
55
- path?: Fr[],
56
- ): void;
19
+ traceNewNullifier(siloedNullifier: Fr): void;
57
20
  traceNewL2ToL1Message(contractAddress: AztecAddress, recipient: Fr, content: Fr): void;
58
21
  tracePublicLog(contractAddress: AztecAddress, log: Fr[]): void;
59
- traceGetContractInstance(
60
- contractAddress: AztecAddress,
61
- exists: boolean,
62
- instance?: SerializableContractInstance,
63
- updateMembershipHint?: AvmPublicDataReadTreeHint,
64
- updatePreimage?: Fr[],
65
- ): void;
66
- traceGetContractClass(contractClassId: Fr, exists: boolean, contractClass?: ContractClassWithCommitment): void;
67
- traceEnqueuedCall(
68
- /** The call request from private that enqueued this call. */
69
- publicCallRequest: PublicCallRequest,
70
- /** The call's calldata */
71
- calldata: Fr[],
72
- /** Did the call revert? */
73
- reverted: boolean,
74
- ): void;
22
+ traceGetContractClass(contractClassId: Fr, exists: boolean): void;
23
+ traceEnqueuedCall(publicCallRequest: PublicCallRequest): void;
75
24
  getPublicLogs(): PublicLog[];
76
25
  }
package/src/testing.ts ADDED
@@ -0,0 +1 @@
1
+ export { SimulationProviderRecorderWrapper } from './private/providers/circuit_recording/simulation_provider_recorder_wrapper.js';
@@ -1,5 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- export declare function markBytecodeAsAvm(bytecode: Buffer): Buffer;
4
- export declare function isAvmBytecode(bytecode: Buffer): boolean;
5
- //# sourceMappingURL=bytecode_utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bytecode_utils.d.ts","sourceRoot":"","sources":["../../../src/public/avm/bytecode_utils.ts"],"names":[],"mappings":";;AASA,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGvD"}
@@ -1,17 +0,0 @@
1
- import { Opcode } from './serialization/instruction_serialization.js';
2
- const AVM_MAGIC_SUFFIX = Buffer.from([
3
- Opcode.MOV_16,
4
- 0x00,
5
- ...Buffer.from('18ca', 'hex'),
6
- ...Buffer.from('18ca', 'hex')
7
- ]);
8
- export function markBytecodeAsAvm(bytecode) {
9
- return Buffer.concat([
10
- bytecode,
11
- AVM_MAGIC_SUFFIX
12
- ]);
13
- }
14
- export function isAvmBytecode(bytecode) {
15
- const magicSize = AVM_MAGIC_SUFFIX.length;
16
- return bytecode.subarray(-magicSize).equals(AVM_MAGIC_SUFFIX);
17
- }
@@ -1,17 +0,0 @@
1
- import { Opcode } from './serialization/instruction_serialization.js';
2
-
3
- const AVM_MAGIC_SUFFIX = Buffer.from([
4
- Opcode.MOV_16, // opcode
5
- 0x00, // indirect
6
- ...Buffer.from('18ca', 'hex'), // srcOffset
7
- ...Buffer.from('18ca', 'hex'), // dstOffset
8
- ]);
9
-
10
- export function markBytecodeAsAvm(bytecode: Buffer): Buffer {
11
- return Buffer.concat([bytecode, AVM_MAGIC_SUFFIX]);
12
- }
13
-
14
- export function isAvmBytecode(bytecode: Buffer): boolean {
15
- const magicSize = AVM_MAGIC_SUFFIX.length;
16
- return bytecode.subarray(-magicSize).equals(AVM_MAGIC_SUFFIX);
17
- }