diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..098c2f95 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,36 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: bug +assignees: '' + +--- + +**Version** +List the versions of all `ethers-rs` crates you are using. The easiest way to get +this information is using `cargo-tree`. + +`cargo install cargo-tree` +(see install here: https://github.com/sfackler/cargo-tree) + +Then: + +`cargo tree | grep ethers` + +**Platform** +The output of `uname -a` (UNIX), or version and 32 or 64-bit (Windows) + +**Description** +Enter your issue details here. +One way to structure the description: + +[short summary of the bug] + +I tried this code: + +[code sample that causes the bug] + +I expected to see this happen: [explanation] + +Instead, this happened: [explanation] diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..982a4dc0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: feature-request +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md new file mode 100644 index 00000000..445ecc99 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.md @@ -0,0 +1,10 @@ +--- +name: Question +about: Please use the Telegram group for questions +title: '' +labels: '' +assignees: '' + +--- + +Please post your question as a discussion in Telegram: https://t.me/ethers_rs diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..f69e4c9b --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,26 @@ + + +## Motivation + + + +## Solution + + diff --git a/README.md b/README.md index c71bb97e..facf414f 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,55 @@ -# ethers.rs +#

ethers.rs

-Complete Ethereum wallet implementation and utilities in Rust (with WASM and FFI support). +**Complete Ethereum wallet implementation and utilities in Rust** + +[![CircleCI](https://circleci.com/gh/circleci/circleci-docs.svg?style=svg)](https://circleci.com/gh/circleci/circleci-docs) + +## Documentation + +Extensive documentation and examples are available [here](docs.rs/ethers). + +Alternatively, you may clone the repository and run `cd ethers/ && cargo doc --open` + +## Add ethers-rs to your repository + +```toml +[dependencies] + +ethers = { git = "github.com/gakonst/ethers-rs" } +``` + + ## Features -- [x] User friendly transaction APIs -- [x] Type-safe EIP-155 transactions +- [x] Ethereum JSON-RPC Client +- [x] Interacting and deploying smart contracts +- [x] Type safe smart contract bindings code generation - [x] Querying past events -- [ ] Event Monitoring -- [ ] Deploy and interact with smart contracts -- [ ] Type safe smart contract bindings -- [ ] Hardware wallet support -- [ ] CLI for creating transactions, interacting with contracts, generating bindings from ABIs (abigen equivalent), ... -- [ ] ... +- [x] Event monitoring as `Stream`s +- [x] ENS as a first class citizen +- [ ] Websockets / `eth_subscribe` +- [ ] Hardware Wallet Support +- [ ] WASM Bindings +- [ ] FFI Bindings +- [ ] CLI for common operations -## Directory Structure +## Getting Help -## Acknowledgements +First, see if the answer to your question can be found in the [API documentation](docs.rs/ethers). If the answer +is not there, try opening an [issue](https://github.com/gakonst/ethers-rs/issues/new) with the question. -This library would not have been possibly without the great work of the creators of [`rust-web3`]() and [`ethcontract-rs`]() +## Contributing -A lot of the code was inspired and adapted from them, to a unified and opinionated interface. -That said, Rust-web3 is ~9k LoC (tests included) and ethcontract-rs is 11k lines, -so in total about 20k lines of code with tests. This library is xxx LoC. +Thanks for your help improving the project! We are so happy to have you! We have +[a contributing guide](https://github.com/gakonst/ethers-rs/blob/master/CONTRIBUTING.md) to +help you get involved in the ethers-rs project. + +## Related Projects + +This library would not have been possibly without the great work done in: +- [`rust-web3`](https://github.com/tomusdrw/rust-web3/) +- [`ethcontract-rs`](https://github.com/gnosis/ethcontract-rs/) + +A lot of the code was inspired and adapted from them, to a unified and opinionated interface, +built with async/await and std futures from the ground up.