@aztec/simulator 0.53.0 → 0.55.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 (60) hide show
  1. package/dest/avm/avm_execution_environment.d.ts +2 -2
  2. package/dest/avm/avm_execution_environment.d.ts.map +1 -1
  3. package/dest/avm/avm_execution_environment.js +5 -6
  4. package/dest/avm/avm_gas.d.ts.map +1 -1
  5. package/dest/avm/avm_gas.js +85 -41
  6. package/dest/avm/avm_memory_types.d.ts +1 -1
  7. package/dest/avm/avm_memory_types.d.ts.map +1 -1
  8. package/dest/avm/avm_memory_types.js +5 -3
  9. package/dest/avm/bytecode_utils.js +5 -5
  10. package/dest/avm/opcodes/arithmetic.d.ts +9 -16
  11. package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
  12. package/dest/avm/opcodes/arithmetic.js +12 -37
  13. package/dest/avm/opcodes/bitwise.d.ts +6 -6
  14. package/dest/avm/opcodes/bitwise.d.ts.map +1 -1
  15. package/dest/avm/opcodes/bitwise.js +7 -7
  16. package/dest/avm/opcodes/comparators.d.ts +3 -3
  17. package/dest/avm/opcodes/comparators.d.ts.map +1 -1
  18. package/dest/avm/opcodes/comparators.js +4 -4
  19. package/dest/avm/opcodes/control_flow.d.ts.map +1 -1
  20. package/dest/avm/opcodes/control_flow.js +6 -6
  21. package/dest/avm/opcodes/external_calls.d.ts +2 -1
  22. package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
  23. package/dest/avm/opcodes/external_calls.js +11 -6
  24. package/dest/avm/opcodes/instruction.d.ts +18 -12
  25. package/dest/avm/opcodes/instruction.d.ts.map +1 -1
  26. package/dest/avm/opcodes/instruction.js +36 -19
  27. package/dest/avm/opcodes/instruction_impl.d.ts +10 -6
  28. package/dest/avm/opcodes/instruction_impl.d.ts.map +1 -1
  29. package/dest/avm/opcodes/instruction_impl.js +29 -13
  30. package/dest/avm/opcodes/memory.d.ts +9 -10
  31. package/dest/avm/opcodes/memory.d.ts.map +1 -1
  32. package/dest/avm/opcodes/memory.js +60 -60
  33. package/dest/avm/serialization/bytecode_serialization.d.ts +7 -8
  34. package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  35. package/dest/avm/serialization/bytecode_serialization.js +86 -64
  36. package/dest/avm/serialization/instruction_serialization.d.ts +87 -64
  37. package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
  38. package/dest/avm/serialization/instruction_serialization.js +105 -67
  39. package/dest/public/hints_builder.d.ts +3 -4
  40. package/dest/public/hints_builder.d.ts.map +1 -1
  41. package/dest/public/hints_builder.js +2 -5
  42. package/dest/public/tail_phase_manager.d.ts.map +1 -1
  43. package/dest/public/tail_phase_manager.js +2 -3
  44. package/package.json +9 -9
  45. package/src/avm/avm_execution_environment.ts +3 -4
  46. package/src/avm/avm_gas.ts +84 -40
  47. package/src/avm/avm_memory_types.ts +4 -2
  48. package/src/avm/bytecode_utils.ts +4 -4
  49. package/src/avm/opcodes/arithmetic.ts +12 -41
  50. package/src/avm/opcodes/bitwise.ts +6 -6
  51. package/src/avm/opcodes/comparators.ts +3 -3
  52. package/src/avm/opcodes/control_flow.ts +5 -5
  53. package/src/avm/opcodes/external_calls.ts +11 -5
  54. package/src/avm/opcodes/instruction.ts +41 -19
  55. package/src/avm/opcodes/instruction_impl.ts +28 -12
  56. package/src/avm/opcodes/memory.ts +61 -67
  57. package/src/avm/serialization/bytecode_serialization.ts +96 -73
  58. package/src/avm/serialization/instruction_serialization.ts +64 -24
  59. package/src/public/hints_builder.ts +0 -11
  60. package/src/public/tail_phase_manager.ts +0 -7
@@ -2,87 +2,109 @@ import { PedersenCommitment } from '../opcodes/commitment.js';
2
2
  import { DAGasLeft, L2GasLeft } from '../opcodes/context_getters.js';
