elephantdexdice v2.1.6
Harmony Box
Harmony Box is a Truffle box that will get you quickly up and running deploying smart contracts on Harmony using Truffle & native Ethereum tooling.
Getting started
Truffle
If you have Truffle installed globally:
(Until the box has been approved by Truffle you have to rely on the git installation step below)
mkdir harmony && cd harmony
truffle unbox harmonyOr if you want to install via git:
git clone https://github.com/harmony-one/harmony-box.git
cd harmony-box.env
Copy .env-example to .env:
cp .env-example .envModify .env and replace "ENTER_PRIVATE_KEY_HERE" for each network with the respective private key you want to use when deploying contracts.
Dependencies
Install all required dependencies using yarn:
yarn installThe dependencies installed are the following:
- truffle: if you want to use a local installation rather than a global installation
- solc: Solidity compiler
- @trufflesuite/web3-provider-engine: framework for composing custom web3 providers
- ethereumjs-wallet: a lightweight Ethereum wallet implementation
- @openzeppelin/contracts: industry standard smart contract templates
- dotenv: .env file parsing library
Compilation
Globally installed Truffle:
truffle compileLocally installed Truffle:
node_modules/.bin/truffle compileMigration
The Harmony Box comes pre-configured with three separate networks:
- Localnet (http://localhost:9500)
- Testnet (https://api.s0.b.hmny.io)
- Mainnet (https://api.s0.t.hmny.io)
To deploy your contracts to these networks, you can run the following:
Globally installed Truffle:
truffle migrate --reset --skip-dry-run --network localnet
truffle migrate --reset --skip-dry-run --network testnet
truffle migrate --reset --skip-dry-run --network mainnetLocally installed Truffle:
node_modules/.bin/truffle migrate --reset --skip-dry-run --network localnet
node_modules/.bin/truffle migrate --reset --skip-dry-run --network testnet
node_modules/.bin/truffle migrate --reset --skip-dry-run --network mainnetTesting
Globally installed Truffle:
truffle testLocally installed Truffle:
node_modules/.bin/truffle testAttribution
private-provider.js was originally ported from Moonbeam's Truffle Box.
