Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mikeshultz/solidbyte
Development toolkit for creating Ethereum smart contracts
https://github.com/mikeshultz/solidbyte
Last synced: 17 days ago
JSON representation
Development toolkit for creating Ethereum smart contracts
- Host: GitHub
- URL: https://github.com/mikeshultz/solidbyte
- Owner: mikeshultz
- License: gpl-3.0
- Created: 2018-10-21T05:28:36.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-07-25T17:47:10.000Z (over 1 year ago)
- Last Synced: 2024-10-12T04:47:51.971Z (about 1 month ago)
- Language: Python
- Homepage: https://solidbyte.org
- Size: 44.9 MB
- Stars: 6
- Watchers: 3
- Forks: 0
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# solidbyte
[![Build Status](https://travis-ci.org/mikeshultz/solidbyte.svg?branch=master)](https://travis-ci.org/mikeshultz/solidbyte) [![Coverage Status](https://coveralls.io/repos/github/mikeshultz/solidbyte/badge.svg?branch=master)](https://coveralls.io/github/mikeshultz/solidbyte?branch=master) [![Documentation Status](https://readthedocs.org/projects/solidbyte/badge/?version=latest)](https://solidbyte.readthedocs.io/en/latest/?badge=latest)**NOTE**: This project was experimental and is no longer updated. You might be interested in checking out [Brownie](https://github.com/eth-brownie/brownie) or [Ape](https://github.com/ApeWorX/ape).
Development tools for creating Ethereum smart contracts.
Curious what a Solidbyte project looks like? Check out the [solidbyte-test-project](https://github.com/mikeshultz/solidbyte-test-project) repository.
### What makes Solidbyte different?
- **Local accounts** - Solidbyte can use the local accounts stored as Ethereum secretstore files located at `~/.ethereum/keystore`. You do not need to trust the node you are using to handle your private keys and risk opening your account with `personal.unlock`.
- **Python!** - Deploy scripts and tests are written using Python.
- **EthPM support** - Well, it's in progress and not usable yet, but... it probably will be at some point.
- **Vyper and Solidity support** - Contracts written in either language can co-exist side by side with eachother in your project.
- **Interactive python console** - Solidbyte provides a console with an insantiated Web3 object and your deployed contract instances. Have I mentioned Python yet?
- **Projcet templates** - You can initialize a project template with a single command that includes example deploy scripts, tests, and contracts. Right now only 'bare' and 'erc20' templates are available, but I hope to add more.
- **Contract testing with pytest** - Pytest is used for contract testing with some provided fixtures. Something something Python.
- **[eth_tester](https://github.com/ethereum/eth-tester/) support for testing** - It's super fast and really useful for first-pass testing.**NOTE**: Solidbyte has **only been tested on Linux**. If you use another OS, please consider testing and [submit an issue](https://github.com/mikeshultz/solidbyte/issues/new) for any bugs you find.
### What's in the future?
See the [roadmap](https://solidbyte.readthedocs.io/en/latest/devel/roadmap.html).
## Demo
Here's a brief demo (as of 2019-03-25) creating a new ERC20 token named MyToken:
## Contents
- [Documentation](https://solidbyte.readthedocs.io/)
- [Command Reference](https://solidbyte.readthedocs.io/en/latest/commands.html)
- [metafile.json](https://solidbyte.readthedocs.io/en/latest/metafile.html)
- [networks.yml](https://solidbyte.readthedocs.io/en/latest/networks.html)
- [SolidByte Development](https://solidbyte.readthedocs.io/en/latest/devel/index.html)## Quickstart
### 1) Install Solidbyte
Solidbyte requires some system-level libraries to be installed first. Make sure openssl/libssl and libffi headers are installed before proceeding. For more information, see the longer [installation docs](https://solidbyte.readthedocs.io/en/latest/install.html).
First, install solidbyte. The easiest way to do that is from [PyPi](https://pypi.org)
with `pip`.pip install solidbyte
### 2) Setup your project
To get your project going, create a directory for your project and change to it.
Most `sb` commands need to be run from the root of your project directory.mkdir myproject && cd myproject
sb initNow, all you should have a bare project structure created. You could also
`init` with [an available template](https://solidbyte.readthedocs.io/en/latest/templates.html),
but for the purposes of this doc, we're just going to create a bare structure.Your contracts should be in the `contracts` directory. Your Solidity or Vyper
contracts can be in any directory under it.The `deploy` directory will hold your [deployment scripts](https://solidbyte.readthedocs.io/en/latest/deployment.html).
And `tests` will contain your [contract unit tests](https://solidbyte.readthedocs.io/en/latest/testing.html).
The `build` directory probably doesn't exist yet. This will be created by
solidbyte when necessary.You can also create scripts to be run by Solidbyte in the `scripts` directory.
They must be implemented [according to the documentation](https://solidbyte.readthedocs.io/en/latest/script.html).