3
3
  import { EcAdd } from '../opcodes/ec_add.js';
4
4
  import { Keccak, KeccakF1600, Pedersen, Poseidon2, Sha256 } from '../opcodes/hashing.js';
5
- import { Add, Address, And, BlockNumber, CMov, Call, CalldataCopy, Cast, ChainId, DebugLog, Div, EmitNoteHash, EmitNullifier, EmitUnencryptedLog, Eq, FeePerDAGas, FeePerL2Gas, FieldDiv, FunctionSelector, GetContractInstance, InternalCall, InternalReturn, Jump, JumpI, L1ToL2MessageExists, Lt, Lte, Mov, Mul, Not, NoteHashExists, NullifierExists, Or, Return, Revert, SLoad, SStore, SendL2ToL1Message, Sender, Set, Shl, Shr, StaticCall, StorageAddress, Sub, Timestamp, ToRadixLE, TransactionFee, Version, Xor, } from '../opcodes/index.js';
5
+ import { Add, Address, And, BlockNumber, CMov, Call, CalldataCopy, Cast, ChainId, DebugLog, Div, EmitNoteHash, EmitNullifier, EmitUnencryptedLog, Eq, FeePerDAGas, FeePerL2Gas, FieldDiv, FunctionSelector, GetContractInstance, Instruction, InternalCall, InternalReturn, Jump, JumpI, L1ToL2MessageExists, Lt, Lte, Mov, Mul, Not, NoteHashExists, NullifierExists, Or, Return, Revert, SLoad, SStore, SendL2ToL1Message, Sender, Set, Shl, Shr, StaticCall, StorageAddress, Sub, Timestamp, ToRadixLE, TransactionFee, Version, Xor, } from '../opcodes/index.js';
6
6
  import { MultiScalarMul } from '../opcodes/multi_scalar_mul.js';
7
7
  import { BufferCursor } from './buffer_cursor.js';
8
8
  import { Opcode } from './instruction_serialization.js';
9
9
  // TODO(4359): This is a function so that Call and StaticCall can be lazily resolved.
10
10
  // This is a temporary solution until we solve the dependency cycle.
