Getting Started

Introduction

TronBox is a development environment and framework for blockchains using the TRON Virtual Machine. TronBox provides the following core functionalities:

  • Smart contract compilation
  • Migration (deployment on the network)
  • Testing

Installation

OS requirement

  • NodeJS 5.0+
  • Windows, Linux, or Mac OS X
npm install -g tronbox

📘

Installation permissions issue

If the command in the shell fails due to a permission issue, please follow this command to install again: sudo npm install -g tronbox --unsafe-perm=true --allow-root --save-dev grunt
If you still have permission issues, you can try to use nvm to manage nmp and node and install again.

📘

Note on Windows

For Windows, the best way to run TronBox is to install an Ubuntu subsystem: https://docs.microsoft.com/en-us/windows/wsl/install-win10. After running Ubuntu from the prompt, proceed as usual. It is not recommended to run TronBox from Powershell.

Initialize a Tron-Box Project

Enter the following command under an empty folder

tronbox init
ls
.gitignore		contracts		migrations		test			tronbox-config.js	tronbox.js
./contract./migrations./test./tronbox.js
The directory storing all smart contract files.The directory storing all javascript files for migration.The directory storing all test scripts for testing the smart contract.The configuration file of the project. Declare your Full Node address and Event Server in this file.

Basic Commands

CommandUsage
tronbox compileCompiles all the smart contracts. The compiled result is stored into ./build/contracts.

This command only compiles files that have been modified since the last compile.
tronbox compile --compile-allRe-compiles all the smart contracts.
tronbox migrateDeploys the contract. This command only migrates changes since the last successful migration.
tronbox migrate --resetRe-migrates all the smart contracts.
tronbox test [test_script_path]Runs all test scripts. Test file name definition is optional. It also can be run with --reset flag.
tronbox consoleThe console supports the tronbox command. For example, you can invoke migrate --reset in the console. The result is the same as invoking tronbox migrate --reset in the command.

Extra Features in TronBox Console

  1. All the compiled contracts can be used, just like in development & test, front-end code, or during script migration.

  2. After each command, the contract is re-loaded. After invoking the migrate--reset command, you can immediately use the new address and binary.

  3. Every returned command's promise is automatically logged. There is no need to use then(), which simplifies the command.