A fast, flexible and simple development environment framework for Ethereum smart contract, testing and deployment on Ethereum virtual machine(EVM). https://cobraframework.github.io
Project description
A fast, flexible and simple development environment framework for Ethereum smart contract, testing and deployment on Ethereum virtual machine(EVM).
With cobra you can get built-in smart contract compilation, linking, deployment, binary management, automated contract testing with Unittest and PyTest frameworks, scriptable deployment & migrations framework and network management for deploying to many public & private networks like INFURA or Ganache CLI.
Dependency
This library requires the solc
executable to be present.
Only versions >=0.4.2
are supported and tested though this library may work
with other versions.
- solc: Ethereum solidity compiler.
- ganache-cli: A command-line version of Ethereum blockchain server.
- pip: To install packages from the Python Package Index and other indexes.
- python3: version 3.6 or greater.
Installation
PIP to install cobra globally. For Linux sudo may be required.
$ pip install py-cobra
Development
We welcome pull requests. To get started, just fork this repo, clone it locally, and run:
$ pip install -e . -r requirements.txt
Quick Usage
Initialize project structure
A default set of contract and tests, run the following command:
$ cobra init
Get help:
$ cobra --help
From there, you can run cobra compile
, cobra deploy/migrate
and cobra test --unittest/--pytest
to compile your contracts, deploy those contracts to the network, and run their associated unit tests.
advanced cobra.yaml
compile:
solidity_path: "./contracts" # global
artifact_path: "./build/contracts"
contracts: [
contract: {
solidity: "Contract.sol",
solidity_path: "./contracts/libs", # detail
import_remappings: [
"=/path/folder/contracts/"
],
allow_paths: [
"/path/folder/contracts/"
]
}
]
deploy:
artifact_path: "./build/contracts/"
contracts: [
contract: {
artifact: "Contract.json",
links: ["Contract.json"]
}
]
test:
artifact_path: "./build/contracts/"
test_paths: ["./tests"]
contracts: [
contract: {
artifact: "Contract.json",
links: ["Contract.json"]
}
]
network:
development: {
url: "https://ropsten.infura.io/...",
host: "localhost",
port: 8545,
hdwallet: {
mnemonic: "decide adjust legend nation type same task aim rigid lucky guilt close", # or
seed: "decide adjust legend nation type same task aim rigid lucky guilt close",
password: "meherett",
private: "5f8935bb3b61b312ba1114cbf6f1ea30102383f2b043a1b213aa482132d25049",
gas: 3000000,
gas_price: 1000000
},
protocol: "HTTP", # HTTP, HTTPS, WS(WebSocket) and ICP
account: {
address: "0x6a373a75c388ac2d160f1d2b6d9ada34f29831cd",
gas: 3000000,
gas_price: 1000000
}
}
Testing
Tests are still under development.
You can run the tests with:
$ pytest tests
Or use tox
to run the complete suite against the full set of build targets, or pytest to run specific
tests against a specific version of Python.
Meta
Meheret Tesfaye – @meherett – meherett@zoho.com
Distributed under the MIT license. See LICENSE
for more information.
License
This project is licensed under the MIT License - see the LICENSE file for details
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file py-cobra-0.1.0.tar.gz
.
File metadata
- Download URL: py-cobra-0.1.0.tar.gz
- Upload date:
- Size: 23.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 610c44ee9ece7d56a42a4486eeba387e4bcafd81655d31a4d9f435a8c8e8e387 |
|
MD5 | 7b074f66b2128f9ceb68f84bcd6a348b |
|
BLAKE2b-256 | 975e5c8d0a1635678a65b133d534ab6d70976e83faf1827a6cec96319d3d4f37 |
File details
Details for the file py_cobra-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: py_cobra-0.1.0-py3-none-any.whl
- Upload date:
- Size: 29.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76e5c67a05d410618adf1154b4c17dba8666e8a9c345f462170e029c8ad9e505 |
|
MD5 | f8412fe008d2577ca5b62e9b92489c66 |
|
BLAKE2b-256 | f846aaf0bbdd70d618507132a0ce37bf8ff7524b772286278376daa3f59545a8 |