# Changelog All notable changes to this project will be documented in this file. ## [unreleased] ### ๐Ÿšœ Refactor - Update custom errors for stack - Update stack structure - Fix stack related functions ## [0.1.0] - 2024-08-26 ### ๐Ÿš€ Features - Add instruction enum - Add lexer.rs - Update lexer.rs - Update instruction.rs - Add stack struct and its functions - Implement memory struct and its functions - Implement Storage struct and its functions - Add hex.rs for conversion functions - *(stack)* Add dup and swap functions - Add vm.rs module - Add custom error for vm - Add new opcodes to InstructionType - *(vm)* Update run function - *(vm)* Update missing opcode arms - *(storage)* Implement size and is_empty functions - Implement command line operations - *(errors)* Implement history error - Add history module - *(history)* Implement component functions - *(vm)* Add History to Vm - *(cli)* Implement `verbose` argument - Add bytes32 module - *(bytes32)* Add arithmetic operation traits - *(history)* Add new History field functions - *(history)* Add analyze function ### ๐Ÿ› Bug Fixes - *(bytes)* Update from bytes to string function - *(vm)* Update KECCAK256 opcode function - *(bytes)* Update wrong conversion to String ### ๐Ÿšœ Refactor - Update StackError implementation - *(memory)* Remove Result returns - Implement custom errors in errors.rs - *(memory)* Add Default trait to Memory - Update custom error outputs - *(vm)* Update Vm struct creation - *(stack)* Implement Debug trait - *(storage)* Update the name key to slot - *(history)* Update functions - *(history)* Implement clippy suggestions - *(vm)* Implement pop function - *(stack)* Add index return values - *(instruction)* Update struct macros - *(errors)* Add lifetime notation to instruction type - *(history)* Update summarize function param - *(memory)* Add partially broken code - *(storage)* Add partially broken code - *(history)* Add partially broken code - Implement type `Bytes32` in the place of `[u8; 32]` - *(history)* Update parser function - *(vm)* Update build_initials closure - Implement Debug trait ### ๐Ÿ“š Documentation - *(memory)* Add safety docs to unsafe functions ### ๐ŸŽจ Styling - *(memory)* Remove Default macro - Rename hex.rs as bytes.rs - *(vm)* Update KECCAK256 opcode function - *(bytes32)* Remove clippy warnings - *(history)* Remove clippy warnings - *(vm)* Remove clippy warnings ### ๐Ÿงช Testing - *(lexer)* Add test cases - *(stack)* Implement test cases - *(memory)* Implement test cases - *(storage)* Implement storage test cases - *(hex)* Implement test cases - *(memory)* Import utils hex function - *(stack)* Add dup and swap test cases - *(storage)* Implement test cases - *(vm)* Add partially covered test cases - *(vm)* Update test cases - *(vm)* Update test cases - *(vm)* Implement KECCAK256 test case - *(vm)* Update test suites - *(cli)* Implement initialization test case - *(history)* Implement test cases - *(history)* Update test cases - *(bytes32)* Implement test cases - *(vm)* Add missing STOP opcode test - Add `common` module - Implement integration test ### โš™๏ธ Miscellaneous Tasks - Add Cargo.lock - Add stack and lexer - Remove stack.rs - Add CHANGELOG.md - Update lib.rs - Update CHANGELOG.md - Update CHANGELOG.md - Add cliff.toml - Update CHANGELOG.md - Update CHANGELOG.md - Update error.rs - Update CHANGELOG.md - Update main.rs - Add keccak-hash crate - Update CHANGELOG.md - Add new VmError - Update vm.rs - Update CHANGELOG.md - Add clap dependency - Update main.rs - Update CHANGELOG.md - Add hex crate - Update CHANGELOG.md - *(vm)* Remove history functions - Update main.rs - *(memory)* Add unsafe comments - Update CHANGELOG.md - Implement basic integration file - Update ci.yml - Add license - Update Cargo.toml - Update Cargo.toml - Update README.md - Add CHANGELOG.md - Add app basics to README.md - Update Cargo.toml