@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.
Files changed (52) hide show
  1. package/dest/avm/avm_execution_environment.d.ts.map +1 -1
  2. package/dest/avm/avm_execution_environment.js +3 -3
  3. package/dest/avm/avm_gas_cost.d.ts +307 -3
  4. package/dest/avm/avm_gas_cost.d.ts.map +1 -1
  5. package/dest/avm/avm_gas_cost.js +42 -8
  6. package/dest/avm/fixtures/index.js +4 -4
  7. package/dest/avm/opcodes/addressing_mode.d.ts +1 -1
  8. package/dest/avm/opcodes/addressing_mode.d.ts.map +1 -1
  9. package/dest/avm/opcodes/addressing_mode.js +1 -1
  10. package/dest/avm/opcodes/arithmetic.d.ts +15 -12
  11. package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
  12. package/dest/avm/opcodes/arithmetic.js +25 -36
  13. package/dest/avm/opcodes/hashing.js +2 -2
  14. package/dest/avm/opcodes/instruction.d.ts +1 -1
  15. package/dest/avm/opcodes/instruction.d.ts.map +1 -1
  16. package/dest/avm/opcodes/instruction.js +7 -3
  17. package/dest/avm/opcodes/memory.d.ts +3 -0
  18. package/dest/avm/opcodes/memory.d.ts.map +1 -1
  19. package/dest/avm/opcodes/memory.js +8 -1
  20. package/dest/avm/temporary_executor_migration.js +3 -3
  21. package/dest/client/client_execution_context.d.ts +3 -3
  22. package/dest/client/client_execution_context.d.ts.map +1 -1
  23. package/dest/client/client_execution_context.js +5 -5
  24. package/dest/client/execution_result.d.ts +5 -5
  25. package/dest/client/execution_result.d.ts.map +1 -1
  26. package/dest/public/execution.d.ts +3 -3
  27. package/dest/public/execution.d.ts.map +1 -1
  28. package/dest/public/execution.js +1 -1
  29. package/dest/public/executor.js +3 -3
  30. package/dest/public/public_execution_context.d.ts +2 -2
  31. package/dest/public/public_execution_context.d.ts.map +1 -1
  32. package/dest/public/public_execution_context.js +3 -3
  33. package/dest/test/utils.d.ts.map +1 -1
  34. package/dest/test/utils.js +2 -3
  35. package/dest/utils.js +2 -2
  36. package/package.json +5 -5
  37. package/src/avm/avm_execution_environment.ts +2 -5
  38. package/src/avm/avm_gas_cost.ts +46 -8
  39. package/src/avm/fixtures/index.ts +3 -3
  40. package/src/avm/opcodes/addressing_mode.ts +1 -1
  41. package/src/avm/opcodes/arithmetic.ts +34 -47
  42. package/src/avm/opcodes/hashing.ts +1 -1
  43. package/src/avm/opcodes/instruction.ts +7 -3
  44. package/src/avm/opcodes/memory.ts +9 -0
  45. package/src/avm/temporary_executor_migration.ts +2 -2
  46. package/src/client/client_execution_context.ts +7 -5
  47. package/src/client/execution_result.ts +5 -5
  48. package/src/public/execution.ts +3 -3
  49. package/src/public/executor.ts +2 -2
  50. package/src/public/public_execution_context.ts +2 -2
  51. package/src/test/utils.ts +1 -2
  52. 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;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/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;IAWtD,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
