@aztec/simulator 0.52.0 → 0.54.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 (92) hide show
  1. package/dest/acvm/acvm.d.ts +7 -0
  2. package/dest/acvm/acvm.d.ts.map +1 -1
  3. package/dest/acvm/acvm.js +17 -1
  4. package/dest/avm/avm_execution_environment.d.ts +2 -2
  5. package/dest/avm/avm_execution_environment.d.ts.map +1 -1
  6. package/dest/avm/avm_execution_environment.js +5 -6
  7. package/dest/avm/avm_gas.d.ts.map +1 -1
  8. package/dest/avm/avm_gas.js +73 -43
  9. package/dest/avm/avm_memory_types.d.ts +1 -1
  10. package/dest/avm/avm_memory_types.d.ts.map +1 -1
  11. package/dest/avm/avm_memory_types.js +5 -3
  12. package/dest/avm/bytecode_utils.js +5 -5
  13. package/dest/avm/errors.js +2 -2
  14. package/dest/avm/fixtures/index.d.ts +2 -0
  15. package/dest/avm/fixtures/index.d.ts.map +1 -1
  16. package/dest/avm/fixtures/index.js +18 -2
  17. package/dest/avm/journal/journal.d.ts +1 -1
  18. package/dest/avm/journal/journal.d.ts.map +1 -1
  19. package/dest/avm/journal/journal.js +13 -8
  20. package/dest/avm/opcodes/arithmetic.d.ts +9 -16
  21. package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
  22. package/dest/avm/opcodes/arithmetic.js +12 -37
  23. package/dest/avm/opcodes/bitwise.d.ts +5 -5
  24. package/dest/avm/opcodes/bitwise.d.ts.map +1 -1
  25. package/dest/avm/opcodes/bitwise.js +6 -6
  26. package/dest/avm/opcodes/comparators.d.ts +3 -3
  27. package/dest/avm/opcodes/comparators.d.ts.map +1 -1
  28. package/dest/avm/opcodes/comparators.js +4 -4
  29. package/dest/avm/opcodes/control_flow.d.ts.map +1 -1
  30. package/dest/avm/opcodes/control_flow.js +6 -6
  31. package/dest/avm/opcodes/instruction.d.ts +18 -12
  32. package/dest/avm/opcodes/instruction.d.ts.map +1 -1
  33. package/dest/avm/opcodes/instruction.js +36 -19
  34. package/dest/avm/opcodes/instruction_impl.d.ts +4 -2
  35. package/dest/avm/opcodes/instruction_impl.d.ts.map +1 -1
  36. package/dest/avm/opcodes/instruction_impl.js +15 -7
  37. package/dest/avm/opcodes/memory.d.ts +11 -12
  38. package/dest/avm/opcodes/memory.d.ts.map +1 -1
  39. package/dest/avm/opcodes/memory.js +68 -68
  40. package/dest/avm/serialization/bytecode_serialization.d.ts +7 -8
  41. package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
  42. package/dest/avm/serialization/bytecode_serialization.js +83 -67
  43. package/dest/avm/serialization/instruction_serialization.d.ts +84 -68
  44. package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
  45. package/dest/avm/serialization/instruction_serialization.js +102 -71
  46. package/dest/avm/test_utils.d.ts +1 -1
  47. package/dest/avm/test_utils.d.ts.map +1 -1
  48. package/dest/avm/test_utils.js +11 -3
  49. package/dest/public/abstract_phase_manager.d.ts.map +1 -1
  50. package/dest/public/abstract_phase_manager.js +4 -4
  51. package/dest/public/db_interfaces.d.ts +6 -0
  52. package/dest/public/db_interfaces.d.ts.map +1 -1
  53. package/dest/public/execution.d.ts +3 -3
  54. package/dest/public/execution.d.ts.map +1 -1
  55. package/dest/public/execution.js +1 -1
  56. package/dest/public/hints_builder.d.ts +6 -4
  57. package/dest/public/hints_builder.d.ts.map +1 -1
  58. package/dest/public/hints_builder.js +20 -5
  59. package/dest/public/public_db_sources.d.ts +1 -0
  60. package/dest/public/public_db_sources.d.ts.map +1 -1
  61. package/dest/public/public_db_sources.js +11 -1
  62. package/dest/public/side_effect_trace.d.ts +2 -2
  63. package/dest/public/side_effect_trace.d.ts.map +1 -1
  64. package/dest/public/side_effect_trace.js +10 -12
  65. package/dest/public/tail_phase_manager.d.ts.map +1 -1
  66. package/dest/public/tail_phase_manager.js +4 -3
  67. package/package.json +9 -9
  68. package/src/acvm/acvm.ts +22 -0
  69. package/src/avm/avm_execution_environment.ts +3 -4
  70. package/src/avm/avm_gas.ts +72 -42
  71. package/src/avm/avm_memory_types.ts +4 -2
  72. package/src/avm/bytecode_utils.ts +4 -4
  73. package/src/avm/errors.ts +1 -1
  74. package/src/avm/fixtures/index.ts +32 -2
  75. package/src/avm/journal/journal.ts +14 -8
  76. package/src/avm/opcodes/arithmetic.ts +12 -41
  77. package/src/avm/opcodes/bitwise.ts +5 -5
  78. package/src/avm/opcodes/comparators.ts +3 -3
  79. package/src/avm/opcodes/control_flow.ts +5 -5
  80. package/src/avm/opcodes/instruction.ts +41 -19
  81. package/src/avm/opcodes/instruction_impl.ts +14 -6
  82. package/src/avm/opcodes/memory.ts +76 -74
  83. package/src/avm/serialization/bytecode_serialization.ts +93 -77
  84. package/src/avm/serialization/instruction_serialization.ts +58 -25
  85. package/src/avm/test_utils.ts +9 -2
  86. package/src/public/abstract_phase_manager.ts +3 -2
  87. package/src/public/db_interfaces.ts +7 -0
  88. package/src/public/execution.ts +3 -2
  89. package/src/public/hints_builder.ts +48 -13
  90. package/src/public/public_db_sources.ts +11 -0
  91. package/src/public/side_effect_trace.ts +11 -12
  92. package/src/public/tail_phase_manager.ts +10 -7
