@aztec/simulator 0.32.1 → 0.34.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 (160) hide show
  1. package/README.md +5 -3
  2. package/dest/acvm/acvm.js +2 -2
  3. package/dest/acvm/oracle/index.d.ts +0 -1
  4. package/dest/acvm/oracle/index.d.ts.map +1 -1
  5. package/dest/acvm/oracle/index.js +1 -2
  6. package/dest/acvm/oracle/oracle.d.ts +1 -1
  7. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  8. package/dest/acvm/oracle/oracle.js +4 -5
  9. package/dest/avm/avm_context.d.ts +4 -14
  10. package/dest/avm/avm_context.d.ts.map +1 -1
  11. package/dest/avm/avm_context.js +10 -22
  12. package/dest/avm/avm_execution_environment.d.ts +4 -3
  13. package/dest/avm/avm_execution_environment.d.ts.map +1 -1
  14. package/dest/avm/avm_execution_environment.js +8 -7
  15. package/dest/avm/avm_gas.d.ts +71 -0
  16. package/dest/avm/avm_gas.d.ts.map +1 -0
  17. package/dest/avm/avm_gas.js +161 -0
  18. package/dest/avm/avm_machine_state.d.ts +4 -2
  19. package/dest/avm/avm_machine_state.d.ts.map +1 -1
  20. package/dest/avm/avm_machine_state.js +8 -2
  21. package/dest/avm/avm_memory_types.d.ts +53 -1
  22. package/dest/avm/avm_memory_types.d.ts.map +1 -1
  23. package/dest/avm/avm_memory_types.js +99 -6
  24. package/dest/avm/avm_simulator.d.ts.map +1 -1
  25. package/dest/avm/avm_simulator.js +15 -13
  26. package/dest/avm/fixtures/index.d.ts.map +1 -1
  27. package/dest/avm/fixtures/index.js +3 -3
  28. package/dest/avm/journal/journal.d.ts +14 -13
  29. package/dest/avm/journal/journal.d.ts.map +1 -1
  30. package/dest/avm/journal/journal.js +5 -5
  31. package/dest/avm/journal/trace.d.ts +8 -19
  32. package/dest/avm/journal/trace.d.ts.map +1 -1
  33. package/dest/avm/journal/trace.js +48 -116
  34. package/dest/avm/journal/trace_types.d.ts +23 -4
  35. package/dest/avm/journal/trace_types.d.ts.map +1 -1
  36. package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
  37. package/dest/avm/opcodes/accrued_substate.js +45 -17
  38. package/dest/avm/opcodes/addressing_mode.d.ts +5 -3
  39. package/dest/avm/opcodes/addressing_mode.d.ts.map +1 -1
  40. package/dest/avm/opcodes/addressing_mode.js +5 -1
  41. package/dest/avm/opcodes/arithmetic.d.ts +7 -3
  42. package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
  43. package/dest/avm/opcodes/arithmetic.js +27 -16
  44. package/dest/avm/opcodes/bitwise.d.ts +21 -20
  45. package/dest/avm/opcodes/bitwise.d.ts.map +1 -1
  46. package/dest/avm/opcodes/bitwise.js +43 -65
  47. package/dest/avm/opcodes/comparators.d.ts +12 -9
  48. package/dest/avm/opcodes/comparators.d.ts.map +1 -1
  49. package/dest/avm/opcodes/comparators.js +22 -32
  50. package/dest/avm/opcodes/context_getters.d.ts +20 -0
  51. package/dest/avm/opcodes/context_getters.d.ts.map +1 -0
  52. package/dest/avm/opcodes/context_getters.js +26 -0
  53. package/dest/avm/opcodes/contract.d.ts +14 -0
  54. package/dest/avm/opcodes/contract.d.ts.map +1 -0
  55. package/dest/avm/opcodes/contract.js +49 -0
  56. package/dest/avm/opcodes/control_flow.d.ts.map +1 -1
  57. package/dest/avm/opcodes/control_flow.js +12 -2
  58. package/dest/avm/opcodes/environment_getters.d.ts +30 -33
  59. package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
  60. package/dest/avm/opcodes/environment_getters.js +34 -43
  61. package/dest/avm/opcodes/external_calls.d.ts +13 -19
  62. package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
  63. package/dest/avm/opcodes/external_calls.js +69 -72
  64. package/dest/avm/opcodes/hashing.d.ts +2 -1
  65. package/dest/avm/opcodes/hashing.d.ts.map +1 -1
  66. package/dest/avm/opcodes/hashing.js +37 -18
  67. package/dest/avm/opcodes/index.d.ts +1 -0
  68. package/dest/avm/opcodes/index.d.ts.map +1 -1
  69. package/dest/avm/opcodes/index.js +2 -1
  70. package/dest/avm/opcodes/instruction.d.ts +10 -15
  71. package/dest/avm/opcodes/instruction.d.ts.map +1 -1
  72. package/dest/avm/opcodes/instruction.js +12 -22
  73. package/dest/avm/opcodes/instruction_impl.d.ts +14 -0
  74. package/dest/avm/opcodes/instruction_impl.d.ts.map +1 -1
  75. package/dest/avm/opcodes/instruction_impl.js +37 -16
  76. package/dest/avm/opcodes/memory.d.ts +4 -3
  77. package/dest/avm/opcodes/memory.d.ts.map +1 -1
  78. package/dest/avm/opcodes/memory.js +38 -19
  79. package/dest/avm/opcodes/storage.d.ts +5 -0
  80. package/dest/avm/opcodes/storage.d.ts.map +1 -1
  81. package/dest/avm/opcodes/storage.js +21 -7
  82. package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  83. package/dest/avm/serialization/bytecode_serialization.js +7 -5
  84. package/dest/avm/serialization/instruction_serialization.d.ts +12 -11
  85. package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
  86. package/dest/avm/serialization/instruction_serialization.js +13 -12
  87. package/dest/client/client_execution_context.d.ts +2 -2
  88. package/dest/client/client_execution_context.d.ts.map +1 -1
  89. package/dest/client/client_execution_context.js +6 -6
  90. package/dest/client/private_execution.d.ts +1 -1
  91. package/dest/client/private_execution.d.ts.map +1 -1
  92. package/dest/client/private_execution.js +8 -4
  93. package/dest/client/unconstrained_execution.d.ts +1 -1
  94. package/dest/client/unconstrained_execution.d.ts.map +1 -1
  95. package/dest/client/unconstrained_execution.js +2 -2
  96. package/dest/client/view_data_oracle.d.ts +2 -2
  97. package/dest/client/view_data_oracle.d.ts.map +1 -1
  98. package/dest/client/view_data_oracle.js +2 -2
  99. package/dest/public/executor.d.ts +2 -8
  100. package/dest/public/executor.d.ts.map +1 -1
  101. package/dest/public/executor.js +101 -69
  102. package/dest/public/index.d.ts +1 -1
  103. package/dest/public/index.d.ts.map +1 -1
  104. package/dest/public/public_execution_context.d.ts +6 -6
  105. package/dest/public/public_execution_context.d.ts.map +1 -1
  106. package/dest/public/public_execution_context.js +8 -12
  107. package/dest/public/transitional_adaptors.d.ts +32 -0
  108. package/dest/public/transitional_adaptors.d.ts.map +1 -0
  109. package/dest/public/transitional_adaptors.js +161 -0
  110. package/package.json +15 -9
  111. package/src/acvm/acvm.ts +1 -1
  112. package/src/acvm/oracle/index.ts +0 -1
  113. package/src/acvm/oracle/oracle.ts +3 -4
  114. package/src/avm/avm_context.ts +11 -33
  115. package/src/avm/avm_execution_environment.ts +9 -17
  116. package/src/avm/{avm_gas_cost.ts → avm_gas.ts} +75 -21
  117. package/src/avm/avm_machine_state.ts +9 -2
  118. package/src/avm/avm_memory_types.ts +134 -6
  119. package/src/avm/avm_simulator.ts +14 -12
  120. package/src/avm/fixtures/index.ts +2 -1
  121. package/src/avm/journal/journal.ts +24 -17
  122. package/src/avm/journal/trace.ts +59 -121
  123. package/src/avm/journal/trace_types.ts +39 -39
  124. package/src/avm/opcodes/accrued_substate.ts +58 -23
  125. package/src/avm/opcodes/addressing_mode.ts +8 -3
  126. package/src/avm/opcodes/arithmetic.ts +32 -22
  127. package/src/avm/opcodes/bitwise.ts +49 -83
  128. package/src/avm/opcodes/comparators.ts +28 -43
  129. package/src/avm/opcodes/context_getters.ts +32 -0
  130. package/src/avm/opcodes/contract.ts +58 -0
  131. package/src/avm/opcodes/control_flow.ts +23 -5
  132. package/src/avm/opcodes/environment_getters.ts +35 -44
  133. package/src/avm/opcodes/external_calls.ts +90 -89
  134. package/src/avm/opcodes/hashing.ts +45 -22
  135. package/src/avm/opcodes/index.ts +1 -0
  136. package/src/avm/opcodes/instruction.ts +14 -26
  137. package/src/avm/opcodes/instruction_impl.ts +45 -15
  138. package/src/avm/opcodes/memory.ts +48 -28
  139. package/src/avm/opcodes/storage.ts +26 -12
  140. package/src/avm/serialization/bytecode_serialization.ts +6 -3
  141. package/src/avm/serialization/instruction_serialization.ts +1 -0
  142. package/src/client/client_execution_context.ts +5 -5
  143. package/src/client/private_execution.ts +10 -4
  144. package/src/client/unconstrained_execution.ts +1 -1
  145. package/src/client/view_data_oracle.ts +1 -1
  146. package/src/public/executor.ts +123 -75
  147. package/src/public/index.ts +2 -2
  148. package/src/public/public_execution_context.ts +14 -19
  149. package/src/public/transitional_adaptors.ts +240 -0
  150. package/dest/acvm/oracle/debug.d.ts +0 -19
  151. package/dest/acvm/oracle/debug.d.ts.map +0 -1
  152. package/dest/acvm/oracle/debug.js +0 -95
  153. package/dest/avm/avm_gas_cost.d.ts +0 -322
  154. package/dest/avm/avm_gas_cost.d.ts.map +0 -1
  155. package/dest/avm/avm_gas_cost.js +0 -118
  156. package/dest/avm/temporary_executor_migration.d.ts +0 -25
  157. package/dest/avm/temporary_executor_migration.d.ts.map +0 -1
  158. package/dest/avm/temporary_executor_migration.js +0 -83
  159. package/src/acvm/oracle/debug.ts +0 -109
  160. package/src/avm/temporary_executor_migration.ts +0 -122