+ {"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 { pedersenHash } from '@aztec/foundation/crypto';
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(), pedersenHash(calldata.map(word => word.toBuffer())));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX2V4ZWN1dGlvbl9lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vYXZtX2V4ZWN1dGlvbl9lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLE1BQU0sb0JBQW9CLENBQUM7QUFFdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSXhELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsWUFBb0IsUUFBWSxFQUFVLFFBQVk7UUFBbEMsYUFBUSxHQUFSLFFBQVEsQ0FBSTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQUk7SUFBRyxDQUFDO0lBRW5ELFFBQVE7UUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7QUFOZSxxQkFBSSxHQUFHLENBQUMsQ0FBQztBQVMzQjs7O0dBR0c7QUFDSCx5RkFBeUY7QUFDekYsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUNrQixPQUFxQixFQUVyQixjQUE0QixFQUU1QixNQUFvQixFQUVwQixNQUFvQixFQUVwQixNQUFrQixFQUVsQixXQUFlLEVBRWYsV0FBZSxFQUVmLFdBQWUsRUFFZixpQkFBcUIsRUFFckIsT0FBd0IsRUFFeEIsWUFBcUIsRUFFckIsY0FBdUIsRUFFdkIsUUFBYztJQUU5Qiw0RkFBNEY7SUFDNUYsNkZBQTZGO0lBQzdGLHFFQUFxRTtJQUNyRCx5QkFBMkM7UUE3QjNDLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFFckIsbUJBQWMsR0FBZCxjQUFjLENBQWM7UUFFNUIsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUVwQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBRXBCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFFbEIsZ0JBQVcsR0FBWCxXQUFXLENBQUk7UUFFZixnQkFBVyxHQUFYLFdBQVcsQ0FBSTtRQUVm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
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX2V4ZWN1dGlvbl9lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vYXZtX2V4ZWN1dGlvbl9lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFLN0QsTUFBTSxPQUFPLGdCQUFnQjtJQUczQixZQUFvQixRQUFZLEVBQVUsUUFBWTtRQUFsQyxhQUFRLEdBQVIsUUFBUSxDQUFJO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBSTtJQUFHLENBQUM7SUFFbkQsUUFBUTtRQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDOztBQU5lLHFCQUFJLEdBQUcsQ0FBQyxDQUFDO0FBUzNCOzs7R0FHRztBQUNILHlGQUF5RjtBQUN6RixNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQ2tCLE9BQXFCLEVBRXJCLGNBQTRCLEVBRTVCLE1BQW9CLEVBRXBCLE1BQW9CLEVBRXBCLE1BQWtCLEVBRWxCLFdBQWUsRUFFZixXQUFlLEVBRWYsV0FBZSxFQUVmLGlCQUFxQixFQUVyQixPQUF3QixFQUV4QixZQUFxQixFQUVyQixjQUF1QixFQUV2QixRQUFjO0lBRTlCLDRGQUE0RjtJQUM1Riw2RkFBNkY7SUFDN0YscUVBQXFFO0lBQ3JELHlCQUEyQztRQTdCM0MsWUFBTyxHQUFQLE9BQU8sQ0FBYztRQUVyQixtQkFBYyxHQUFkLGNBQWMsQ0FBYztRQUU1QixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBRXBCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFFcEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUVsQixnQkFBVyxHQUFYLFdBQVcsQ0FBSTtRQUVmLGdCQUFXLEdBQVgsV0FBVyxDQUFJO1FBRWYsZ0JBQVcsR0FBWCxXQUFXLENBQUk7UUFFZixzQkFBaUIsR0FBakIsaUJBQWlCLENBQUk7UUFFckIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFFeEIsaUJBQVksR0FBWixZQUFZLENBQVM7UUFFckIsbUJBQWMsR0FBZCxjQUFjLENBQVM7UUFFdkIsYUFBUSxHQUFSLFFBQVEsQ0FBTTtRQUtkLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBa0I7UUFFM0QsOERBQThEO1FBQzlELGtFQUFrRTtRQUNsRSxNQUFNLE1BQU0sR0FBRyxJQUFJLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDdkcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVNLDhCQUE4QixDQUNuQyxPQUFxQixFQUNyQixRQUFjLEVBQ2QsNEJBQThDLGdCQUFnQixDQUFDLEtBQUssRUFBRTtRQUV0RSxPQUFPLElBQUksdUJBQXVCLENBQ2hDLE9BQU87UUFDUCxtQkFBbUIsQ0FBQyxPQUFPLEVBQzNCLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxXQUFXLEVBQ2hCLElBQUksQ0FBQyxXQUFXLEVBQ2hCLElBQUksQ0FBQyxXQUFXLEVBQ2hCLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsY0FBYyxFQUNuQixRQUFRLEVBQ1IseUJBQXlCLENBQzFCLENBQUM7SUFDSixDQUFDO0lBRU0sb0NBQW9DLENBQ3pDLE9BQXFCLEVBQ3JCLFFBQWMsRUFDZCw0QkFBOEMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1FBRXRFLE9BQU8sSUFBSSx1QkFBdUIsQ0FDaEMsT0FBTztRQUNQLG1CQUFtQixDQUFDLE9BQU8sRUFDM0IsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLGlCQUFpQixFQUN0QixJQUFJLENBQUMsT0FBTztRQUNaLGlCQUFpQixDQUFDLElBQUksRUFDdEIsSUFBSSxDQUFDLGNBQWMsRUFDbkIsUUFBUSxFQUNSLHlCQUF5QixDQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVNLGVBQWUsQ0FDcEIsT0FBcUIsRUFDckIsUUFBYyxFQUNkLDRCQUE4QyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7UUFFdEUsT0FBTyxJQUFJLHVCQUF1QixDQUNoQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLGlCQUFpQixFQUN0QixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxZQUFZO1FBQ2pCLG1CQUFtQixDQUFDLElBQUksRUFDeEIsUUFBUSxFQUNSLHlCQUF5QixDQUMxQixDQUFDO0lBQ0osQ0FBQztDQUNGIn0=
@@ -1,18 +1,322 @@
1
- import { Opcode } from './serialization/instruction_serialization.js';
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: Record<Opcode, GasCost>;
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,MAAM,EAAE,MAAM,8CAA8C,CAAC;AAEtE,0DAA0D;AAC1D,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,YAAY;;;;CAIxB,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,aAAa,sCAAuC,CAAC;AAKlE,sCAAsC;AACtC,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAsE5C,CAAC"}
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,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]: TemporaryDefaultGasCost,
15
- [Opcode.SUB]: TemporaryDefaultGasCost,
16
- [Opcode.MUL]: TemporaryDefaultGasCost,
17
- [Opcode.DIV]: TemporaryDefaultGasCost,
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]: TemporaryDefaultGasCost,
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]: TemporaryDefaultGasCost,
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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX2dhc19jb3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F2bS9hdm1fZ2FzX2Nvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBU3RFLGtEQUFrRDtBQUNsRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7SUFDMUIsS0FBSyxFQUFFLENBQUM7SUFDUixLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxDQUFDO0NBQ1QsQ0FBQztBQUVGLDhDQUE4QztBQUM5QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBVSxDQUFDO0FBRWxFLGlJQUFpSTtBQUNqSSxNQUFNLHVCQUF1QixHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUVsRSxzQ0FBc0M7QUFDdEMsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUE0QjtJQUMvQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSx1QkFBdUI7SUFDckMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsdUJBQXVCO0lBQ3JDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLHVCQUF1QjtJQUNyQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSx1QkFBdUI7SUFDckMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsdUJBQXVCO0lBQ3RDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLHVCQUF1QjtJQUNwQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSx1QkFBdUI7SUFDcEMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsdUJBQXVCO0lBQ3JDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLHVCQUF1QjtJ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
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 ?? 1e6,
47
- l2GasLeft: overrides?.l2GasLeft ?? 1e6,
48
- daGasLeft: overrides?.daGasLeft ?? 1e6,
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL2ZpeHR1cmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUVqQyxPQUFPLEVBQWlCLHVCQUF1QixFQUFvQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5FOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxTQUkzQjtJQUNDLE9BQU8sSUFBSSxVQUFVLENBQ25CLFNBQVMsRUFBRSxnQkFBZ0IsSUFBSSwrQkFBK0IsRUFBRSxFQUNoRSxTQUFTLEVBQUUsR0FBRyxJQUFJLHdCQUF3QixFQUFFLEVBQzVDLFNBQVMsRUFBRSxZ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
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
- private readonly modePerOperand;
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;IACnH,OAAO,CAAC,QAAQ,CAAC,cAAc;;IAD/B,mHAAmH;IAClG,cAAc,EAAE,cAAc,EAAE;WAKrC,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"}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc2luZ19tb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F2bS9vcGNvZGVzL2FkZHJlc3NpbmdfbW9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUkxQyxNQUFNLENBQU4sSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3hCLHVEQUFNLENBQUE7SUFDTiwyREFBUSxDQUFBO0lBQ1IsdUZBQXNCLENBQUE7QUFDeEIsQ0FBQyxFQUpXLGNBQWMsS0FBZCxjQUFjLFFBSXpCO0FBRUQsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxVQUFVO0lBQ3JCO0lBQ0UsbUhBQW1IO0lBQ2xHLGNBQWdDO1FBQWhDLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUVqRCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFpQjtRQUN0Qyx5R0FBeUc7UUFDekcscUhBQXFIO1FBQ3JILE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFpQixDQUFDLENBQUMsQ0FBQztRQUMzQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDM0IsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO1FBQzVGLENBQUM7UUFDRCxPQUFPLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxNQUFNO1FBQ1gseUdBQXlHO1FBQ3pHLHNIQUFzSDtRQUN0SCxJQUFJLElBQUksR0FBVyxDQUFDLENBQUM7UUFDckIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3ZELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxPQUFPLENBQUMsT0FBaUIsRUFBRSxHQUFpQjtRQUNqRCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELE1BQU0sUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDNUMsUUFBUSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLEtBQUssY0FBYyxDQUFDLFFBQVE7b0JBQzFCLDJHQUEyRztvQkFDM0csR0FBRyxDQUFDLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztvQkFDakQsTUFBTTtnQkFDUixLQUFLLGNBQWMsQ0FBQyxNQUFNO29CQUN4QixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO29CQUNyQixNQUFNO2dCQUNSO29CQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hHLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGIn0=
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 Add extends ThreeOperandInstruction {
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
- constructor(indirect: number, inTag: number, aOffset: number, bOffset: number, dstOffset: number);
9
- execute(context: AvmContext): Promise<void>;
15
+ protected compute(a: MemoryValue, b: MemoryValue): MemoryValue;
10
16
  }
