Skip to content

Commit

Permalink
Include invalid opcode preamble
Browse files Browse the repository at this point in the history
  • Loading branch information
axic committed Aug 14, 2016
1 parent 0d75857 commit 482350c
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
4 changes: 3 additions & 1 deletion backwardsCompatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ cost. The fee schedule for eWASM is yet to be specified.
## Identification of code
We assume there is some sort of code handler function that all clients have
implemented. The code handler identifies the instruction set type by whether it
starts with WASM's magic number or not.
starts with the *eWASM preamble* or not.

The *eWASM preamble* consists of an invalid EVM1 opcode (`0xEF`) followed by the WASM magic number.

The WASM magic number is the following byte sequence: `0x00, 0x61, 0x73, 0x6d`.

Expand Down
2 changes: 2 additions & 0 deletions contract_interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ The eWASM Contract Interface (ECI) specifies the structure of a contract module.

Every contract must be stored in the [WebAssembly Binary Encoding](https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md) format (in short, WASM bytecode).

The WASM bytecode must be prefixed with an invalid EVM1 opcode (`0xEF`).

### Imports

A contract can only import symbols specified in the [Ethereum Environment Interface](./eth_interface.md).
Expand Down

0 comments on commit 482350c

Please sign in to comment.