Skip to content

XYOracleNetwork-v1/tool-dapploy-nodejs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Phillip Lorenzo
Jan 29, 2020
96f95e6 · Jan 29, 2020
Jan 20, 2020
Oct 6, 2018
Sep 19, 2018
Feb 14, 2019
Apr 8, 2019
Jan 17, 2020
Oct 5, 2018
Sep 5, 2018
Sep 25, 2018
May 28, 2019
May 10, 2019
Jan 29, 2020
Mar 20, 2019
Oct 10, 2018
Jan 17, 2020
May 28, 2019
Jan 17, 2020

Repository files navigation

logo

dApploy

Maintainability DepShield Badge BCH compliance Sonarcloud Status Known Vulnerabilities

Table of Contents

Getting Started

Finally, you can deploy dApps in less than 5 seconds flat WITHOUT even lifting a finger... Guaranteed!

OK, you may have to lift a finger.

But here's the deal.

We've gone through the hoops of deploying dApps on the Ethereum Network and have nuked out all of the annoying parts to make dapployment a breeze.

Install

  1. Install from source to get access to the sample projects. Remember, 'YARN ALL THE THINGS' from the main project dir by running this:

    yarn && cd samples/sample-datavault-react/ && yarn && cd ../sample-datavault-solidity && yarn && cd ../..

  2. OR globally install Dapploy using:

yarn global add @xyo-network/tool-dapploy-nodejs
OR
npm install -g @xyo-network/tool-dapploy-nodejs

Usage

  1. Run dapploy -h to see the options:

    $> dapploy -h Usage: dapploy [options] [command]

    Options:

    -V, --version output the version number -t, --projectDir

    Truffle Project Directory -n, --network [network] Deploy to network (default: development) -c, --config Config file (default: .dapploy) -o, --contractOutput Contract Output Directory -x, --excludeContracts [Contract1,Contract2] Exclude contracts from the web3 interface (files are still copied) -a, --includeContracts [Contract1,Contract2] Include contracts from the web3 interface (files are still copied) -l, --clean Clean contracts before migrating -r, --remoteOnly Only copy contracts remote -p, --pinToIpfs Pin contracts to IPFS for remote -P, --postSaveToIpfs Save contracts to IPFS for remoteaccess after migrating -k, --bucketName Do remote copy of ABI to aws bucket (make sure to setup ~/.aws) -y, --copyOnly Only do folder copy and S3 copy -i, --init Add default config file to current directory -h, --help output usage information

    $> dapploy init -h Usage: init [options] [dir]

    Configure a new truffle project from scratch

    Options:

    -g, --configOnly Create dapploy config file in current directory -s, --specifyContract [contract] Which type of project to create. Supporting: [ERC20, ERC721] (default: ERC20) -h, --help output usage information

  2. If you did not add dapploy globally with '-g', Add dapploy alias to run from any project in your bash_profile:

    echo "alias dapploy="/<path_to_project>/tool-dapploy-nodejs/dapploy""| cat >> .bash_profile

Creating a smart contract

dapploy init - create a new smart contract project

  1. Create a new ERC20 project using dapploy:

    dapploy init my-first-coin -s ERC20 cd my-first-coin

  2. Make sure Ganache is downloaded, installed and open: Download and install Ganache from their site

  • Click the Gear Icon thingy ( ⚙️ ) to open Preferences... Make sure that port is set to 8545.
  1. Dapploy from root directory
  • if you have alias setup for dapploy, just run

    dapploy

  • otherwise run

    </path/to>/dapploy

Congrats, you just built your first ERC-20 Token! Head on over to Dapper to play with it in a web-ui

dApploy an ABI to IPFS

dapploy -p

 $ Contracts stored to IPFS QmZ2Ezv4nsQ5tqGoHz4pUxa9GW88TWKMSzdxdMfxsHerWT
 $ View contracts at https://ipfs.xyo.network/ipfs/QmZ2Ezv4nsQ5tqGoHz4pUxa9GW88TWKMSzdxdMfxsHerWT

dApploy to public testnet or mainnet

  1. Sign up for Infura

  2. Install MetaMask from their site

  • Sign into Metamask and change Network on Metamask to kovan/ropsten/mainnet
  1. Add your metamask wallet and infura data to env.template file:

    WALLET=// wallet used to deploy contracts INFURA_API_KEY=// API key you get from infura MNENOMIC=// 12 word pass key from derived from your wallet private key

  2. Move env.template to .env (this file is already in your .gitignore)

    mv env.template .env

  3. Using kovan, run

    dapploy -n kovan

Ropsten:

dapploy -n ropsten

NOTE You don't need to specify -n network if you change .dapploy configuration file in your project from network=development to network=kovan etc.

vi .dapploy

If you are feeling adventurous run a local testnet node:

Ropsten testnet node setup (Geth)

Kovan testnet node setup (Parity)

Multiple Browser Support

  1. Setup account with portis.io

  2. Add Portis and Infura key to .dapploy

    vi .dapploy

Uncomment:

# [Portis]
# portisApiKey=<API_KEY>
# infuraApiKey=<INFURA_API_KEY>

Use S3 to host your ABI

  1. Confugure your AWS credentials in terminal by creating credentials file. S3 credential instructions here:

    vi ~/.aws/credentials [default] aws_access_key_id = AKIAIFYQ4UEUUJ6GDH6A aws_secret_access_key = FAKEasdfas=aqewrasdfa/sdfasdfasdfasdfFAKE

  2. Configure dapploy

    vi .dapploy

Uncomment:

#[AWS]
#bucketName=layerone.smart-contracts
#remotePath=ABI

License

See the LICENSE file for license details.

Credits

Made with 🔥and ❄️ by XYO