11
11
  const INSTRUCTION_SET = () => new Map([
12
- [Add.opcode, Add],
13
- [Sub.opcode, Sub],
14
- [Mul.opcode, Mul],
15
- [Div.opcode, Div],
16
- [FieldDiv.opcode, FieldDiv],
17
- [Eq.opcode, Eq],
18
- [Lt.opcode, Lt],
19
- [Lte.opcode, Lte],
20
- [And.opcode, And],
21
- [Or.opcode, Or],
22
- [Xor.opcode, Xor],
23
- [Not.opcode, Not],
24
- [Shl.opcode, Shl],
25
- [Shr.opcode, Shr],
26
- [Cast.opcode, Cast],
27
- [Address.opcode, Address],
28
- [StorageAddress.opcode, StorageAddress],
29
- [Sender.opcode, Sender],
30
- [FunctionSelector.opcode, FunctionSelector],
31
- [TransactionFee.opcode, TransactionFee],
12
+ [Opcode.ADD_8, Add.as(Add.wireFormat8).deserialize],
13
+ [Opcode.ADD_16, Add.as(Add.wireFormat16).deserialize],
14
+ [Opcode.SUB_8, Sub.as(Sub.wireFormat8).deserialize],
15
+ [Opcode.SUB_16, Sub.as(Sub.wireFormat16).deserialize],
16
+ [Opcode.MUL_8, Mul.as(Mul.wireFormat8).deserialize],
17
+ [Opcode.MUL_16, Mul.as(Mul.wireFormat16).deserialize],
18
+ [Opcode.DIV_8, Div.as(Div.wireFormat8).deserialize],
19
+ [Opcode.DIV_16, Div.as(Div.wireFormat16).deserialize],
20
+ [Opcode.FDIV_8, FieldDiv.as(FieldDiv.wireFormat8).deserialize],
21
+ [Opcode.FDIV_16, FieldDiv.as(FieldDiv.wireFormat16).deserialize],
22
+ [Opcode.EQ_8, Eq.as(Eq.wireFormat8).deserialize],
23
+ [Opcode.EQ_16, Eq.as(Eq.wireFormat16).deserialize],
24
+ [Opcode.LT_8, Lt.as(Lt.wireFormat8).deserialize],
25
+ [Opcode.LT_16, Lt.as(Lt.wireFormat16).deserialize],
26
+ [Opcode.LTE_8, Lte.as(Lte.wireFormat8).deserialize],
27
+ [Opcode.LTE_16, Lte.as(Lte.wireFormat16).deserialize],
28
+ [Opcode.AND_8, And.as(And.wireFormat8).deserialize],
29
+ [Opcode.AND_16, And.as(And.wireFormat16).deserialize],
30
+ [Opcode.OR_8, Or.as(Or.wireFormat8).deserialize],
31
+ [Opcode.OR_16, Or.as(Or.wireFormat16).deserialize],
32
+ [Opcode.XOR_8, Xor.as(Xor.wireFormat8).deserialize],
33
+ [Opcode.XOR_16, Xor.as(Xor.wireFormat16).deserialize],
34
+ [Opcode.NOT_8, Not.as(Not.wireFormat8).deserialize],
35
+ [Opcode.NOT_16, Not.as(Not.wireFormat16).deserialize],
36
+ [Opcode.SHL_8, Shl.as(Shl.wireFormat8).deserialize],
37
+ [Opcode.SHL_16, Shl.as(Shl.wireFormat16).deserialize],
38
+ [Opcode.SHR_8, Shr.as(Shr.wireFormat8).deserialize],
39
+ [Opcode.SHR_16, Shr.as(Shr.wireFormat16).deserialize],
40
+ [Opcode.CAST_8, Cast.as(Cast.wireFormat8).deserialize],
41
+ [Opcode.CAST_16, Cast.as(Cast.wireFormat16).deserialize],
42
+ [Address.opcode, Instruction.deserialize.bind(Address)],
43
+ [StorageAddress.opcode, Instruction.deserialize.bind(StorageAddress)],
44
+ [Sender.opcode, Instruction.deserialize.bind(Sender)],
45
+ [FunctionSelector.opcode, Instruction.deserialize.bind(FunctionSelector)],
46
+ [TransactionFee.opcode, Instruction.deserialize.bind(TransactionFee)],
32
47
  // Execution Environment - Globals
33
- [ChainId.opcode, ChainId],
34
- [Version.opcode, Version],
35
- [BlockNumber.opcode, BlockNumber],
36
- [Timestamp.opcode, Timestamp],
37
- [FeePerL2Gas.opcode, FeePerL2Gas],
38
- [FeePerDAGas.opcode, FeePerDAGas],
48
+ [ChainId.opcode, Instruction.deserialize.bind(ChainId)],
49
+ [Version.opcode, Instruction.deserialize.bind(Version)],
50
+ [BlockNumber.opcode, Instruction.deserialize.bind(BlockNumber)],
51
+ [Timestamp.opcode, Instruction.deserialize.bind(Timestamp)],
52
+ [FeePerL2Gas.opcode, Instruction.deserialize.bind(FeePerL2Gas)],
53
+ [FeePerDAGas.opcode, Instruction.deserialize.bind(FeePerDAGas)],
39
54
  // Execution Environment - Calldata
40
- [CalldataCopy.opcode, CalldataCopy],
55
+ [CalldataCopy.opcode, Instruction.deserialize.bind(CalldataCopy)],
41
56
  // Machine State
42
57
  // Machine State - Gas
43
- [L2GasLeft.opcode, L2GasLeft],
44
- [DAGasLeft.opcode, DAGasLeft],
58
+ [L2GasLeft.opcode, Instruction.deserialize.bind(L2GasLeft)],
59
+ [DAGasLeft.opcode, Instruction.deserialize.bind(DAGasLeft)],
45
60
  // Machine State - Internal Control Flow
46
- [Jump.opcode, Jump],
47
- [JumpI.opcode, JumpI],
48
- [InternalCall.opcode, InternalCall],
49
- [InternalReturn.opcode, InternalReturn],
50
- [Set.opcode, Set],
51
- [Mov.opcode, Mov],
52
- [CMov.opcode, CMov],
61
+ [Jump.opcode, Instruction.deserialize.bind(Jump)],
62
+ [JumpI.opcode, Instruction.deserialize.bind(JumpI)],
63
+ [InternalCall.opcode, Instruction.deserialize.bind(InternalCall)],
64
+ [InternalReturn.opcode, Instruction.deserialize.bind(InternalReturn)],
65
+ [Opcode.SET_8, Set.as(Set.wireFormat8).deserialize],
66
+ [Opcode.SET_16, Set.as(Set.wireFormat16).deserialize],
67
+ [Opcode.SET_32, Set.as(Set.wireFormat32).deserialize],
68
+ [Opcode.SET_64, Set.as(Set.wireFormat64).deserialize],
69
+ [Opcode.SET_128, Set.as(Set.wireFormat128).deserialize],
70
+ [Opcode.SET_FF, Set.as(Set.wireFormatFF).deserialize],
71
+ [Opcode.MOV_8, Mov.as(Mov.wireFormat8).deserialize],
72
+ [Opcode.MOV_16, Mov.as(Mov.wireFormat16).deserialize],
73
+ [CMov.opcode, Instruction.deserialize.bind(CMov)],
53
74
  // World State
54
- [SLoad.opcode, SLoad], // Public Storage
55
- [SStore.opcode, SStore], // Public Storage
56
- [NoteHashExists.opcode, NoteHashExists], // Notes & Nullifiers
57
- [EmitNoteHash.opcode, EmitNoteHash], // Notes & Nullifiers
58
- [NullifierExists.opcode, NullifierExists], // Notes & Nullifiers
59
- [EmitNullifier.opcode, EmitNullifier], // Notes & Nullifiers
60
- [L1ToL2MessageExists.opcode, L1ToL2MessageExists], // Messages
75
+ [SLoad.opcode, Instruction.deserialize.bind(SLoad)], // Public Storage
76
+ [SStore.opcode, Instruction.deserialize.bind(SStore)], // Public Storage
77
+ [NoteHashExists.opcode, Instruction.deserialize.bind(NoteHashExists)], // Notes & Nullifiers
78
+ [EmitNoteHash.opcode, Instruction.deserialize.bind(EmitNoteHash)], // Notes & Nullifiers
79
+ [NullifierExists.opcode, Instruction.deserialize.bind(NullifierExists)], // Notes & Nullifiers
80
+ [EmitNullifier.opcode, Instruction.deserialize.bind(EmitNullifier)], // Notes & Nullifiers
81
+ [L1ToL2MessageExists.opcode, Instruction.deserialize.bind(L1ToL2MessageExists)], // Messages
61
82
  // Accrued Substate
62
- [EmitUnencryptedLog.opcode, EmitUnencryptedLog],
63
- [SendL2ToL1Message.opcode, SendL2ToL1Message],
64
- [GetContractInstance.opcode, GetContractInstance],
83
+ [EmitUnencryptedLog.opcode, Instruction.deserialize.bind(EmitUnencryptedLog)],
84
+ [SendL2ToL1Message.opcode, Instruction.deserialize.bind(SendL2ToL1Message)],
85
+ [GetContractInstance.opcode, Instruction.deserialize.bind(GetContractInstance)],
65
86
  // Control Flow - Contract Calls
66
- [Call.opcode, Call],
67
- [StaticCall.opcode, StaticCall],
68
- //[DelegateCall.opcode, DelegateCall],
69
- [Return.opcode, Return],
70
- [Revert.opcode, Revert],
87
+ [Call.opcode, Instruction.deserialize.bind(Call)],
88
+ [StaticCall.opcode, Instruction.deserialize.bind(StaticCall)],
89
+ //[DelegateCall.opcode, Instruction.deserialize.bind(DelegateCall)],
90
+ [Return.opcode, Instruction.deserialize.bind(Return)],
91
+ [Opcode.REVERT_8, Revert.as(Revert.wireFormat8).deserialize],
92
+ [Opcode.REVERT_16, Revert.as(Revert.wireFormat16).deserialize],
71
93
  // Misc
72
- [DebugLog.opcode, DebugLog],
94
+ [DebugLog.opcode, Instruction.deserialize.bind(DebugLog)],
73
95
  // Gadgets
74
- [EcAdd.opcode, EcAdd],
75
- [Keccak.opcode, Keccak],
76
- [Poseidon2.opcode, Poseidon2],
77
- [Sha256.opcode, Sha256],
78
- [Pedersen.opcode, Pedersen],
79
- [MultiScalarMul.opcode, MultiScalarMul],
80
- [PedersenCommitment.opcode, PedersenCommitment],
96
+ [EcAdd.opcode, Instruction.deserialize.bind(EcAdd)],
97
+ [Keccak.opcode, Instruction.deserialize.bind(Keccak)],
98
+ [Poseidon2.opcode, Instruction.deserialize.bind(Poseidon2)],
99
+ [Sha256.opcode, Instruction.deserialize.bind(Sha256)],
100
+ [Pedersen.opcode, Instruction.deserialize.bind(Pedersen)],
101
+ [MultiScalarMul.opcode, Instruction.deserialize.bind(MultiScalarMul)],
102
+ [PedersenCommitment.opcode, Instruction.deserialize.bind(PedersenCommitment)],
81
103
  // Conversions
82
- [ToRadixLE.opcode, ToRadixLE],
104
+ [ToRadixLE.opcode, Instruction.deserialize.bind(ToRadixLE)],
83
105
  // Future Gadgets -- pending changes in noir
84
106
  // SHA256COMPRESSION,
85
- [KeccakF1600.opcode, KeccakF1600],
107
+ [KeccakF1600.opcode, Instruction.deserialize.bind(KeccakF1600)],
86
108
  ]);
