@aztec/simulator 0.31.0 → 0.32.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.
- package/dest/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/avm/avm_execution_environment.js +3 -3
- package/dest/avm/avm_gas_cost.d.ts +307 -3
- package/dest/avm/avm_gas_cost.d.ts.map +1 -1
- package/dest/avm/avm_gas_cost.js +42 -8
- package/dest/avm/fixtures/index.js +4 -4
- package/dest/avm/opcodes/addressing_mode.d.ts +1 -1
- package/dest/avm/opcodes/addressing_mode.d.ts.map +1 -1
- package/dest/avm/opcodes/addressing_mode.js +1 -1
- package/dest/avm/opcodes/arithmetic.d.ts +15 -12
- package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/avm/opcodes/arithmetic.js +25 -36
- package/dest/avm/opcodes/hashing.js +2 -2
- package/dest/avm/opcodes/instruction.d.ts +1 -1
- package/dest/avm/opcodes/instruction.d.ts.map +1 -1
- package/dest/avm/opcodes/instruction.js +7 -3
- package/dest/avm/opcodes/memory.d.ts +3 -0
- package/dest/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.js +8 -1
- package/dest/avm/temporary_executor_migration.js +3 -3
- package/dest/client/client_execution_context.d.ts +3 -3
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +5 -5
- package/dest/client/execution_result.d.ts +5 -5
- package/dest/client/execution_result.d.ts.map +1 -1
- package/dest/public/execution.d.ts +3 -3
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +1 -1
- package/dest/public/executor.js +3 -3
- package/dest/public/public_execution_context.d.ts +2 -2
- package/dest/public/public_execution_context.d.ts.map +1 -1
- package/dest/public/public_execution_context.js +3 -3
- package/dest/test/utils.d.ts.map +1 -1
- package/dest/test/utils.js +2 -3
- package/dest/utils.js +2 -2
- package/package.json +5 -5
- package/src/avm/avm_execution_environment.ts +2 -5
- package/src/avm/avm_gas_cost.ts +46 -8
- package/src/avm/fixtures/index.ts +3 -3
- package/src/avm/opcodes/addressing_mode.ts +1 -1
- package/src/avm/opcodes/arithmetic.ts +34 -47
- package/src/avm/opcodes/hashing.ts +1 -1
- package/src/avm/opcodes/instruction.ts +7 -3
- package/src/avm/opcodes/memory.ts +9 -0
- package/src/avm/temporary_executor_migration.ts +2 -2
- package/src/client/client_execution_context.ts +7 -5
- package/src/client/execution_result.ts +5 -5
- package/src/public/execution.ts +3 -3
- package/src/public/executor.ts +2 -2
- package/src/public/public_execution_context.ts +2 -2
- package/src/test/utils.ts +1 -2
- package/src/utils.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avm_execution_environment.d.ts","sourceRoot":"","sources":["../../src/avm/avm_execution_environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"avm_execution_environment.d.ts","sourceRoot":"","sources":["../../src/avm/avm_execution_environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,qBAAa,gBAAgB;IAGf,OAAO,CAAC,QAAQ;IAAM,OAAO,CAAC,QAAQ;IAFlD,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK;gBAEL,QAAQ,EAAE,EAAE,EAAU,QAAQ,EAAE,EAAE;IAE/C,QAAQ,IAAI,EAAE,EAAE;CAGxB;AAED;;;GAGG;AAEH,qBAAa,uBAAuB;aAEhB,OAAO,EAAE,YAAY;aAErB,cAAc,EAAE,YAAY;aAE5B,MAAM,EAAE,YAAY;aAEpB,MAAM,EAAE,YAAY;aAEpB,MAAM,EAAE,UAAU;aAElB,WAAW,EAAE,EAAE;aAEf,WAAW,EAAE,EAAE;aAEf,WAAW,EAAE,EAAE;aAEf,iBAAiB,EAAE,EAAE;aAErB,OAAO,EAAE,eAAe;aAExB,YAAY,EAAE,OAAO;aAErB,cAAc,EAAE,OAAO;aAEvB,QAAQ,EAAE,EAAE,EAAE;aAKd,yBAAyB,EAAE,gBAAgB;gBA7B3C,OAAO,EAAE,YAAY,EAErB,cAAc,EAAE,YAAY,EAE5B,MAAM,EAAE,YAAY,EAEpB,MAAM,EAAE,YAAY,EAEpB,MAAM,EAAE,UAAU,EAElB,WAAW,EAAE,EAAE,EAEf,WAAW,EAAE,EAAE,EAEf,WAAW,EAAE,EAAE,EAEf,iBAAiB,EAAE,EAAE,EAErB,OAAO,EAAE,eAAe,EAExB,YAAY,EAAE,OAAO,EAErB,cAAc,EAAE,OAAO,EAEvB,QAAQ,EAAE,EAAE,EAAE,EAKd,yBAAyB,EAAE,gBAAgB;IAQtD,8BAA8B,CACnC,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,EAAE,EAAE,EACd,yBAAyB,GAAE,gBAA2C,GACrE,uBAAuB;IAmBnB,oCAAoC,CACzC,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,EAAE,EAAE,EACd,yBAAyB,GAAE,gBAA2C,GACrE,uBAAuB;IAmBnB,eAAe,CACpB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,EAAE,EAAE,EACd,yBAAyB,GAAE,gBAA2C,GACrE,uBAAuB;CAkB3B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FunctionSelector } from '@aztec/circuits.js';
|
|
2
|
-
import {
|
|
2
|
+
import { computeVarArgsHash } from '@aztec/circuits.js/hash';
|
|
3
3
|
export class AvmContextInputs {
|
|
4
4
|
constructor(selector, argsHash) {
|
|
5
5
|
this.selector = selector;
|
|
@@ -37,7 +37,7 @@ export class AvmExecutionEnvironment {
|
|
|
37
37
|
this.temporaryFunctionSelector = temporaryFunctionSelector;
|
|
38
38
|
// We encode some extra inputs (AvmContextInputs) in calldata.
|
|
39
39
|
// This will have to go once we move away from one proof per call.
|
|
40
|
-
const inputs = new AvmContextInputs(temporaryFunctionSelector.toField(),
|
|
40
|
+
const inputs = new AvmContextInputs(temporaryFunctionSelector.toField(), computeVarArgsHash(calldata));
|
|
41
41
|
this.calldata = [...inputs.toFields(), ...calldata];
|
|
42
42
|
}
|
|
43
43
|
deriveEnvironmentForNestedCall(address, calldata, temporaryFunctionSelector = FunctionSelector.empty()) {
|
|
@@ -54,4 +54,4 @@ export class AvmExecutionEnvironment {
|
|
|
54
54
|
/*isDelegateCall=*/ true, calldata, temporaryFunctionSelector);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX2V4ZWN1dGlvbl9lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vYXZtX2V4ZWN1dGlvbl9lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFLN0QsTUFBTSxPQUFPLGdCQUFnQjtJQUczQixZQUFvQixRQUFZLEVBQVUsUUFBWTtRQUFsQyxhQUFRLEdBQVIsUUFBUSxDQUFJO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBSTtJQUFHLENBQUM7SUFFbkQsUUFBUTtRQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDOztBQU5lLHFCQUFJLEdBQUcsQ0FBQyxDQUFDO0FBUzNCOzs7R0FHRztBQUNILHlGQUF5RjtBQUN6RixNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQ2tCLE9BQXFCLEVBRXJCLGNBQTRCLEVBRTVCLE1BQW9CLEVBRXBCLE1BQW9CLEVBRXBCLE1BQWtCLEVBRWxCLFdBQWUsRUFFZixXQUFlLEVBRWYsV0FBZSxFQUVmLGlCQUFxQixFQUVyQixPQUF3QixFQUV4QixZQUFxQixFQUVyQixjQUF1QixFQUV2QixRQUFjO0lBRTlCLDRGQUE0RjtJQUM1Riw2RkFBNkY7SUFDN0YscUVBQXFFO0lBQ3JELHlCQUEyQztRQTdCM0MsWUFBTyxHQUFQLE9BQU8sQ0FBYztRQUVyQixtQkFBYyxHQUFkLGNBQWMsQ0FBYztRQUU1QixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBRXBCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFFcEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUVsQixnQkFBVyxHQUFYLFdBQVcsQ0FBSTtRQUVmLGdCQUFXLEdBQVgsV0FBVyxDQUFJO1FB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
|
|
@@ -1,18 +1,322 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TypeTag } from './avm_memory_types.js';
|
|
2
2
|
/** Gas cost in L1, L2, and DA for a given instruction. */
|
|
3
3
|
export type GasCost = {
|
|
4
4
|
l1Gas: number;
|
|
5
5
|
l2Gas: number;
|
|
6
6
|
daGas: number;
|
|
7
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
|
+
};
|
|
8
14
|
/** Gas cost of zero across all gas dimensions. */
|
|
9
15
|
export declare const EmptyGasCost: {
|
|
10
16
|
l1Gas: number;
|
|
11
17
|
l2Gas: number;
|
|
12
18
|
daGas: number;
|
|
13
19
|
};
|
|
14
|
-
/** Dimensions of gas usage: L1, L2, and DA */
|
|
20
|
+
/** Dimensions of gas usage: L1, L2, and DA. */
|
|
15
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;
|
|
16
24
|
/** Gas costs for each instruction. */
|
|
17
|
-
export declare const GasCosts:
|
|
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;
|
|
18
322
|
//# sourceMappingURL=avm_gas_cost.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avm_gas_cost.d.ts","sourceRoot":"","sources":["../../src/avm/avm_gas_cost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
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"}
|
package/dest/avm/avm_gas_cost.js
CHANGED
|
@@ -1,20 +1,27 @@
|
|
|
1
|
+
import { TypeTag } from './avm_memory_types.js';
|
|
1
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
|
+
}
|
|
2
7
|
/** Gas cost of zero across all gas dimensions. */
|
|
3
8
|
export const EmptyGasCost = {
|
|
4
9
|
l1Gas: 0,
|
|
5
10
|
l2Gas: 0,
|
|
6
11
|
daGas: 0,
|
|
7
12
|
};
|
|
8
|
-
/** Dimensions of gas usage: L1, L2, and DA */
|
|
13
|
+
/** Dimensions of gas usage: L1, L2, and DA. */
|
|
9
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');
|
|
10
17
|
/** Temporary default gas cost. We should eventually remove all usage of this variable in favor of actual gas for each opcode. */
|
|
11
18
|
const TemporaryDefaultGasCost = { l1Gas: 0, l2Gas: 10, daGas: 0 };
|
|
12
19
|
/** Gas costs for each instruction. */
|
|
13
20
|
export const GasCosts = {
|
|
14
|
-
[Opcode.ADD]:
|
|
15
|
-
[Opcode.SUB]:
|
|
16
|
-
[Opcode.MUL]:
|
|
17
|
-
[Opcode.DIV]:
|
|
21
|
+
[Opcode.ADD]: DynamicGasCost,
|
|
22
|
+
[Opcode.SUB]: DynamicGasCost,
|
|
23
|
+
[Opcode.MUL]: DynamicGasCost,
|
|
24
|
+
[Opcode.DIV]: DynamicGasCost,
|
|
18
25
|
[Opcode.FDIV]: TemporaryDefaultGasCost,
|
|
19
26
|
[Opcode.EQ]: TemporaryDefaultGasCost,
|
|
20
27
|
[Opcode.LT]: TemporaryDefaultGasCost,
|
|
@@ -44,7 +51,7 @@ export const GasCosts = {
|
|
|
44
51
|
[Opcode.BLOCKL1GASLIMIT]: TemporaryDefaultGasCost,
|
|
45
52
|
[Opcode.BLOCKL2GASLIMIT]: TemporaryDefaultGasCost,
|
|
46
53
|
[Opcode.BLOCKDAGASLIMIT]: TemporaryDefaultGasCost,
|
|
47
|
-
[Opcode.CALLDATACOPY]:
|
|
54
|
+
[Opcode.CALLDATACOPY]: DynamicGasCost,
|
|
48
55
|
// Gas
|
|
49
56
|
[Opcode.L1GASLEFT]: TemporaryDefaultGasCost,
|
|
50
57
|
[Opcode.L2GASLEFT]: TemporaryDefaultGasCost,
|
|
@@ -55,7 +62,7 @@ export const GasCosts = {
|
|
|
55
62
|
[Opcode.INTERNALCALL]: TemporaryDefaultGasCost,
|
|
56
63
|
[Opcode.INTERNALRETURN]: TemporaryDefaultGasCost,
|
|
57
64
|
// Memory
|
|
58
|
-
[Opcode.SET]:
|
|
65
|
+
[Opcode.SET]: DynamicGasCost,
|
|
59
66
|
[Opcode.MOV]: TemporaryDefaultGasCost,
|
|
60
67
|
[Opcode.CMOV]: TemporaryDefaultGasCost,
|
|
61
68
|
// World state
|
|
@@ -81,4 +88,31 @@ export const GasCosts = {
|
|
|
81
88
|
[Opcode.SHA256]: TemporaryDefaultGasCost, // temp - may be removed, but alot of contracts rely on i: TemporaryDefaultGasCost,
|
|
82
89
|
[Opcode.PEDERSEN]: TemporaryDefaultGasCost, // temp - may be removed, but alot of contracts rely on i: TemporaryDefaultGasCost,t
|
|
83
90
|
};
|
|
84
|
-
|
|
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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
|
|
@@ -43,9 +43,9 @@ export function initGlobalVariables(overrides) {
|
|
|
43
43
|
*/
|
|
44
44
|
export function initMachineState(overrides) {
|
|
45
45
|
return AvmMachineState.fromState({
|
|
46
|
-
l1GasLeft: overrides?.l1GasLeft ??
|
|
47
|
-
l2GasLeft: overrides?.l2GasLeft ??
|
|
48
|
-
daGasLeft: overrides?.daGasLeft ??
|
|
46
|
+
l1GasLeft: overrides?.l1GasLeft ?? 100e6,
|
|
47
|
+
l2GasLeft: overrides?.l2GasLeft ?? 100e6,
|
|
48
|
+
daGasLeft: overrides?.daGasLeft ?? 100e6,
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
@@ -74,4 +74,4 @@ export function anyAvmContextInputs() {
|
|
|
74
74
|
}
|
|
75
75
|
return tv;
|
|
76
76
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL2ZpeHR1cmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUVqQyxPQUFPLEVBQWlCLHVCQUF1QixFQUFvQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5FOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxTQUkzQjtJQUNDLE9BQU8sSUFBSSxVQUFVLENBQ25CLFNBQVMsRUFBRSxnQkFBZ0IsSUFBSSwrQkFBK0IsRUFBRSxFQUNoRSxTQUFTLEVBQUUsR0FBRyxJQUFJLHdCQUF3QixFQUFFLEVBQzVDLFNBQVMsRUFBRSxZ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
|
|
@@ -7,7 +7,7 @@ export declare enum AddressingMode {
|
|
|
7
7
|
/** A class to represent the addressing mode of an instruction. */
|
|
8
8
|
export declare class Addressing {
|
|
9
9
|
/** The addressing mode for each operand. The length of this array is the number of operands of the instruction. */
|
|
10
|
-
|
|
10
|
+
readonly modePerOperand: AddressingMode[];
|
|
11
11
|
constructor(
|
|
12
12
|
/** The addressing mode for each operand. The length of this array is the number of operands of the instruction. */
|
|
13
13
|
modePerOperand: AddressingMode[]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addressing_mode.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/addressing_mode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,oBAAY,cAAc;IACxB,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,sBAAsB,IAAA;CACvB;AAED,kEAAkE;AAClE,qBAAa,UAAU;IAEnB,mHAAmH;
|
|
1
|
+
{"version":3,"file":"addressing_mode.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/addressing_mode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,oBAAY,cAAc;IACxB,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,sBAAsB,IAAA;CACvB;AAED,kEAAkE;AAClE,qBAAa,UAAU;IAEnB,mHAAmH;aACnG,cAAc,EAAE,cAAc,EAAE;;IADhD,mHAAmH;IACnG,cAAc,EAAE,cAAc,EAAE;WAKpC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU;IAU9C,MAAM,IAAI,MAAM;IAYvB;;;;;OAKG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,EAAE;CAmB/D"}
|
|
@@ -59,4 +59,4 @@ export class Addressing {
|
|
|
59
59
|
return resolved;
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc2luZ19tb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F2bS9vcGNvZGVzL2FkZHJlc3NpbmdfbW9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUkxQyxNQUFNLENBQU4sSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3hCLHVEQUFNLENBQUE7SUFDTiwyREFBUSxDQUFBO0lBQ1IsdUZBQXNCLENBQUE7QUFDeEIsQ0FBQyxFQUpXLGNBQWMsS0FBZCxjQUFjLFFBSXpCO0FBRUQsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxVQUFVO0lBQ3JCO0lBQ0UsbUhBQW1IO0lBQ25HLGNBQWdDO1FBQWhDLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUVoRCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFpQjtRQUN0Qyx5R0FBeUc7UUFDekcscUhBQXFIO1FBQ3JILE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFpQixDQUFDLENBQUMsQ0FBQztRQUMzQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDM0IsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO1FBQzVGLENBQUM7UUFDRCxPQUFPLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxNQUFNO1FBQ1gseUdBQXlHO1FBQ3pHLHNIQUFzSDtRQUN0SCxJQUFJLElBQUksR0FBVyxDQUFDLENBQUM7UUFDckIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3ZELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxPQUFPLENBQUMsT0FBaUIsRUFBRSxHQUFpQjtRQUNqRCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELE1BQU0sUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDNUMsUUFBUSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLEtBQUssY0FBYyxDQUFDLFFBQVE7b0JBQzFCLDJHQUEyRztvQkFDM0csR0FBRyxDQUFDLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztvQkFDakQsTUFBTTtnQkFDUixLQUFLLGNBQWMsQ0FBQyxNQUFNO29CQUN4QixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO29CQUNyQixNQUFNO2dCQUNSO29CQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hHLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGIn0=
|
|
@@ -1,30 +1,33 @@
|
|
|
1
1
|
import type { AvmContext } from '../avm_context.js';
|
|
2
|
+
import { GasCost } from '../avm_gas_cost.js';
|
|
3
|
+
import { MemoryValue } from '../avm_memory_types.js';
|
|
2
4
|
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
3
5
|
import { Instruction } from './instruction.js';
|
|
4
6
|
import { ThreeOperandInstruction } from './instruction_impl.js';
|
|
5
|
-
export declare class
|
|
7
|
+
export declare abstract class ThreeOperandArithmeticInstruction extends ThreeOperandInstruction {
|
|
8
|
+
execute(context: AvmContext): Promise<void>;
|
|
9
|
+
protected gasCost(): GasCost;
|
|
10
|
+
protected abstract compute(a: MemoryValue, b: MemoryValue): MemoryValue;
|
|
11
|
+
}
|
|
12
|
+
export declare class Add extends ThreeOperandArithmeticInstruction {
|
|
6
13
|
static readonly type: string;
|
|
7
14
|
static readonly opcode = Opcode.ADD;
|
|
8
|
-
|
|
9
|
-
execute(context: AvmContext): Promise<void>;
|
|
15
|
+
protected compute(a: MemoryValue, b: MemoryValue): MemoryValue;
|
|
10
16
|
}
|
|
11
|
-
export declare class Sub extends
|
|
17
|
+
export declare class Sub extends ThreeOperandArithmeticInstruction {
|
|
12
18
|
static readonly type: string;
|
|
13
19
|
static readonly opcode = Opcode.SUB;
|
|
14
|
-
|
|
15
|
-
execute(context: AvmContext): Promise<void>;
|
|
20
|
+
protected compute(a: MemoryValue, b: MemoryValue): MemoryValue;
|
|
16
21
|
}
|
|
17
|
-
export declare class Mul extends
|
|
22
|
+
export declare class Mul extends ThreeOperandArithmeticInstruction {
|
|
18
23
|
static type: string;
|
|
19
24
|
static readonly opcode = Opcode.MUL;
|
|
20
|
-
|
|
21
|
-
execute(context: AvmContext): Promise<void>;
|
|
25
|
+
protected compute(a: MemoryValue, b: MemoryValue): MemoryValue;
|
|
22
26
|
}
|
|
23
|
-
export declare class Div extends
|
|
27
|
+
export declare class Div extends ThreeOperandArithmeticInstruction {
|
|
24
28
|
static type: string;
|
|
25
29
|
static readonly opcode = Opcode.DIV;
|
|
26
|
-
|
|
27
|
-
execute(context: AvmContext): Promise<void>;
|
|
30
|
+
protected compute(a: MemoryValue, b: MemoryValue): MemoryValue;
|
|
28
31
|
}
|
|
29
32
|
export declare class FieldDiv extends Instruction {
|
|
30
33
|
private indirect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arithmetic.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/arithmetic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"arithmetic.d.ts","sourceRoot":"","sources":["../../../src/avm/opcodes/arithmetic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAkE,MAAM,oBAAoB,CAAC;AAC7G,OAAO,EAAS,WAAW,EAAW,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,8BAAsB,iCAAkC,SAAQ,uBAAuB;IAC/E,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjD,SAAS,CAAC,OAAO,IAAI,OAAO;IAW5B,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW;CACxE;AAED,qBAAa,GAAI,SAAQ,iCAAiC;IACxD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc;IAEpC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW;CAG/D;AAED,qBAAa,GAAI,SAAQ,iCAAiC;IACxD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc;IAEpC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW;CAG/D;AAED,qBAAa,GAAI,SAAQ,iCAAiC;IACxD,MAAM,CAAC,IAAI,EAAE,MAAM,CAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc;IAEpC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW;CAG/D;AAED,qBAAa,GAAI,SAAQ,iCAAiC;IACxD,MAAM,CAAC,IAAI,EAAE,MAAM,CAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc;IAEpC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW;CAG/D;AAED,qBAAa,QAAS,SAAQ,WAAW;IAa3B,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,OAAO;IAAU,OAAO,CAAC,OAAO;IAAU,OAAO,CAAC,SAAS;IAZzG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAU;IAC7B,MAAM,CAAC,QAAQ,CAAC,MAAM,eAAe;IAGrC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAMvC;gBAEkB,QAAQ,EAAE,MAAM,EAAU,OAAO,EAAE,MAAM,EAAU,OAAO,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM;IAI3G,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAWlD"}
|