An open API service indexing awesome lists of open source software.

https://github.com/tronprotocol/tronbox

TronBox - Simple development framework for tronweb
https://github.com/tronprotocol/tronbox

Last synced: about 1 year ago
JSON representation

TronBox - Simple development framework for tronweb

Awesome Lists containing this project

README

          



TronBox

# TronBox

TronBox is a tool for developing, testing, and deploying smart contracts. It is designed for blockchains using the TRON Virtual Machine (TVM).

- Built-in smart contract compilation, linking, deployment, and binary management.
- External script runner that executes scripts within a TronBox environment.
- Interactive console for direct contract communication.
- Automated contract testing for rapid development.
- Scriptable, extensible deployment & migrations framework.
- Network management for deploying to any number of public & private networks.

TronBox is a fork of [Truffle](https://www.trufflesuite.com/truffle).

## Quick Start

### Install

Before you can use TronBox, install it using the npm command. For details, see [Install TronBox](https://developers.tron.network/reference/install).

```
$ npm install -g tronbox
```

_Note: To verify the PGP signature, see [here](https://github.com/tronprotocol/tronbox/blob/master/FURTHER_INFO.md#verifying-the-pgp-signature)._

### Create a default Tron-Box Project

You can create a bare project without smart contracts, run:

```
$ tronbox init
```

Once this operation is completed, you'll now have a project structure with the following items:

`contracts/`: Directory for Solidity contracts

`migrations/`: Directory for scriptable deployment files

`test/`: Directory for test files for testing your application and contracts

`tronbox.js`: TronBox configuration file

For those getting started, you can use TronBox Boxes, which offers example applications and project templates. For details, see [Create a TronBox Project](https://developers.tron.network/reference/create-a-tronbox-project).

### Compile

If you want to only compile, run:

```
$ tronbox compile
```

To compile all contracts, use the `--compile-all` option.

Specify a network using the `--network` option. Network name must exist in the configuration. For details, see [Compile a Project](https://developers.tron.network/reference/compile-a-contract).

### Migrate

To deploy our smart contracts, you need to connect to a blockchain. Use the **TronBox Runtime Environment** to create and interact with the blockchain. For details, see [Contract Deployment (Migrations)](https://developers.tron.network/reference/contract-deploymentmigrations).

To run your migrations, run the following:

```
$ tronbox migrate
```

### Test

To run all tests, run:

```
$ tronbox test
```

Alternatively, you can specify a path to a specific file you want to run: `tronbox test ./path/to/test/file.js`. For details, see [Test Your Contracts](https://developers.tron.network/reference/test-your-contracts).

### Interact with the contract

To interact with the contract, run:

```
$ tronbox console
```

You will see the following prompt:

```
$ tronbox(development)>
```

The name in the parentheses of the prompt `tronbox(development)>` is the network that is currently connected to. For details, see [Interact with a Contract](https://developers.tron.network/reference/interact-with-a-contract).

# Integrity Check

- The package files will be signed using a GPG key pair, and the correctness of the signature will be verified using the following public key:

```
pub: 82C1 BB84 1BFA FD01 9CA6 1ACB E98F C329 87F3 BF76
uid: dev@tronbox.io
```

## Development

To dive deeper into advanced topics of the TronBox project lifecycle, please see the [Official TronBox Documentation](https://developers.tron.network/reference/what-is-tronbox) for guides, tips, and examples.

To contribute, see [CONTRIUTING.MD](https://github.com/tronprotocol/tronbox/blob/master/CONTRIBUTING.md).