87
109
  /**
88
110
  * Serializes an array of instructions to bytecode.
@@ -106,9 +128,9 @@ export function decodeFromBytecode(bytecode, instructionSet = INSTRUCTION_SET())
106
128
  throw new Error(`Opcode ${Opcode[opcode]} (0x${opcode.toString(16)}) not implemented`);
107
129
  }
108
130
  const instructionDeserializer = instructionDeserializerOrUndef;
109
- const i = instructionDeserializer.deserialize(cursor);
131
+ const i = instructionDeserializer(cursor);
110
132
  instructions.push(i);
111
133
  }
112
134
  return instructions;
113
135
  }
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZWNvZGVfc2VyaWFsaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vc2VyaWFsaXphdGlvbi9ieXRlY29kZV9zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekYsT0FBTyxFQUNMLEdBQUcsRUFDSCxPQUFPLEVBQ1AsR0FBRyxFQUNILFdBQVcsRUFDWCxJQUFJLEVBQ0osSUFBSSxFQUNKLFlBQVksRUFDWixJQUFJLEVBQ0osT0FBTyxFQUNQLFFBQVEsRUFDUixHQUFHLEVBQ0gsWUFBWSxFQUNaLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsRUFBRSxFQUNGLFdBQVcsRUFDWCxXQUFXLEVBQ1gsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLGNBQWMsRUFDZCxJQUFJLEVBQ0osS0FBSyxFQUNMLG1CQUFtQixFQUNuQixFQUFFLEVBQ0YsR0FBRyxFQUNILEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILGNBQWMsRUFDZCxlQUFlLEVBQ2YsRUFBRSxFQUNGLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsTUFBTSxFQUNOLEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILFVBQVUsRUFDVixjQUFjLEVBQ2QsR0FBRyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBQ1QsY0FBYyxFQUNkLE9BQU8sRUFD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
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZWNvZGVfc2VyaWFsaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vc2VyaWFsaXphdGlvbi9ieXRlY29kZV9zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekYsT0FBTyxFQUNMLEdBQUcsRUFDSCxPQUFPLEVBQ1AsR0FBRyxFQUNILFdBQVcsRUFDWCxJQUFJLEVBQ0osSUFBSSxFQUNKLFlBQVksRUFDWixJQUFJLEVBQ0osT0FBTyxFQUNQLFFBQVEsRUFDUixHQUFHLEVBQ0gsWUFBWSxFQUNaLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsRUFBRSxFQUNGLFdBQVcsRUFDWCxXQUFXLEVBQ1gsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLFlBQVksRUFDWixjQUFjLEVBQ2QsSUFBSSxFQUNKLEtBQUssRUFDTCxtQkFBbUIsRUFDbkIsRUFBRSxFQUNGLEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsRUFDSCxjQUFjLEVBQ2QsZUFBZSxFQUNmLEVBQUUsRUFDRixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsRUFDSCxVQUFVLEVBQ1YsY0FBYyxFQUNkLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULGNBQWMsRUFD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LENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDaEQsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNsRCxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ25ELENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDckQsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNuRCxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ3JELENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDbkQsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNyRCxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ25ELENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDckQsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFF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
@@ -5,75 +5,98 @@ import { BufferCursor } from './buffer_cursor.js';
5
5
  * Source: https://yp-aztec.netlify.app/docs/public-vm/instruction-set
6
6
  */
