Skip to main content

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:

  1. Have an Ethereum account for testing purposes. Create one with metamask if you don't have
  2. Have access to Ethereum node (to testnet like Ropsten for testing purposes). Create Infura accaunt account if you don't have, it is free
  3. 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>"
  1. Generate erc20 token interface as shown above

  2. Run python3 -m generated.erc20_cli -h to make sure you have generated files correctly

  3. 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

  4. Check if conract deployed:

    python3 -m generated.erc20_cli call name -c <Deployed contract address>
    

    It should print name of token.

  5. 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.

  6. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

moonworm-0.1.0.tar.gz (74.3 kB view hashes)

Uploaded Source

Built Distribution

moonworm-0.1.0-py3-none-any.whl (95.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page