@@ -2,6 +2,7 @@ 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 { Instruction } from '../opcodes/index.js';
5
6
  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';
6
7
  import { MultiScalarMul } from '../opcodes/multi_scalar_mul.js';
7
8
  import { BufferCursor } from './buffer_cursor.js';
@@ -9,84 +10,99 @@ import { Opcode } from './instruction_serialization.js';
9
10
  // TODO(4359): This is a function so that Call and StaticCall can be lazily resolved.
10
11
  // This is a temporary solution until we solve the dependency cycle.
11
12
  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],
13
+ [Opcode.ADD_8, Add.as(Add.wireFormat8).deserialize],
14
+ [Opcode.ADD_16, Add.as(Add.wireFormat16).deserialize],
15
+ [Opcode.SUB_8, Sub.as(Sub.wireFormat8).deserialize],
16
+ [Opcode.SUB_16, Sub.as(Sub.wireFormat16).deserialize],
17
+ [Opcode.MUL_8, Mul.as(Mul.wireFormat8).deserialize],
18
+ [Opcode.MUL_16, Mul.as(Mul.wireFormat16).deserialize],
19
+ [Opcode.DIV_8, Div.as(Div.wireFormat8).deserialize],
20
+ [Opcode.DIV_16, Div.as(Div.wireFormat16).deserialize],
21
+ [Opcode.FDIV_8, FieldDiv.as(FieldDiv.wireFormat8).deserialize],
22
+ [Opcode.FDIV_16, FieldDiv.as(FieldDiv.wireFormat16).deserialize],
23
+ [Opcode.EQ_8, Eq.as(Eq.wireFormat8).deserialize],
24
+ [Opcode.EQ_16, Eq.as(Eq.wireFormat16).deserialize],
25
+ [Opcode.LT_8, Lt.as(Lt.wireFormat8).deserialize],
26
+ [Opcode.LT_16, Lt.as(Lt.wireFormat16).deserialize],
27
+ [Opcode.LTE_8, Lte.as(Lte.wireFormat8).deserialize],
28
+ [Opcode.LTE_16, Lte.as(Lte.wireFormat16).deserialize],
29
+ [Opcode.AND_8, And.as(And.wireFormat8).deserialize],
30
+ [Opcode.AND_16, And.as(And.wireFormat16).deserialize],
31
+ [Opcode.OR_8, Or.as(Or.wireFormat8).deserialize],
32
+ [Opcode.OR_16, Or.as(Or.wireFormat16).deserialize],
33
+ [Opcode.XOR_8, Xor.as(Xor.wireFormat8).deserialize],
34
+ [Opcode.XOR_16, Xor.as(Xor.wireFormat16).deserialize],
35
+ [Not.opcode, Instruction.deserialize.bind(Not)],
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
+ [Cast.opcode, Instruction.deserialize.bind(Cast)],
41
+ [Address.opcode, Instruction.deserialize.bind(Address)],
42
+ [StorageAddress.opcode, Instruction.deserialize.bind(StorageAddress)],
43
+ [Sender.opcode, Instruction.deserialize.bind(Sender)],
44
+ [FunctionSelector.opcode, Instruction.deserialize.bind(FunctionSelector)],
45
+ [TransactionFee.opcode, Instruction.deserialize.bind(TransactionFee)],
32
46
  // Execution Environment - Globals