7
7
  export declare enum Opcode {
8
- ADD = 0,
9
- SUB = 1,
10
- MUL = 2,
11
- DIV = 3,
12
- FDIV = 4,
13
- EQ = 5,
14
- LT = 6,
15
- LTE = 7,
16
- AND = 8,
17
- OR = 9,
18
- XOR = 10,
19
- NOT = 11,
20
- SHL = 12,
21
- SHR = 13,
22
- CAST = 14,
23
- ADDRESS = 15,
24
- STORAGEADDRESS = 16,
25
- SENDER = 17,
26
- FUNCTIONSELECTOR = 18,
27
- TRANSACTIONFEE = 19,
28
- CHAINID = 20,
29
- VERSION = 21,
30
- BLOCKNUMBER = 22,
31
- TIMESTAMP = 23,
32
- FEEPERL2GAS = 24,
33
- FEEPERDAGAS = 25,
34
- CALLDATACOPY = 26,
35
- L2GASLEFT = 27,
36
- DAGASLEFT = 28,
37
- JUMP = 29,
38
- JUMPI = 30,
39
- INTERNALCALL = 31,
40
- INTERNALRETURN = 32,
41
- SET = 33,
42
- MOV = 34,
43
- CMOV = 35,
44
- SLOAD = 36,
45
- SSTORE = 37,
46
- NOTEHASHEXISTS = 38,
47
- EMITNOTEHASH = 39,
48
- NULLIFIEREXISTS = 40,
49
- EMITNULLIFIER = 41,
50
- L1TOL2MSGEXISTS = 42,
51
- GETCONTRACTINSTANCE = 43,
52
- EMITUNENCRYPTEDLOG = 44,
53
- SENDL2TOL1MSG = 45,
54
- CALL = 46,
55
- STATICCALL = 47,
56
- DELEGATECALL = 48,
57
- RETURN = 49,
58
- REVERT = 50,
59
- DEBUGLOG = 51,
60
- KECCAK = 52,
61
- POSEIDON2 = 53,
62
- SHA256 = 54,// temp - may be removed, but alot of contracts rely on it
63
- PEDERSEN = 55,// temp - may be removed, but alot of contracts rely on it
64
- ECADD = 56,
65
- MSM = 57,
66
- PEDERSENCOMMITMENT = 58,
67
- TORADIXLE = 59,
68
- SHA256COMPRESSION = 60,
69
- KECCAKF1600 = 61
8
+ ADD_8 = 0,
9
+ ADD_16 = 1,
10
+ SUB_8 = 2,
11
+ SUB_16 = 3,
12
+ MUL_8 = 4,
13
+ MUL_16 = 5,
14
+ DIV_8 = 6,
15
+ DIV_16 = 7,
16
+ FDIV_8 = 8,
17
+ FDIV_16 = 9,
18
+ EQ_8 = 10,
19
+ EQ_16 = 11,
20
+ LT_8 = 12,
21
+ LT_16 = 13,
22
+ LTE_8 = 14,
23
+ LTE_16 = 15,
24
+ AND_8 = 16,
25
+ AND_16 = 17,
26
+ OR_8 = 18,
27
+ OR_16 = 19,
28
+ XOR_8 = 20,
29
+ XOR_16 = 21,
30
+ NOT_8 = 22,
31
+ NOT_16 = 23,
32
+ SHL_8 = 24,
33
+ SHL_16 = 25,
34
+ SHR_8 = 26,
35
+ SHR_16 = 27,
36
+ CAST_8 = 28,
37
+ CAST_16 = 29,
38
+ ADDRESS = 30,
39
+ STORAGEADDRESS = 31,
40
+ SENDER = 32,
41
+ FUNCTIONSELECTOR = 33,
42
+ TRANSACTIONFEE = 34,
43
+ CHAINID = 35,
44
+ VERSION = 36,
45
+ BLOCKNUMBER = 37,
46
+ TIMESTAMP = 38,
47
+ FEEPERL2GAS = 39,
48
+ FEEPERDAGAS = 40,
49
+ CALLDATACOPY = 41,
50
+ L2GASLEFT = 42,
51
+ DAGASLEFT = 43,
52
+ JUMP_16 = 44,
53
+ JUMPI_16 = 45,
54
+ INTERNALCALL = 46,
55
+ INTERNALRETURN = 47,
56
+ SET_8 = 48,
57
+ SET_16 = 49,
58
+ SET_32 = 50,
59
+ SET_64 = 51,
60
+ SET_128 = 52,
61
+ SET_FF = 53,
62
+ MOV_8 = 54,
63
+ MOV_16 = 55,
64
+ CMOV = 56,
65
+ SLOAD = 57,
66
+ SSTORE = 58,
67
+ NOTEHASHEXISTS = 59,
68
+ EMITNOTEHASH = 60,
69
+ NULLIFIEREXISTS = 61,
70
+ EMITNULLIFIER = 62,
71
+ L1TOL2MSGEXISTS = 63,
72
+ GETCONTRACTINSTANCE = 64,
73
+ EMITUNENCRYPTEDLOG = 65,
74
+ SENDL2TOL1MSG = 66,
75
+ CALL = 67,
76
+ STATICCALL = 68,
77
+ DELEGATECALL = 69,
78
+ RETURN = 70,
79
+ REVERT_8 = 71,
80
+ REVERT_16 = 72,
81
+ DEBUGLOG = 73,
82
+ KECCAK = 74,
83
+ POSEIDON2 = 75,
84
+ SHA256 = 76,// temp - may be removed, but alot of contracts rely on it
85
+ PEDERSEN = 77,// temp - may be removed, but alot of contracts rely on it
86
+ ECADD = 78,
87
+ MSM = 79,
88
+ PEDERSENCOMMITMENT = 80,
89
+ TORADIXLE = 81,
90
+ SHA256COMPRESSION = 82,
91
+ KECCAKF1600 = 83
70
92
  }