@@ -1,95 +0,0 @@
1
- /**
2
- * Convert an array of ACVMFields to a string.
3
- *
4
- * @param msg - array of ACVMFields where each represents a single ascii character
5
- * @returns string representation of the message
6
- */
7
- export function acvmFieldMessageToString(msg) {
8
- let msgStr = '';
9
- for (const msgChar of msg) {
10
- const asciiCode = Number(msgChar);
11
- const asciiChar = String.fromCharCode(asciiCode);
12
- msgStr = msgStr.concat(asciiChar);
13
- }
14
- // cut off string in case of preemptive null termination
15
- const nullCharIndex = msgStr.indexOf('\\0');
16
- if (nullCharIndex >= 0) {
17
- msgStr = msgStr.substring(0, nullCharIndex);
18
- }
19
- return msgStr.replaceAll('\\n', '\n').replaceAll('\\t', '\t');
20
- }
21
- /**
22
- * Format a debug string for Aztec.nr filling in `'{0}'` entries with their
23
- * corresponding values from the args array.
24
- *
25
- * @param formatStr - str of form `'this is a string with some entries like {0} and {1}'`
26
- * @param args - array of fields to fill in the string format entries with
27
- * @returns formatted string
28
- */
29
- function applyStringFormatting(formatStr, args) {
30
- const matches = formatStr.match(/{\d+}/g);
31
- if (matches == null) {
32
- return formatStr;
33
- }
34
- // Get the numeric values within the curly braces, convert them to numbers,
35
- // and find the maximum value.
36
- const maxIndex = Math.max(...matches.map(match => Number(match.slice(1, -1))));
37
- const argsPadded = args.concat(Array.from({ length: Math.max(0, maxIndex - args.length) }, () => '0xBAD'));
38
- return formatStr.replace(/{(\d+)}/g, function (match, index) {
39
- return typeof args[index] != 'undefined' ? argsPadded[index] : match;
40
- });
41
- }
42
- /**
43
- * Convert an array of ACVMFields from ACVM to a formatted string.
44
- *
45
- * @param parameters - either one parameter representing a simple field or array, or two parameters when
46
- * It's a message without args or three parameters when it's a message with arguments.
47
- *
48
- * @returns formatted string
49
- */
50
- export function oracleDebugCallToFormattedStr(parameters) {
51
- if (parameters.length === 1) {
52
- return processFieldOrArray(parameters[0]);
53
- }
54
- let formatArgs = [];
55
- if (parameters.length > 2) {
56
- formatArgs = parameters[1];
57
- }
58
- const formattedMsg = applyStringFormatting(acvmFieldMessageToString(parameters[0]), formatArgs);
59
- return formattedMsg;
60
- }
61
- /**
62
- * Processes a field or an array and returns a string representation.
63
- * @param fieldOrArray - The field or array to be processed.
64
- * @returns Returns the processed string representation of the field or array.
65
- */
66
- function processFieldOrArray(fieldOrArray) {
67
- if (fieldOrArray.length === 1) {
68
- return `${fieldOrArray[0]}`;
69
- }
70
- // Check if all the elements start with 63 zero bytes
71
- // --> if yes, we have an array of bytes and we print as hex
72
- if (onlyBytes(fieldOrArray)) {
73
- const decimalArray = fieldOrArray.map(element => parseInt(element, 16));
74
- return '0x' + Buffer.from(decimalArray).toString('hex');
75
- }
76
- return '[' + fieldOrArray.join(', ') + ']';
77
- }
78
- /**
79
- * Checks if all elements in the array are valid byte representations.
80
- * @param array - The array to be checked.
81
- * @returns Returns `true` if all elements are valid byte representations, `false` otherwise.
82
- * @throws Throws an error if any element has an invalid length.
83
- */
84
- function onlyBytes(array) {
85
- for (const element of array) {
86
- if (element.length != 66) {
87
- throw new Error('Invalid element length. Expected 66 chars, got ' + element.length + ' chars.');
88
- }
89
- if (!element.startsWith('0x00000000000000000000000000000000000000000000000000000000000000')) {
90
- return false;
91
- }
92
- }
93
- return true;
94
- }
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWN2bS9vcmFjbGUvZGVidWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUE7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsR0FBZ0I7SUFDdkQsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLEtBQUssTUFBTSxPQUFPLElBQUksR0FBRyxFQUFFLENBQUM7UUFDMUIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELHdEQUF3RDtJQUN4RCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLElBQUksYUFBYSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxxQkFBcUIsQ0FBQyxTQUFpQixFQUFFLElBQWlCO0lBQ2pFLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELDJFQUEyRTtJQUMzRSw4QkFBOEI7SUFDOUIsTUFBTSxRQUFRLEdB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
@@ -1,322 +0,0 @@
1
- import { TypeTag } from './avm_memory_types.js';
2
- /** Gas cost in L1, L2, and DA for a given instruction. */
3
- export type GasCost = {
4
- l1Gas: number;
5
- l2Gas: number;
6
- daGas: number;
7
- };
8
- /** Creates a new instance with all values set to zero except the ones set. */
9
- export declare function makeGasCost(gasCost: Partial<GasCost>): {
10
- l1Gas: number;
11
- l2Gas: number;
12
- daGas: number;
13
- };
14
- /** Gas cost of zero across all gas dimensions. */
15
- export declare const EmptyGasCost: {
16
- l1Gas: number;
17
- l2Gas: number;
18
- daGas: number;
19
- };
20
- /** Dimensions of gas usage: L1, L2, and DA. */
21
- export declare const GasDimensions: readonly ["l1Gas", "l2Gas", "daGas"];
22
- /** Null object to represent a gas cost that's dynamic instead of fixed for a given instruction. */
23
- export declare const DynamicGasCost: unique symbol;
24
- /** Gas costs for each instruction. */
25
- export declare const GasCosts: {
26
- readonly 0: typeof DynamicGasCost;
27
- readonly 1: typeof DynamicGasCost;
28
- readonly 2: typeof DynamicGasCost;
29
- readonly 3: typeof DynamicGasCost;
30
- readonly 4: {
31
- l1Gas: number;
32
- l2Gas: number;
33
- daGas: number;
34
- };
35
- readonly 5: {
36
- l1Gas: number;
37
- l2Gas: number;
38
- daGas: number;
39
- };
40
- readonly 6: {
41
- l1Gas: number;
42
- l2Gas: number;
43
- daGas: number;
44
- };
45
- readonly 7: {
46
- l1Gas: number;
47
- l2Gas: number;
48
- daGas: number;
49
- };
50
- readonly 8: {
51
- l1Gas: number;
52
- l2Gas: number;
53
- daGas: number;
54
- };
55
- readonly 9: {
56
- l1Gas: number;
57
- l2Gas: number;
58
- daGas: number;
59
- };
60
- readonly 10: {
61
- l1Gas: number;
62
- l2Gas: number;
63
- daGas: number;
64
- };
65
- readonly 11: {
66
- l1Gas: number;
67
- l2Gas: number;
68
- daGas: number;
69
- };
70
- readonly 12: {
71
- l1Gas: number;
72
- l2Gas: number;
73
- daGas: number;
74
- };
75
- readonly 13: {
76
- l1Gas: number;
77
- l2Gas: number;
78
- daGas: number;
79
- };
80
- readonly 14: {
81
- l1Gas: number;
82
- l2Gas: number;
83
- daGas: number;
84
- };
85
- readonly 15: {
86
- l1Gas: number;
87
- l2Gas: number;
88
- daGas: number;
89
- };
90
- readonly 16: {
91
- l1Gas: number;
92
- l2Gas: number;
93
- daGas: number;
94
- };
95
- readonly 17: {
96
- l1Gas: number;
97
- l2Gas: number;
98
- daGas: number;
99
- };
100
- readonly 18: {
101
- l1Gas: number;
102
- l2Gas: number;
103
- daGas: number;
104
- };
105
- readonly 19: {
106
- l1Gas: number;
107
- l2Gas: number;
108
- daGas: number;
109
- };
110
- readonly 20: {
111
- l1Gas: number;
112
- l2Gas: number;
113
- daGas: number;
114
- };
115
- readonly 21: {
116
- l1Gas: number;
117
- l2Gas: number;
118
- daGas: number;
119
- };
120
- readonly 22: {
121
- l1Gas: number;
122
- l2Gas: number;
123
- daGas: number;
124
- };
125
- readonly 23: {
126
- l1Gas: number;
127
- l2Gas: number;
128
- daGas: number;
129
- };
130
- readonly 24: {
131
- l1Gas: number;
132
- l2Gas: number;
133
- daGas: number;
134
- };
135
- readonly 25: {
136
- l1Gas: number;
137
- l2Gas: number;
138
- daGas: number;
139
- };
140
- readonly 26: {
141
- l1Gas: number;
142
- l2Gas: number;
143
- daGas: number;
144
- };
145
- readonly 27: {
146
- l1Gas: number;
147
- l2Gas: number;
148
- daGas: number;
149
- };
150
- readonly 28: {
151
- l1Gas: number;
152
- l2Gas: number;
153
- daGas: number;
154
- };
155
- readonly 29: {
156
- l1Gas: number;
157
- l2Gas: number;
158
- daGas: number;
159
- };
160
- readonly 30: {
161
- l1Gas: number;
162
- l2Gas: number;
163
- daGas: number;
164
- };
165
- readonly 31: {
166
- l1Gas: number;
167
- l2Gas: number;
168
- daGas: number;
169
- };
170
- readonly 32: typeof DynamicGasCost;
171
- readonly 33: {
172
- l1Gas: number;
173
- l2Gas: number;
174
- daGas: number;
175
- };
176
- readonly 34: {
177
- l1Gas: number;
178
- l2Gas: number;
179
- daGas: number;
180
- };
181
- readonly 35: {
182
- l1Gas: number;
183
- l2Gas: number;
184
- daGas: number;
185
- };
186
- readonly 36: {
187
- l1Gas: number;
188
- l2Gas: number;
189
- daGas: number;
190
- };
191
- readonly 37: {
192
- l1Gas: number;
193
- l2Gas: number;
194
- daGas: number;
195
- };
196
- readonly 38: {
197
- l1Gas: number;
198
- l2Gas: number;
199
- daGas: number;
200
- };
201
- readonly 39: {
202
- l1Gas: number;
203
- l2Gas: number;
204
- daGas: number;
205
- };
206
- readonly 40: typeof DynamicGasCost;
207
- readonly 41: {
208
- l1Gas: number;
209
- l2Gas: number;
210
- daGas: number;
211
- };
212
- readonly 42: {
213
- l1Gas: number;
214
- l2Gas: number;
215
- daGas: number;
216
- };
217
- readonly 43: {
218
- l1Gas: number;
219
- l2Gas: number;
220
- daGas: number;
221
- };
222
- readonly 44: {
223
- l1Gas: number;
224
- l2Gas: number;
225
- daGas: number;
226
- };
227
- readonly 45: {
228
- l1Gas: number;
229
- l2Gas: number;
230
- daGas: number;
231
- };
232
- readonly 46: {
233
- l1Gas: number;
234
- l2Gas: number;
235
- daGas: number;
236
- };
237
- readonly 47: {
238
- l1Gas: number;
239
- l2Gas: number;
240
- daGas: number;
241
- };
242
- readonly 48: {
243
- l1Gas: number;
244
- l2Gas: number;
245
- daGas: number;
246
- };
247
- readonly 49: {
248
- l1Gas: number;
249
- l2Gas: number;
250
- daGas: number;
251
- };
252
- readonly 50: {
253
- l1Gas: number;
254
- l2Gas: number;
255
- daGas: number;
256
- };
257
- readonly 51: {
258
- l1Gas: number;
259
- l2Gas: number;
260
- daGas: number;
261
- };
262
- readonly 52: {
263
- l1Gas: number;
264
- l2Gas: number;
265
- daGas: number;
266
- };
267
- readonly 53: {
268
- l1Gas: number;
269
- l2Gas: number;
270
- daGas: number;
271
- };
272
- readonly 54: {
273
- l1Gas: number;
274
- l2Gas: number;
275
- daGas: number;
276
- };
277
- readonly 55: {
278
- l1Gas: number;
279
- l2Gas: number;
280
- daGas: number;
281
- };
282
- readonly 56: {
283
- l1Gas: number;
284
- l2Gas: number;
285
- daGas: number;
286
- };
287
- readonly 57: {
288
- l1Gas: number;
289
- l2Gas: number;
290
- daGas: number;
291
- };
292
- readonly 58: {
293
- l1Gas: number;
294
- l2Gas: number;
295
- daGas: number;
296
- };
297
- readonly 59: {
298
- l1Gas: number;
299
- l2Gas: number;
300
- daGas: number;
301
- };
302
- readonly 60: {
303
- l1Gas: number;
304
- l2Gas: number;
305
- daGas: number;
306
- };
307
- readonly 61: {
308
- l1Gas: number;
309
- l2Gas: number;
310
- daGas: number;
311
- };
312
- };
313
- /** Constants used in base cost calculations. */
314
- export declare const GasCostConstants: {
315
- SET_COST_PER_BYTE: number;
316
- CALLDATACOPY_COST_PER_BYTE: number;
317
- ARITHMETIC_COST_PER_BYTE: number;
318
- ARITHMETIC_COST_PER_INDIRECT_ACCESS: number;
319
- };
320
- /** Returns a multiplier based on the size of the type represented by the tag. Throws on uninitialized or invalid. */
321
- export declare function getGasCostMultiplierFromTypeTag(tag: TypeTag): 2 | 1 | 16 | 4 | 32 | 8;
322
- //# sourceMappingURL=avm_gas_cost.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"avm_gas_cost.d.ts","sourceRoot":"","sources":["../../src/avm/avm_gas_cost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGhD,0DAA0D;AAC1D,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;;;;EAEpD;AAED,kDAAkD;AAClD,eAAO,MAAM,YAAY;;;;CAIxB,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,aAAa,sCAAuC,CAAC;AAElE,mGAAmG;AACnG,eAAO,MAAM,cAAc,eAA2B,CAAC;AAKvD,sCAAsC;AACtC,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsEX,CAAC;AAEX,gDAAgD;AAChD,eAAO,MAAM,gBAAgB;;;;;CAK5B,CAAC;AAEF,qHAAqH;AACrH,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,OAAO,2BAkB3D"}
@@ -1,118 +0,0 @@
1
- import { TypeTag } from './avm_memory_types.js';
2
- import { Opcode } from './serialization/instruction_serialization.js';
3
- /** Creates a new instance with all values set to zero except the ones set. */
4
- export function makeGasCost(gasCost) {
5
- return { ...EmptyGasCost, ...gasCost };
6
- }
7
- /** Gas cost of zero across all gas dimensions. */
8
- export const EmptyGasCost = {
9
- l1Gas: 0,
10
- l2Gas: 0,
11
- daGas: 0,
12
- };
13
- /** Dimensions of gas usage: L1, L2, and DA. */
14
- export const GasDimensions = ['l1Gas', 'l2Gas', 'daGas'];
15
- /** Null object to represent a gas cost that's dynamic instead of fixed for a given instruction. */
16
- export const DynamicGasCost = Symbol('DynamicGasCost');
17
- /** Temporary default gas cost. We should eventually remove all usage of this variable in favor of actual gas for each opcode. */
18
- const TemporaryDefaultGasCost = { l1Gas: 0, l2Gas: 10, daGas: 0 };
19
- /** Gas costs for each instruction. */
20
- export const GasCosts = {
21
- [Opcode.ADD]: DynamicGasCost,
22
- [Opcode.SUB]: DynamicGasCost,
23
- [Opcode.MUL]: DynamicGasCost,
24
- [Opcode.DIV]: DynamicGasCost,
25
- [Opcode.FDIV]: TemporaryDefaultGasCost,
26
- [Opcode.EQ]: TemporaryDefaultGasCost,
27
- [Opcode.LT]: TemporaryDefaultGasCost,
28
- [Opcode.LTE]: TemporaryDefaultGasCost,
29
- [Opcode.AND]: TemporaryDefaultGasCost,
30
- [Opcode.OR]: TemporaryDefaultGasCost,
31
- [Opcode.XOR]: TemporaryDefaultGasCost,
32
- [Opcode.NOT]: TemporaryDefaultGasCost,
33
- [Opcode.SHL]: TemporaryDefaultGasCost,
34
- [Opcode.SHR]: TemporaryDefaultGasCost,
35
- [Opcode.CAST]: TemporaryDefaultGasCost,
36
- // Execution environment
37
- [Opcode.ADDRESS]: TemporaryDefaultGasCost,
38
- [Opcode.STORAGEADDRESS]: TemporaryDefaultGasCost,
39
- [Opcode.ORIGIN]: TemporaryDefaultGasCost,
40
- [Opcode.SENDER]: TemporaryDefaultGasCost,
41
- [Opcode.PORTAL]: TemporaryDefaultGasCost,
42
- [Opcode.FEEPERL1GAS]: TemporaryDefaultGasCost,
43
- [Opcode.FEEPERL2GAS]: TemporaryDefaultGasCost,
44
- [Opcode.FEEPERDAGAS]: TemporaryDefaultGasCost,
45
- [Opcode.CONTRACTCALLDEPTH]: TemporaryDefaultGasCost,
46
- [Opcode.CHAINID]: TemporaryDefaultGasCost,
47
- [Opcode.VERSION]: TemporaryDefaultGasCost,
48
- [Opcode.BLOCKNUMBER]: TemporaryDefaultGasCost,
49
- [Opcode.TIMESTAMP]: TemporaryDefaultGasCost,
50
- [Opcode.COINBASE]: TemporaryDefaultGasCost,
51
- [Opcode.BLOCKL1GASLIMIT]: TemporaryDefaultGasCost,
52
- [Opcode.BLOCKL2GASLIMIT]: TemporaryDefaultGasCost,
53
- [Opcode.BLOCKDAGASLIMIT]: TemporaryDefaultGasCost,
54
- [Opcode.CALLDATACOPY]: DynamicGasCost,
55
- // Gas
56
- [Opcode.L1GASLEFT]: TemporaryDefaultGasCost,
57
- [Opcode.L2GASLEFT]: TemporaryDefaultGasCost,
58
- [Opcode.DAGASLEFT]: TemporaryDefaultGasCost,
59
- // Control flow
60
- [Opcode.JUMP]: TemporaryDefaultGasCost,
61
- [Opcode.JUMPI]: TemporaryDefaultGasCost,
62
- [Opcode.INTERNALCALL]: TemporaryDefaultGasCost,
63
- [Opcode.INTERNALRETURN]: TemporaryDefaultGasCost,
64
- // Memory
65
- [Opcode.SET]: DynamicGasCost,
66
- [Opcode.MOV]: TemporaryDefaultGasCost,
67
- [Opcode.CMOV]: TemporaryDefaultGasCost,
68
- // World state
69
- [Opcode.SLOAD]: TemporaryDefaultGasCost,
70
- [Opcode.SSTORE]: TemporaryDefaultGasCost,
71
- [Opcode.NOTEHASHEXISTS]: TemporaryDefaultGasCost,
72
- [Opcode.EMITNOTEHASH]: TemporaryDefaultGasCost,
73
- [Opcode.NULLIFIEREXISTS]: TemporaryDefaultGasCost,
74
- [Opcode.EMITNULLIFIER]: TemporaryDefaultGasCost,
75
- [Opcode.L1TOL2MSGEXISTS]: TemporaryDefaultGasCost,
76
- [Opcode.HEADERMEMBER]: TemporaryDefaultGasCost,
77
- [Opcode.EMITUNENCRYPTEDLOG]: TemporaryDefaultGasCost,
78
- [Opcode.SENDL2TOL1MSG]: TemporaryDefaultGasCost,
79
- // External calls
80
- [Opcode.CALL]: TemporaryDefaultGasCost,
81
- [Opcode.STATICCALL]: TemporaryDefaultGasCost,
82
- [Opcode.DELEGATECALL]: TemporaryDefaultGasCost,
83
- [Opcode.RETURN]: TemporaryDefaultGasCost,
84
- [Opcode.REVERT]: TemporaryDefaultGasCost,
85
- // Gadgets
86
- [Opcode.KECCAK]: TemporaryDefaultGasCost,
87
- [Opcode.POSEIDON]: TemporaryDefaultGasCost,
88
- [Opcode.SHA256]: TemporaryDefaultGasCost, // temp - may be removed, but alot of contracts rely on i: TemporaryDefaultGasCost,
89
- [Opcode.PEDERSEN]: TemporaryDefaultGasCost, // temp - may be removed, but alot of contracts rely on i: TemporaryDefaultGasCost,t
90
- };
91
- /** Constants used in base cost calculations. */
92
- export const GasCostConstants = {
93
- SET_COST_PER_BYTE: 100,
94
- CALLDATACOPY_COST_PER_BYTE: 10,
95
- ARITHMETIC_COST_PER_BYTE: 10,
96
- ARITHMETIC_COST_PER_INDIRECT_ACCESS: 5,
97
- };
98
- /** Returns a multiplier based on the size of the type represented by the tag. Throws on uninitialized or invalid. */
99
- export function getGasCostMultiplierFromTypeTag(tag) {
100
- switch (tag) {
101
- case TypeTag.UINT8:
102
- return 1;
103
- case TypeTag.UINT16:
104
- return 2;
105
- case TypeTag.UINT32:
106
- return 4;
107
- case TypeTag.UINT64:
108
- return 8;
109
- case TypeTag.UINT128:
110
- return 16;
111
- case TypeTag.FIELD:
112
- return 32;
113
- case TypeTag.INVALID:
114
- case TypeTag.UNINITIALIZED:
115
- throw new Error(`Invalid tag type for gas cost multiplier: ${TypeTag[tag]}`);
116
- }
117
- }
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX2dhc19jb3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F2bS9hdm1fZ2FzX2Nvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQVN0RSw4RUFBOEU7QUFDOUUsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUF5QjtJQUNuRCxPQUFPLEVBQUUsR0FBRyxZQUFZLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztBQUN6QyxDQUFDO0FBRUQsa0RBQWtEO0FBQ2xELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUMxQixLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxDQUFDO0lBQ1IsS0FBSyxFQUFFLENBQUM7Q0FDVCxDQUFDO0FBRUYsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFVLENBQUM7QUFFbEUsbUdBQW1HO0FBQ25HLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUV2RCxpSUFBaUk7QUFDakksTUFBTSx1QkFBdUIsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFFbEUsc0NBQXNDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUN0QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxjQUFjO0lBQzVCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGNBQWM7SUFDNUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsY0FBYztJQUM1QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxjQUFjO0lBQzVC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
@@ -1,25 +0,0 @@
1
- import { type GlobalVariables } from '@aztec/circuits.js';
2
- import { type PublicExecution, type PublicExecutionResult } from '../public/execution.js';
3
- import { AvmExecutionEnvironment } from './avm_execution_environment.js';
4
- import { type AvmContractCallResults } from './avm_message_call_result.js';
5
- import { type JournalData } from './journal/journal.js';
6
- /** Temporary Method
7
- *
8
- * Convert a PublicExecution(Environment) object to an AvmExecutionEnvironment
9
- *
10
- * @param current
11
- * @param globalVariables
12
- * @returns
13
- */
14
- export declare function temporaryCreateAvmExecutionEnvironment(current: PublicExecution, globalVariables: GlobalVariables): AvmExecutionEnvironment;
15
- /** Temporary Method
16
- *
17
- * Convert the result of an AVM contract call to a PublicExecutionResult for the public kernel
18
- *
19
- * @param execution
20
- * @param newWorldState
21
- * @param result
22
- * @returns
23
- */
24
- export declare function temporaryConvertAvmResults(execution: PublicExecution, newWorldState: JournalData, result: AvmContractCallResults): PublicExecutionResult;
25
- //# sourceMappingURL=temporary_executor_migration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"temporary_executor_migration.d.ts","sourceRoot":"","sources":["../../src/avm/temporary_executor_migration.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,eAAe,EAKrB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,eAAe,EACxB,eAAe,EAAE,eAAe,GAC/B,uBAAuB,CAkBzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,eAAe,EAC1B,aAAa,EAAE,WAAW,EAC1B,MAAM,EAAE,sBAAsB,GAC7B,qBAAqB,CA0DvB"}
@@ -1,83 +0,0 @@
1
- // All code in this file needs to die once the public executor is phased out.
2
- import { UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
3
- import { ContractStorageRead, ContractStorageUpdateRequest, L2ToL1Message, SideEffect, } from '@aztec/circuits.js';
4
- import { Fr } from '@aztec/foundation/fields';
5
- import { createSimulationError } from '../common/errors.js';
6
- import { AvmExecutionEnvironment } from './avm_execution_environment.js';
7
- /** Temporary Method
8
- *
9
- * Convert a PublicExecution(Environment) object to an AvmExecutionEnvironment
10
- *
11
- * @param current
12
- * @param globalVariables
13
- * @returns
14
- */
15
- export function temporaryCreateAvmExecutionEnvironment(current, globalVariables) {
16
- // Function selector is included temporarily until noir codegens public contract bytecode in a single blob
17
- return new AvmExecutionEnvironment(current.contractAddress, current.callContext.storageContractAddress, current.callContext.msgSender, // TODO: origin is not available
18
- current.callContext.msgSender, current.callContext.portalContractAddress,
19
- /*feePerL1Gas=*/ Fr.zero(),
20
- /*feePerL2Gas=*/ Fr.zero(),
21
- /*feePerDaGas=*/ Fr.zero(),
22
- /*contractCallDepth=*/ Fr.zero(), globalVariables, current.callContext.isStaticCall, current.callContext.isDelegateCall, current.args, current.functionData.selector);
23
- }
24
- /** Temporary Method
25
- *
26
- * Convert the result of an AVM contract call to a PublicExecutionResult for the public kernel
27
- *
28
- * @param execution
29
- * @param newWorldState
30
- * @param result
31
- * @returns
32
- */
33
- export function temporaryConvertAvmResults(execution, newWorldState, result) {
34
- const newNoteHashes = newWorldState.newNoteHashes.map(noteHash => new SideEffect(noteHash, Fr.zero()));
35
- const contractStorageReads = [];
36
- const reduceStorageReadRequests = (contractAddress, storageReads) => {
37
- return storageReads.forEach((innerArray, key) => {
38
- innerArray.forEach(value => {
39
- contractStorageReads.push(new ContractStorageRead(new Fr(key), new Fr(value), 0));
40
- });
41
- });
42
- };
43
- newWorldState.storageReads.forEach((storageMap, address) => reduceStorageReadRequests(address, storageMap));
44
- const contractStorageUpdateRequests = [];
45
- const reduceStorageUpdateRequests = (contractAddress, storageUpdateRequests) => {
46
- return storageUpdateRequests.forEach((innerArray, key) => {
47
- innerArray.forEach(value => {
48
- contractStorageUpdateRequests.push(new ContractStorageUpdateRequest(new Fr(key), new Fr(value), 0));
49
- });
50
- });
51
- };
52
- newWorldState.storageWrites.forEach((storageMap, address) => reduceStorageUpdateRequests(address, storageMap));
53
- const returnValues = result.output;
54
- // TODO(follow up in pr tree): NOT SUPPORTED YET, make sure hashing and log resolution is done correctly
55
- // Disabled.
56
- const nestedExecutions = [];
57
- const nullifierReadRequests = [];
58
- const nullifierNonExistentReadRequests = [];
59
- const newNullifiers = [];
60
- const unencryptedLogs = UnencryptedFunctionL2Logs.empty();
61
- const newL2ToL1Messages = newWorldState.newL1Messages.map(() => L2ToL1Message.empty());
62
- // TODO keep track of side effect counters
63
- const startSideEffectCounter = Fr.ZERO;
64
- const endSideEffectCounter = Fr.ZERO;
65
- return {
66
- execution,
67
- nullifierReadRequests,
68
- nullifierNonExistentReadRequests,
69
- newNoteHashes,
70
- newL2ToL1Messages,
71
- startSideEffectCounter,
72
- endSideEffectCounter,
73
- newNullifiers,
74
- contractStorageReads,
75
- contractStorageUpdateRequests,
76
- returnValues,
77
- nestedExecutions,
78
- unencryptedLogs,
79
- reverted: result.reverted,
80
- revertReason: result.revertReason ? createSimulationError(result.revertReason) : undefined,
81
- };
82
- }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG9yYXJ5X2V4ZWN1dG9yX21pZ3JhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vdGVtcG9yYXJ5X2V4ZWN1dG9yX21pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2RUFBNkU7QUFDN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUNMLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFFNUIsYUFBYSxFQUViLFVBQVUsR0FFWCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUl6RTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLHNDQUFzQyxDQUNwRCxPQUF3QixFQUN4QixlQUFnQztJQUVoQywwR0FBMEc7SUFDMUcsT0FBTyxJQUFJLHVCQUF1QixDQUNoQyxPQUFPLENBQUMsZUFBZSxFQUN2QixPQUFPLENBQUMsV0FBVyxDQUFDLHNCQUFzQixFQUMxQyxPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxnQ0FBZ0M7SUFDL0QsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQzdCLE9BQU8sQ0FBQyxXQUFXLENBQUMscUJBQXFCO0lBQ3pDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUU7SUFDMUIsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRTtJQUMxQixnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFO0lBQzFCLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFDaEMsZUFBZSxFQUNmLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUNoQyxPQUFPLENBQUMsV0FBVyxDQUFD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