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
- Host: GitHub
- URL: https://github.com/tronprotocol/tronbox
- Owner: tronprotocol
- License: mit
- Created: 2019-05-07T21:58:55.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2025-03-13T09:45:47.000Z (over 1 year ago)
- Last Synced: 2025-04-15T02:15:23.751Z (about 1 year ago)
- Language: JavaScript
- Size: 42.4 MB
- Stars: 176
- Watchers: 13
- Forks: 98
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# 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).