33
- [ChainId.opcode, ChainId],
34
- [Version.opcode, Version],
35
- [BlockNumber.opcode, BlockNumber],
36
- [Timestamp.opcode, Timestamp],
37
- //[Coinbase.opcode, Coinbase],
38
- [FeePerL2Gas.opcode, FeePerL2Gas],
39
- [FeePerDAGas.opcode, FeePerDAGas],
40
- //[Blockl2gaslimit.opcode, Blockl2gaslimit],
41
- //[Blockdagaslimit.opcode, Blockdagaslimit],
47
+ [ChainId.opcode, Instruction.deserialize.bind(ChainId)],
48
+ [Version.opcode, Instruction.deserialize.bind(Version)],
49
+ [BlockNumber.opcode, Instruction.deserialize.bind(BlockNumber)],
50
+ [Timestamp.opcode, Instruction.deserialize.bind(Timestamp)],
51
+ [FeePerL2Gas.opcode, Instruction.deserialize.bind(FeePerL2Gas)],
52
+ [FeePerDAGas.opcode, Instruction.deserialize.bind(FeePerDAGas)],
42
53
  // Execution Environment - Calldata
43
- [CalldataCopy.opcode, CalldataCopy],
54
+ [CalldataCopy.opcode, Instruction.deserialize.bind(CalldataCopy)],
44
55
  // Machine State
45
56
  // Machine State - Gas
46
- [L2GasLeft.opcode, L2GasLeft],
47
- [DAGasLeft.opcode, DAGasLeft],
57
+ [L2GasLeft.opcode, Instruction.deserialize.bind(L2GasLeft)],
58
+ [DAGasLeft.opcode, Instruction.deserialize.bind(DAGasLeft)],
48
59
  // Machine State - Internal Control Flow
49
- [Jump.opcode, Jump],
50
- [JumpI.opcode, JumpI],
51
- [InternalCall.opcode, InternalCall],
52
- [InternalReturn.opcode, InternalReturn],
53
- [Set.opcode, Set],
54
- [Mov.opcode, Mov],
55
- [CMov.opcode, CMov],
60
+ [Jump.opcode, Instruction.deserialize.bind(Jump)],
61
+ [JumpI.opcode, Instruction.deserialize.bind(JumpI)],
62
+ [InternalCall.opcode, Instruction.deserialize.bind(InternalCall)],
63
+ [InternalReturn.opcode, Instruction.deserialize.bind(InternalReturn)],
64
+ [Opcode.SET_8, Set.as(Set.wireFormat8).deserialize],
65
+ [Opcode.SET_16, Set.as(Set.wireFormat16).deserialize],
66
+ [Opcode.SET_32, Set.as(Set.wireFormat32).deserialize],
67
+ [Opcode.SET_64, Set.as(Set.wireFormat64).deserialize],
68
+ [Opcode.SET_128, Set.as(Set.wireFormat128).deserialize],
69
+ [Opcode.SET_FF, Set.as(Set.wireFormatFF).deserialize],
70
+ [Opcode.MOV_8, Mov.as(Mov.wireFormat8).deserialize],
71
+ [Opcode.MOV_16, Mov.as(Mov.wireFormat16).deserialize],
72
+ [CMov.opcode, Instruction.deserialize.bind(CMov)],
56
73
  // World State
