moonworm: Generate a command line interface to any Ethereum smart contract
Project description
Moonworm
Generate command line and a python interface to any Ethereum smart contract
Installation
from pip:
pip install moonworm
from github:
git clone https://github.com/bugout-dev/moonworm.git
cd moonworm/
create virtual env: python3 -m venv .venv
activate virtual env: source .venv/bin/activate
install: python3 -m setup.py install
Usage
Requirements:
In order to have ability to deploy/transact smart contracts:
- Have an Ethereum account for testing purposes. Create one with metamask if you don't have
- Have access to Ethereum node (to testnet like Ropsten for testing purposes). Create Infura accaunt account if you don't have, it is free
- Some ether to use in your account. Use Ropsten faucet to get some ether in ropsten testnet
Generating cli and python interface:
To generate interfaces for moonworm token contracts:
ERC20:
moonworm generate --cli --interface -o generated/ --name erc20 --abi erc20
ERC721:
moonworm generate --cli --interface -o generated/ --name erc721 --abi erc721
To generate from given contract abi:
moonworm generate --cli --interface -o generated/ --name <Give a name> --abi <Path to abi>
Note: abi should be .json
file
Example of interacting with generated files:
Export MOONWORM_WEB3_PROVIDER_URI
variable to environment
export MOONWORM_WEB3_PROVIDER_URI="<Web3 provider uri>"
In case you are using Infura:
export MOONWORM_WEB3_PROVIDER_URI="https://ropsten.infura.io/v3/<Your infura project id>"
-
Generate erc20 token interface as shown above
-
Run
python3 -m generated.erc20_cli -h
to make sure you have generated files correctly -
Let's deploy :
python3 -m generated.erc20_cli deploy <Token name> <Token sumbol> <Token owner> -b generated/erc20_bytecode.bin
<Token name>
- Name of the token<Token symbol>
- Symbol of the token<Token owner>
- Owner of token, who has ability to mint new tokens. Put your address here
It will ask your account
private key
in order to submit deployment transaction. It will deploy contract and give you your contract address if everything goes well -
Check if conract deployed:
python3 -m generated.erc20_cli call name -c <Deployed contract address>
It should print name of token.
-
Let's mint some tokens to your address:
python3 -m generated.erc20_cli transact mint <Your address> <Amount of token to mint> -c <Deployed contract address>
It will ask your
private key
and confirmation to send transaction. -
Let's transfer some tokens: You can send me some tokens:
python3 -m generated.erc20_cli transact transfer 0xa75720c500ae1551c08074E5A9849EA92528401D <Amount of token to transfer> -c <Deployed contract address>
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
Hashes for moonworm-0.1.14-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9f7b04e82e8e868cb741b8367b80fbf36a1bb8adb0ed92f2178bab218782031 |
|
MD5 | bd702f0a8b92838c4d66a5b4308086e0 |
|
BLAKE2b-256 | 97c3272875596e0f302c57cdf457fbf2b28bcdeb859a034139c049d8e76d8e46 |