Skip to content

Fantom-foundation/solidity-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

solidity-rs

Rust: nightly License: MIT Build Status

Solidity to LLVM implementation in Rust.

Developer guide

Install the latest version of Rust. We tend to use nightly versions. CLI tool for installing Rust. Also install LLVM-7 development package.

We use rust-clippy linters to improve code quality.

There are plenty of IDEs and other Rust development tools to consider.

CLI instructions

# Install Rust (nightly)
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain nightly
# Install cargo-make (cross-platform feature-rich reimplementation of Make)
$ cargo install --force cargo-make
# Install rustfmt (Rust formatter)
$ rustup component add rustfmt
# Install clippy (Rust linter)
$ rustup component add clippy
# Install llvm-7 development package.
# NB: this command is for Ubuntu 18.04, adjust it according to your system
$ apt install llvm-7-dev
# Clone this repo
$ git clone https://github.com/Fantom-foundation/solidity-rs && cd solidity-rs
# Run tests
$ cargo test
# Format, build and test
$ cargo make

TODO

[ ] Add support for arbitrary size integers. [ ] Add support for arbitrary mantisa floating point numbers. [ ] Create a stack of events to push them to once emitted. [ ] Add support for dictionaries. [ ] Add support for dynamic size arrays. [ ] Add support for assembler expressions. [ ] Add support for storage specification in functions. [ ] Add support for importing other libraries. [ ] Add tests.

About

Solidity implementation in Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages