morge

Crates.iomorge
lib.rsmorge
version0.1.2
sourcesrc
created_at2022-06-29 13:45:43.360117
updated_at2022-06-30 08:02:25.031466
description A batch of solidity contracts deployment tool implementation in Rust.
homepage
repositoryhttps://github.com/yuliyu123/morge
max_upload_size
id615455
size138,483
yuliyu123 (yuliyu123)

documentation

README

Description

A batch of solidity contracts deployment tool developed by rust, support Ethereum and Celo and other evm-compatible chains.

Requirements

Running this project and tests require the following installed:

solc (>=0.8.10). We also recommend using solc-select for more flexibility.

anvil

geth

Installation

Run the following command directly to install from crates.io.

cargo install morge

Installing from Source

cargo install --git https://github.com/yuliyu123/morge

Usage

Initialize morge to create config file under .morge directory:

morge init

Set rpc url and private key:

morge set --rpc-url $RPC_URL --private-key $PRI_KEY

Add any numbers of contracts that you want to deploy:

morge add -c examples/contract.sol:SimpleStorage --args "value"

Remove any contract that you want to delete:

morge remove -c examples/contract.sol:SimpleStorage

List configuration:

morge list

Start deploy:

morge deploy

Clear configuration:

morge clean

Verify transaction execution status by specify chainnet and transaction hash:

morge verify -c rinkeby -t 0xc6e08d3b5b1077f4662907fa547fab34bac033a0501655aca0b903057c118da8

Contributing

First of all, thanks for contributing to this project! This project adheres to the Rust Code of Conduct. This code of conduct describes the minimum behavior expected from all contributors. All kinds of issues, features and PR is welcome.

Build & Test

build: cargo build

test: cargo test -- --test-threads=1

Todo

Memory optimization

Log optimization

Multi-threads async deploy contracts

Improving tests coverage

Calling deployed contract method

Supporting user-defined mainnet api key

Commit count: 28

cargo fmt