57
- [SLoad.opcode, SLoad], // Public Storage
58
- [SStore.opcode, SStore], // Public Storage
59
- [NoteHashExists.opcode, NoteHashExists], // Notes & Nullifiers
60
- [EmitNoteHash.opcode, EmitNoteHash], // Notes & Nullifiers
61
- [NullifierExists.opcode, NullifierExists], // Notes & Nullifiers
62
- [EmitNullifier.opcode, EmitNullifier], // Notes & Nullifiers
63
- [L1ToL2MessageExists.opcode, L1ToL2MessageExists], // Messages
64
- //[HeaderMember.opcode, HeaderMember], // Header
74
+ [SLoad.opcode, Instruction.deserialize.bind(SLoad)], // Public Storage
75
+ [SStore.opcode, Instruction.deserialize.bind(SStore)], // Public Storage
76
+ [NoteHashExists.opcode, Instruction.deserialize.bind(NoteHashExists)], // Notes & Nullifiers
77
+ [EmitNoteHash.opcode, Instruction.deserialize.bind(EmitNoteHash)], // Notes & Nullifiers
78
+ [NullifierExists.opcode, Instruction.deserialize.bind(NullifierExists)], // Notes & Nullifiers
79
+ [EmitNullifier.opcode, Instruction.deserialize.bind(EmitNullifier)], // Notes & Nullifiers
80
+ [L1ToL2MessageExists.opcode, Instruction.deserialize.bind(L1ToL2MessageExists)], // Messages
65
81
  // Accrued Substate
66
- [EmitUnencryptedLog.opcode, EmitUnencryptedLog],
67
- [SendL2ToL1Message.opcode, SendL2ToL1Message],
68
- [GetContractInstance.opcode, GetContractInstance],
82
+ [EmitUnencryptedLog.opcode, Instruction.deserialize.bind(EmitUnencryptedLog)],
83
+ [SendL2ToL1Message.opcode, Instruction.deserialize.bind(SendL2ToL1Message)],
84
+ [GetContractInstance.opcode, Instruction.deserialize.bind(GetContractInstance)],
69
85
  // Control Flow - Contract Calls
70
- [Call.opcode, Call],
71
- [StaticCall.opcode, StaticCall],
72
- //[DelegateCall.opcode, DelegateCall],
73
- [Return.opcode, Return],
74
- [Revert.opcode, Revert],
86
+ [Call.opcode, Instruction.deserialize.bind(Call)],
87
+ [StaticCall.opcode, Instruction.deserialize.bind(StaticCall)],
88
+ //[DelegateCall.opcode, Instruction.deserialize.bind(DelegateCall)],
89
+ [Return.opcode, Instruction.deserialize.bind(Return)],
90
+ [Revert.opcode, Instruction.deserialize.bind(Revert)],
75
91
  // Misc
76
- [DebugLog.opcode, DebugLog],
92
+ [DebugLog.opcode, Instruction.deserialize.bind(DebugLog)],
77
93
  // Gadgets
78
- [EcAdd.opcode, EcAdd],
79
- [Keccak.opcode, Keccak],
80
- [Poseidon2.opcode, Poseidon2],
81
- [Sha256.opcode, Sha256],
82
- [Pedersen.opcode, Pedersen],
83
- [MultiScalarMul.opcode, MultiScalarMul],
84
- [PedersenCommitment.opcode, PedersenCommitment],
94
+ [EcAdd.opcode, Instruction.deserialize.bind(EcAdd)],
95
+ [Keccak.opcode, Instruction.deserialize.bind(Keccak)],
96
+ [Poseidon2.opcode, Instruction.deserialize.bind(Poseidon2)],
97
+ [Sha256.opcode, Instruction.deserialize.bind(Sha256)],
98
+ [Pedersen.opcode, Instruction.deserialize.bind(Pedersen)],
99
+ [MultiScalarMul.opcode, Instruction.deserialize.bind(MultiScalarMul)],
100
+ [PedersenCommitment.opcode, Instruction.deserialize.bind(PedersenCommitment)],
85
101
  // Conversions
86
- [ToRadixLE.opcode, ToRadixLE],
102
+ [ToRadixLE.opcode, Instruction.deserialize.bind(ToRadixLE)],
87
103
  // Future Gadgets -- pending changes in noir
88
104
  // SHA256COMPRESSION,
89
- [KeccakF1600.opcode, KeccakF1600],
105
+ [KeccakF1600.opcode, Instruction.deserialize.bind(KeccakF1600)],
90
106
  ]);
