## v0.1.10

## Changes

- gather wasm related logic to module wasm in `codegen`
- introduce WASM environment for in `codegen`
- Structured compiler output of `zinkc`
- Renaming `without_dispatcher` to `pure` in `zint`
- use `tiny-keccak` instead of `sha3` in `zabi`

## v0.1.9

### Changes

- Refactor conta with `toml_edit`
- Optional exports wasm-opt from zinkc
- Use full revm instead of ethers in zint
- Remove ethers
- Move out ccli and conta
- Use `anyhow::Result` instead for the result of `zint`
- Remove clap in elko

### FIXED

- Missing logic of adapt package alias in conta

## v0.1.8

### Added

- ABI output in zink compiler
- no_std solidity ABI

### Changes

- Solidity compatible ABI
- Refactor `zabi` a wrapper a `sol-abi`
- Conditional compilation for abi related crates
- Compile `zinkc` binary in crate `zinkc`
- Use generated ABI for the constructor tests
- Rename zinkc-filetests to filetests

## v0.1.7

### Added

- testing utils for deployment

## v0.1.6

### Added

- Contract constructor implementation.

## v0.1.5

### Added

- Function dispatcher
  - Crate `zabi`
  - Host function `emit_abi`
  - new `proc-macro` `zink::external`
  - `dispatcher` flag for `elko` and `zinkc`
  - Jump with offset in jump table
- `Contract` instance in `zint`
  - Built-in tests for all examples
  - filetests of the compiler

### Changed

- Map functions in codegen for different usages
- Move `zink` to the top level
- Move previous compiler tests to the top level
- Move examples out of crates
- The PC order of return and callee labels

### Fixed

- Add up original PC offset while shifting themselves in PC relocation
- clean stack on loading data from data section

---

## v0.1.4

### Added

- `proc-macro` for storage
- `proc-macro` for event logging
- Update documents for storage and events

### Fixed

- Publishing logic of `conta`

---

## v0.1.3

### Added

- Event logging APIs
- Examples for logging
- Data section parser in `codegen`
- Documents for event logging APIs
- Benchmarks for event logging APIs

---

## v0.1.2

### Added

- Storage related built-in functions
  - `sstore` and `sload`
- `impl_tests` for generating arithmetic tests
- Project logo
- rust-cache in CI
- Documents for storage APIs
- Benchmarks for event storage APIs

---

## v0.1.1

### Added

- Code section in `codegen`
- Instruction `select`
- Params test for `select`

---

## V0.1.0

The MVP of the zink project, provides various tools for developing
EVM contracts with `rust` and `WASM`.

### Binaries

| name    | description                                                 |
| ------- | ----------------------------------------------------------- |
| `elko`  | Zink's package manager, can create and build zink project.  |
| `zinkc` | The zink compiler, can compile simple wasm to EVM bytecode. |

For supporting nearly everything, plz keep tuned for `v0.3.0`.

### Components

| name      | description                                               |
| --------- | --------------------------------------------------------- |
| `zinkgen` | Zink code generator                                       |
| `zinkc`   | Zink compiler                                             |
| `zink`    | Rust library for developing program with zink             |
| `zint`    | Basic test utils including evm wrapper for testing usages |
| `zinkup`  | Zink toolchain installer                                  |

### Added

- provided basic functionalities in `v0.1.0` to verify thoughts, the final target
  of it is example `fibonaaci`, which means, everything used in the `fibonacci` example
  now works!
- `add`, `sub`, `mul` are available now, plus all comparison operand like `gt`, `lt`,
  `ge`, `le`, `bitwise` also have implementations **operators like `shr` require the
  order of the stack will have bugs\***.
- The compilation of locals currently works without any hardcode, ideally, we don't
  need to refactor it in the future!
- Same as locals, works without any hardcode, but some logic related to the jump table
  need to be refactored after introducing `selector`.
- `if`, `else`, `block`, `loop`, `br_if` now works without any hardcode, need to add
  `br_table`, `select`... to align wasm MVP in the future releases.~\*