71
93
  export declare enum OperandType {
72
94
  UINT8 = 0,
73
95
  UINT16 = 1,
74
96
  UINT32 = 2,
75
97
  UINT64 = 3,
76
- UINT128 = 4
98
+ UINT128 = 4,
99
+ FF = 5
77
100
  }
78
101
  /**
79
102
  * Reads an array of operands from a buffer.
@@ -92,5 +115,5 @@ export declare function deserialize(cursor: BufferCursor | Buffer, operands: Ope
92
115
  * @param cls The class to be serialized.
93
116
  * @returns
94
117
  */
95
- export declare function serialize(operands: OperandType[], cls: any): Buffer;
118
+ export declare function serializeAs(operands: OperandType[], opcode: Opcode, cls: any): Buffer;
96
119
  //# sourceMappingURL=instruction_serialization.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"instruction_serialization.d.ts","sourceRoot":"","sources":["../../../src/avm/serialization/instruction_serialization.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;GAGG;AACH,oBAAY,MAAM;IAEhB,GAAG,IAAA;IACH,GAAG,IAAA;IACH,GAAG,IAAA;IACH,GAAG,IAAA;IACH,IAAI,IAAA;IACJ,EAAE,IAAA;IACF,EAAE,IAAA;IACF,GAAG,IAAA;IACH,GAAG,IAAA;IACH,EAAE,IAAA;IACF,GAAG,KAAA;IACH,GAAG,KAAA;IACH,GAAG,KAAA;IACH,GAAG,KAAA;IACH,IAAI,KAAA;IAEJ,OAAO,KAAA;IACP,cAAc,KAAA;IACd,MAAM,KAAA;IACN,gBAAgB,KAAA;IAChB,cAAc,KAAA;IACd,OAAO,KAAA;IACP,OAAO,KAAA;IACP,WAAW,KAAA;IACX,SAAS,KAAA;IACT,WAAW,KAAA;IACX,WAAW,KAAA;IACX,YAAY,KAAA;IAEZ,SAAS,KAAA;IACT,SAAS,KAAA;IAET,IAAI,KAAA;IACJ,KAAK,KAAA;IACL,YAAY,KAAA;IACZ,cAAc,KAAA;IAEd,GAAG,KAAA;IACH,GAAG,KAAA;IACH,IAAI,KAAA;IAEJ,KAAK,KAAA;IACL,MAAM,KAAA;IACN,cAAc,KAAA;IACd,YAAY,KAAA;IACZ,eAAe,KAAA;IACf,aAAa,KAAA;IACb,eAAe,KAAA;IACf,mBAAmB,KAAA;IACnB,kBAAkB,KAAA;IAClB,aAAa,KAAA;IAEb,IAAI,KAAA;IACJ,UAAU,KAAA;IACV,YAAY,KAAA;IACZ,MAAM,KAAA;IACN,MAAM,KAAA;IAEN,QAAQ,KAAA;IAER,MAAM,KAAA;IACN,SAAS,KAAA;IACT,MAAM,KAAA,CAAE,0DAA0D;IAClE,QAAQ,KAAA,CAAE,0DAA0D;IACpE,KAAK,KAAA;IACL,GAAG,KAAA;IACH,kBAAkB,KAAA;IAElB,SAAS,KAAA;IAET,iBAAiB,KAAA;IACjB,WAAW,KAAA;CACZ;AAMD,oBAAY,WAAW;IACrB,KAAK,IAAA;IACL,MAAM,IAAA;IACN,MAAM,IAAA;IACN,MAAM,IAAA;IACN,OAAO,IAAA;CACR;AAgCD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAcvG;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAqBnE"}
