Skip to content

XYOracleNetwork-v1/tool-dapploy-nodejs

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