Function encodingΒΆ
Functions are encoded as the pair of a natural number identifier (specifying a particular virtual machine) and bytecode (to be interpreted by the virtual machine):
type Function := mkFunction {
vmIdentifier : Natural;
vmBytecode : []byte;
};
| Identifier | Virtual machine |
|---|---|
| 0x00 | - (reserved for the future) |
| 0x01 | - (reserved for the future) |
| 0x02 | Nockma |
| 0x03 | Cairo |
| 0x04 | RISC0 |
We then define the canonical function encoding functions as a switch-case over these particular virtual machines.