Metadata-Version: 2.1
Name: warfle-deploy-cli
Version: 1.0.0
Summary: Easy to use command line deployer for smart contracts.
Home-page: https://www.github.com/egesabanci/warfle
Author: Ege Sabanci
Author-email: egesabanci@outlook.com.tr
License: MIT
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Description-Content-Type: text/markdown
Requires-Dist: Pygments (==2.11.2)
Requires-Dist: SecretStorage (==3.3.1)
Requires-Dist: aiohttp (==3.8.1)
Requires-Dist: aiosignal (==1.2.0)
Requires-Dist: async-timeout (==4.0.2)
Requires-Dist: attrs (==21.4.0)
Requires-Dist: base58 (==2.1.1)
Requires-Dist: bitarray (==1.2.2)
Requires-Dist: bleach (==4.1.0)
Requires-Dist: certifi (==2021.10.8)
Requires-Dist: cffi (==1.15.0)
Requires-Dist: charset-normalizer (==2.0.12)
Requires-Dist: colorama (==0.4.4)
Requires-Dist: cryptography (==36.0.2)
Requires-Dist: cytoolz (==0.11.2)
Requires-Dist: docutils (==0.18.1)
Requires-Dist: eth-abi (==2.1.1)
Requires-Dist: eth-account (==0.5.7)
Requires-Dist: eth-hash (==0.3.2)
Requires-Dist: eth-keyfile (==0.5.1)
Requires-Dist: eth-keys (==0.3.4)
Requires-Dist: eth-rlp (==0.3.0)
Requires-Dist: eth-typing (==2.3.0)
Requires-Dist: eth-utils (==1.10.0)
Requires-Dist: fire (==0.4.0)
Requires-Dist: frozenlist (==1.3.0)
Requires-Dist: hexbytes (==0.2.2)
Requires-Dist: idna (==3.3)
Requires-Dist: importlib-metadata (==4.11.3)
Requires-Dist: ipfshttpclient (==0.8.0a2)
Requires-Dist: jeepney (==0.7.1)
Requires-Dist: jsonschema (==3.2.0)
Requires-Dist: keyring (==23.5.0)
Requires-Dist: lru-dict (==1.1.7)
Requires-Dist: multiaddr (==0.0.9)
Requires-Dist: multidict (==6.0.2)
Requires-Dist: netaddr (==0.8.0)
Requires-Dist: packaging (==21.3)
Requires-Dist: parsimonious (==0.8.1)
Requires-Dist: pkginfo (==1.8.2)
Requires-Dist: protobuf (==3.19.4)
Requires-Dist: py-solc-x (==1.1.1)
Requires-Dist: pycparser (==2.21)
Requires-Dist: pycryptodome (==3.14.1)
Requires-Dist: pyparsing (==3.0.7)
Requires-Dist: pyrsistent (==0.18.1)
Requires-Dist: readme-renderer (==34.0)
Requires-Dist: requests-toolbelt (==0.9.1)
Requires-Dist: requests (==2.27.1)
Requires-Dist: rfc3986 (==2.0.0)
Requires-Dist: rlp (==2.0.1)
Requires-Dist: semantic-version (==2.9.0)
Requires-Dist: six (==1.16.0)
Requires-Dist: termcolor (==1.1.0)
Requires-Dist: toolz (==0.11.2)
Requires-Dist: tqdm (==4.63.0)
Requires-Dist: twine (==3.8.0)
Requires-Dist: urllib3 (==1.26.9)
Requires-Dist: varint (==1.0.2)
Requires-Dist: web3 (==5.28.0)
Requires-Dist: webencodings (==0.5.1)
Requires-Dist: websockets (==9.1)
Requires-Dist: yarl (==1.7.2)
Requires-Dist: zipp (==3.7.0)

<div align = "center" style = "width: 250px; height: auto;">
  <img src = "https://raw.githubusercontent.com/egesabanci/warfle/master/assets/warfle-logo.png?token=GHSAT0AAAAAABMKUTO2SAO7QKJK6OBB5EHGYSED6IA" />
</div>

<div style = "display: flex;">
  <img src = "https://img.shields.io/badge/Python-FFD43B?style=for-the-badge&logo=python&logoColor=blue" />
  <img src = "https://img.shields.io/badge/Solidity-e6e6e6?style=for-the-badge&logo=solidity&logoColor=black" />
</div>

# Overview
Warfle is an easy-to-use command-line interface for deploying smart contracts without any deep configurations.

### Important Note
In the current version, ``Warfle does not supports the public mainnet or testnet deployment`` but in the further versions, We will add this feature.

# Installation
Install from the with the ``setup`` file of the project:
```
>>> git clone https://www.github.com/egesabanci/warfle
```
```
>>> cd warfle/
>>> pip install .
```

# Example Usage
Let's say, we have a following smart contract:

```solidity
// Test.sol

pragma solidity >=5.0.1;

contract Test {
  string public greet;

  function setGreet(string memory text) public returns (bool) {
    greet = text;
    return true;
  }

  function greet() public view returns (string) {
    return greet;
  } 
}
```

###### Step 1:
Now, We want to deploy that contract with ``Warfle``. Firstly we need to initialize ``Warfle`` to the current working folder:

```
>>> warfle init
```
This command will create a ``.warfle`` configuration file to the current path. ``.warfle`` file contains:

```
{
	"rpc": "http://127.0.0.1:7545",
	"public": <YOUR WALLET PUBLIC KEY>
}
```

###### Step 2 (Optional):
If we want to update the configurations, We can simple use the ``warfle update`` command.

**Example usage:**
```
>>> warfle update KEY
```
``key`` argument must be ``rpc`` or ``public``. You can not add any other argument to the ``.warfle`` configuration file.

###### Step 3:
Then, We need to compile our smart contract with the ``warfle compile`` command. This command will create a new ``source`` folder to the current path. ``./source`` will contains 2 files: ``ABI of the contract (*.abi)`` and ``Bytecode of the contract (*.bin)``. In our case, ``./source`` will contains: ``Test.abi`` and ``Test.bin``:


**Example:**
```
>>> warfle compile Test.sol
```

###### Step 4:
Now, We are ready to deploy our contract with the ``warfle deploy`` command:
```
>>> warfle deploy <PATH TO ABI> <PATH TO BIN>
```
In our case:
```
>>> warfle deploy source/Test.abi source/Test.bin
```

# License
[MIT](https://github.com/egesabanci/warfle/blob/master/LICENSE.md) © Ege Sabanci egesabanci@outlook.com.tr