91
107
  /**
92
108
  * Serializes an array of instructions to bytecode.
@@ -110,9 +126,9 @@ export function decodeFromBytecode(bytecode, instructionSet = INSTRUCTION_SET())
110
126
  throw new Error(`Opcode ${Opcode[opcode]} (0x${opcode.toString(16)}) not implemented`);
111
127
  }
112
128
  const instructionDeserializer = instructionDeserializerOrUndef;
113
- const i = instructionDeserializer.deserialize(cursor);
129
+ const i = instructionDeserializer(cursor);
114
130
  instructions.push(i);
115
131
  }
116
132
  return instructions;
117
133
  }
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZWNvZGVfc2VyaWFsaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vc2VyaWFsaXphdGlvbi9ieXRlY29kZV9zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekYsT0FBTyxFQUNMLEdBQUcsRUFDSCxPQUFPLEVBQ1AsR0FBRyxFQUNILFdBQVcsRUFDWCxJQUFJLEVBQ0osSUFBSSxFQUNKLFlBQVksRUFDWixJQUFJLEVBQ0osT0FBTyxFQUNQLFFBQVEsRUFDUixHQUFHLEVBQ0gsWUFBWSxFQUNaLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsRUFBRSxFQUNGLFdBQVcsRUFDWCxXQUFXLEVBQ1gsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLGNBQWMsRUFDZCxJQUFJLEVBQ0osS0FBSyxFQUNMLG1CQUFtQixFQUNuQixFQUFFLEVBQ0YsR0FBRyxFQUNILEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILGNBQWMsRUFDZCxlQUFlLEVBQ2YsRUFBRSxFQUNGLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsTUFBTSxFQUNOLEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILFVBQVUsRUFDVixjQUFjLEVBQ2QsR0FBRyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBQ1QsY0FBYyxFQUNkLE9BQU8sRUFD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
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZWNvZGVfc2VyaWFsaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdm0vc2VyaWFsaXphdGlvbi9ieXRlY29kZV9zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxHQUFHLEVBQ0gsT0FBTyxFQUNQLEdBQUcsRUFDSCxXQUFXLEVBQ1gsSUFBSSxFQUNKLElBQUksRUFDSixZQUFZLEVBQ1osSUFBSSxFQUNKLE9BQU8sRUFDUCxRQUFRLEVBQ1IsR0FBRyxFQUNILFlBQVksRUFDWixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLEVBQUUsRUFDRixXQUFXLEVBQ1gsV0FBVyxFQUNYLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixjQUFjLEVBQ2QsSUFBSSxFQUNKLEtBQUssRUFDTCxtQkFBbUIsRUFDbkIsRUFBRSxFQUNGLEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsRUFDSCxjQUFjLEVBQ2QsZUFBZSxFQUNmLEVBQUUsRUFDRixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsRUFDSCxVQUFVLEVBQ1YsY0FBYyxFQUNkLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULGNBQWMsRUFDZCxPQUFPLEVBQ1AsR0FBRyxHQUNKLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFheEQscUZBQXFGO0FBQ3JGLG9FQUFvRTtBQUNwRSxNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUUsQ0FDM0IsSUFBSSxHQUFHLENBQWtDO0lBQ3ZDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDbkQsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNyRCxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ25ELENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDckQsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNuRCxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ3JELENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDbkQsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNyRCxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQzlELENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDaEUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNoRCxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ2xELENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDaEQsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNsRCxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ25ELENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDckQsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNuRCxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ3JELENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDaEQsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNsRCxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ25ELENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDckQsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDbkQsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNyRCxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ25ELENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDckQsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxX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
@@ -5,79 +5,95 @@ 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
- COINBASE = 24,
33
- FEEPERL2GAS = 25,
34
- FEEPERDAGAS = 26,
35
- BLOCKL2GASLIMIT = 27,
36
- BLOCKDAGASLIMIT = 28,
37
- CALLDATACOPY = 29,
38
- L2GASLEFT = 30,
39
- DAGASLEFT = 31,
40
- JUMP = 32,
41
- JUMPI = 33,
42
- INTERNALCALL = 34,
43
- INTERNALRETURN = 35,
44
- SET = 36,
45
- MOV = 37,
46
- CMOV = 38,
47
- SLOAD = 39,
48
- SSTORE = 40,
49
- NOTEHASHEXISTS = 41,
50
- EMITNOTEHASH = 42,
51
- NULLIFIEREXISTS = 43,
52
- EMITNULLIFIER = 44,
53
- L1TOL2MSGEXISTS = 45,
54
- HEADERMEMBER = 46,
55
- GETCONTRACTINSTANCE = 47,
56
- EMITUNENCRYPTEDLOG = 48,
57
- SENDL2TOL1MSG = 49,
58
- CALL = 50,
59
- STATICCALL = 51,
60
- DELEGATECALL = 52,
61
- RETURN = 53,
62
- REVERT = 54,
63
- DEBUGLOG = 55,
64
- KECCAK = 56,
65
- POSEIDON2 = 57,
66
- SHA256 = 58,// temp - may be removed, but alot of contracts rely on it
67
- PEDERSEN = 59,// temp - may be removed, but alot of contracts rely on it
68
- ECADD = 60,
69
- MSM = 61,
70
- PEDERSENCOMMITMENT = 62,
71
- TORADIXLE = 63,
72
- SHA256COMPRESSION = 64,
73
- KECCAKF1600 = 65
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 = 22,
31
+ SHL_8 = 23,
32
+ SHL_16 = 24,
33
+ SHR_8 = 25,
34
+ SHR_16 = 26,
35
+ CAST = 27,
36
+ ADDRESS = 28,
37
+ STORAGEADDRESS = 29,
38
+ SENDER = 30,
39
+ FUNCTIONSELECTOR = 31,
40
+ TRANSACTIONFEE = 32,
41
+ CHAINID = 33,
42
+ VERSION = 34,
43
+ BLOCKNUMBER = 35,
44
+ TIMESTAMP = 36,
45
+ FEEPERL2GAS = 37,
46
+ FEEPERDAGAS = 38,
47
+ CALLDATACOPY = 39,
48
+ L2GASLEFT = 40,
49
+ DAGASLEFT = 41,
50
+ JUMP_16 = 42,
51
+ JUMPI_16 = 43,
52
+ INTERNALCALL = 44,
53
+ INTERNALRETURN = 45,
54
+ SET_8 = 46,
55
+ SET_16 = 47,
56
+ SET_32 = 48,
57
+ SET_64 = 49,
58
+ SET_128 = 50,
59
+ SET_FF = 51,
60
+ MOV_8 = 52,
61
+ MOV_16 = 53,
62
+ CMOV = 54,
63
+ SLOAD = 55,
64
+ SSTORE = 56,
65
+ NOTEHASHEXISTS = 57,
66
+ EMITNOTEHASH = 58,
67
+ NULLIFIEREXISTS = 59,
68
+ EMITNULLIFIER = 60,
69
+ L1TOL2MSGEXISTS = 61,
70
+ GETCONTRACTINSTANCE = 62,
71
+ EMITUNENCRYPTEDLOG = 63,
72
+ SENDL2TOL1MSG = 64,
73
+ CALL = 65,
74
+ STATICCALL = 66,
75
+ DELEGATECALL = 67,
76
+ RETURN = 68,
77
+ REVERT = 69,
78
+ DEBUGLOG = 70,
79
+ KECCAK = 71,
80
+ POSEIDON2 = 72,
81
+ SHA256 = 73,// temp - may be removed, but alot of contracts rely on it
82
+ PEDERSEN = 74,// temp - may be removed, but alot of contracts rely on it
83
+ ECADD = 75,
84
+ MSM = 76,
85
+ PEDERSENCOMMITMENT = 77,
86
+ TORADIXLE = 78,
87
+ SHA256COMPRESSION = 79,
88
+ KECCAKF1600 = 80
74
89
  }
75
90
  export declare enum OperandType {
76
91
  UINT8 = 0,
77
92
  UINT16 = 1,
78
93
  UINT32 = 2,
79
94
  UINT64 = 3,
80
- UINT128 = 4
95
+ UINT128 = 4,
96
+ FF = 5
81
97
  }
82
98
  /**
83
99
  * Reads an array of operands from a buffer.
@@ -96,5 +112,5 @@ export declare function deserialize(cursor: BufferCursor | Buffer, operands: Ope
96
112
  * @param cls The class to be serialized.
97
113
  * @returns
98
114
  */
99
- export declare function serialize(operands: OperandType[], cls: any): Buffer;
115
+ export declare function serializeAs(operands: OperandType[], opcode: Opcode, cls: any): Buffer;
100
116
  //# 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,QAAQ,KAAA;IACR,WAAW,KAAA;IACX,WAAW,KAAA;IACX,eAAe,KAAA;IACf,eAAe,KAAA;IACf,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,YAAY,KAAA;IACZ,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,GAAG,KAAA;IACH,KAAK,KAAA;IACL,MAAM,KAAA;IACN,KAAK,KAAA;IACL,MAAM,KAAA;IACN,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,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,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;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"}