Releases: icanvardar/cubipods
Releases · icanvardar/cubipods
Cubipods v0.1.1
🔄 Refactor:
- Refactored the stack implementation to allocate on the heap instead of using the built-in
Vector
, improving memory handling and performance.
🛠️ Fixes:
- Fixed various issues related to stack functions, ensuring more reliable and efficient stack operations.
📄 Miscellaneous:
- Updated
CHANGELOG.md
to reflect these changes.
Cubipods v0.1.0 - Initial Release with EVM Bytecode Execution
Cubipods v0.1.0 marks the initial release of this minimal Ethereum Virtual Machine (EVM) written in Rust. This version introduces a robust set of features designed to efficiently execute and analyze EVM bytecode, providing a solid foundation for further development.
🚀 New Features:
- Instruction Handling: Added
InstructionType
enum and support for new opcodes. Introduced key modules such aslexer.rs
andvm.rs
. - Stack, Memory, and Storage Management: Implemented the foundational structures (
Stack
,Memory
, andStorage
) with essential functions. Enhanced stack operations withdup
andswap
. - Bytecode Conversion: Introduced conversion functions in
hex.rs
and implemented thebytes32
module with arithmetic operations. - Command-Line Interface (CLI): Added command-line operations, including support for a
verbose
argument. - Error Handling: Integrated custom error handling for VM and history operations, enhancing robustness and debugging.
- History Tracking: Developed a comprehensive history module, including field functions and an
analyze
function for improved traceability.
🐛 Bug Fixes:
- Addressed issues with byte-to-string conversion and corrected the KECCAK256 opcode function.
🚜 Refactor:
- Streamlined error handling, memory, and stack operations. Updated error outputs, struct macros, and implemented the
Debug
trait across modules.
📚 Documentation:
- Added safety documentation for unsafe memory functions.
🎨 Styling:
- Improved code readability by removing redundant macros, renaming modules, and addressing Clippy warnings.
🧪 Testing:
- Implemented extensive test cases across all modules, including stack, memory, storage, and CLI operations. Added integration tests to ensure comprehensive coverage.
⚙️ Miscellaneous Tasks:
- Updated dependencies, added necessary crates (
keccak-hash
,clap
), and refined project configurations (Cargo.toml
,ci.yml
).
Cubipods v0.1.0 establishes a lightweight and efficient platform for running EVM bytecode, offering detailed output for stack, memory, and storage states post-execution.