1
+ {"version":3,"file":"instruction_serialization.d.ts","sourceRoot":"","sources":["../../../src/avm/serialization/instruction_serialization.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;GAGG;AACH,oBAAY,MAAM;IAEhB,KAAK,IAAA;IACL,MAAM,IAAA;IACN,KAAK,IAAA;IACL,MAAM,IAAA;IACN,KAAK,IAAA;IACL,MAAM,IAAA;IACN,KAAK,IAAA;IACL,MAAM,IAAA;IACN,MAAM,IAAA;IACN,OAAO,IAAA;IACP,IAAI,KAAA;IACJ,KAAK,KAAA;IACL,IAAI,KAAA;IACJ,KAAK,KAAA;IACL,KAAK,KAAA;IACL,MAAM,KAAA;IACN,KAAK,KAAA;IACL,MAAM,KAAA;IACN,IAAI,KAAA;IACJ,KAAK,KAAA;IACL,KAAK,KAAA;IACL,MAAM,KAAA;IACN,KAAK,KAAA;IACL,MAAM,KAAA;IACN,KAAK,KAAA;IACL,MAAM,KAAA;IACN,KAAK,KAAA;IACL,MAAM,KAAA;IACN,MAAM,KAAA;IACN,OAAO,KAAA;IAEP,OAAO,KAAA;IACP,cAAc,KAAA;IACd,MAAM,KAAA;IACN,gBAAgB,KAAA;IAChB,cAAc,KAAA;IACd,OAAO,KAAA;IACP,OAAO,KAAA;IACP,WAAW,KAAA;IACX,SAAS,KAAA;IACT,WAAW,KAAA;IACX,WAAW,KAAA;IACX,YAAY,KAAA;IAEZ,SAAS,KAAA;IACT,SAAS,KAAA;IAET,OAAO,KAAA;IACP,QAAQ,KAAA;IACR,YAAY,KAAA;IACZ,cAAc,KAAA;IAEd,KAAK,KAAA;IACL,MAAM,KAAA;IACN,MAAM,KAAA;IACN,MAAM,KAAA;IACN,OAAO,KAAA;IACP,MAAM,KAAA;IACN,KAAK,KAAA;IACL,MAAM,KAAA;IACN,IAAI,KAAA;IAEJ,KAAK,KAAA;IACL,MAAM,KAAA;IACN,cAAc,KAAA;IACd,YAAY,KAAA;IACZ,eAAe,KAAA;IACf,aAAa,KAAA;IACb,eAAe,KAAA;IACf,mBAAmB,KAAA;IACnB,kBAAkB,KAAA;IAClB,aAAa,KAAA;IAEb,IAAI,KAAA;IACJ,UAAU,KAAA;IACV,YAAY,KAAA;IACZ,MAAM,KAAA;IACN,QAAQ,KAAA;IACR,SAAS,KAAA;IAET,QAAQ,KAAA;IAER,MAAM,KAAA;IACN,SAAS,KAAA;IACT,MAAM,KAAA,CAAE,0DAA0D;IAClE,QAAQ,KAAA,CAAE,0DAA0D;IACpE,KAAK,KAAA;IACL,GAAG,KAAA;IACH,kBAAkB,KAAA;IAElB,SAAS,KAAA;IAET,iBAAiB,KAAA;IACjB,WAAW,KAAA;CACZ;AAMD,oBAAY,WAAW;IACrB,KAAK,IAAA;IACL,MAAM,IAAA;IACN,MAAM,IAAA;IACN,MAAM,IAAA;IACN,OAAO,IAAA;IACP,EAAE,IAAA;CACH;AAmDD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAcvG;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAmBrF"}