sagan-software / eosio-rust

EOSIO SDK for Rust – APIs for building smart contracts on EOSIO blockchains in Rust
https://sagan-software.github.io/eosio-rust/
Apache License 2.0
96 stars 20 forks source link

Need any help? #1

Closed michaelr524 closed 5 years ago

liamcurry commented 6 years ago

Help would be great! I didn't think anyone would find this repo yet but I'll work on some basic docs tomorrow.

Right now the short term goal is to translate the hello contract and the tic_tac_toe contract to Rust. That shouldn't be too difficult, but it is a decent goal and will require a lot of low-level setup work that can be used later to build higher level abstractions.

I've got the low-level bindings from eosiolib being automatically generated in the eosio_sys crate. All of the C API functions on the EOS developers reference page should be available in that crate.

Now work needs to be done to make these C APIs more usable, which will eventually mean porting most of the C++ code in eosiolib to Rust. But for now the C APIs are mostly fine for building a prototype. I think the two biggest missing pieces are:

  1. Reading action data (https://github.com/EOSIO/eosio.cdt/blob/c692723166bcc2d21b16f798b06b9c7b4abd8188/libraries/eosiolib/dispatcher.hpp#L65)
  2. Reading / writing to tables (https://github.com/EOSIO/eosio.cdt/blob/c692723166bcc2d21b16f798b06b9c7b4abd8188/libraries/eosiolib/multi_index.hpp)

Once we have solutions for those two issues we should be able to build crude working prototypes of the hello and tic_tac_toe contracts, and then start to revisit/refine the higher-level APIs.

liamcurry commented 6 years ago

I added some docs to the README here: https://github.com/sagan-software/rust-eos#contributor-quickstart

liamcurry commented 5 years ago

Hey @michaelr524 I moved the contributing docs to CONTRIBUTING.md. I also expanded on some of the goals for this project in README.md and have a longer example for how to get started writing EOS smart contracts in Rust. Improving docs and making an announcement post is my top priority right now so things should get better on this front soon. In the meantime I'm going to close this issue. Thanks!