11
- export declare class Sub extends ThreeOperandInstruction {
17
+ export declare class Sub extends ThreeOperandArithmeticInstruction {
12
18
  static readonly type: string;
13
19
  static readonly opcode = Opcode.SUB;
14
- constructor(indirect: number, inTag: number, aOffset: number, bOffset: number, dstOffset: number);
15
- execute(context: AvmContext): Promise<void>;
20
+ protected compute(a: MemoryValue, b: MemoryValue): MemoryValue;
16
21
  }
17
- export declare class Mul extends ThreeOperandInstruction {
22
+ export declare class Mul extends ThreeOperandArithmeticInstruction {
18
23
  static type: string;
19
24
  static readonly opcode = Opcode.MUL;
20
- constructor(indirect: number, inTag: number, aOffset: number, bOffset: number, dstOffset: number);
21
- execute(context: AvmContext): Promise<void>;
25
+ protected compute(a: MemoryValue, b: MemoryValue): MemoryValue;
22
26
  }
23
- export declare class Div extends ThreeOperandInstruction {
27
+ export declare class Div extends ThreeOperandArithmeticInstruction {
24
28
  static type: string;
25
29
  static readonly opcode = Opcode.DIV;
26
- constructor(indirect: number, inTag: number, aOffset: number, bOffset: number, dstOffset: number);
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;AAEpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,qBAAa,GAAI,SAAQ,uBAAuB;IAC9C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc;gBAExB,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI1F,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAWlD;AAED,qBAAa,GAAI,SAAQ,uBAAuB;IAC9C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc;gBAExB,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI1F,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CASlD;AAED,qBAAa,GAAI,SAAQ,uBAAuB;IAC9C,MAAM,CAAC,IAAI,EAAE,MAAM,CAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc;gBAExB,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI1F,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CASlD;AAED,qBAAa,GAAI,SAAQ,uBAAuB;IAC9C,MAAM,CAAC,IAAI,EAAE,MAAM,CAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc;gBAExB,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI1F,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CASlD;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"}
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"}