The 0xcert Framework is a mono repository with all framework-related packages stored in the /packages
folder.
We use RushJS to manage this repository. Some quick notes on how to manage the repository are documented here. But here is a quick start to run the test suite if you have just cloned this repository and never used RushJS before. Expect to spend 10 minutes building and running this test suite for the first time. Subsequently testing any code will be faster, and you can limit testing to a specific package.
On Mac OS, install development tools by running xcode-select --install
and follow the instructions here if you experience issues with node-gyp
.
Install dependencies -- You only need to run this once.
npm install -g @microsoft/rush
Update packages -- Run this if you add/remove packages from this repository.
rush update --full
Rebuild and test -- Do this each time you make changes to the code
rush rebuild --verbose
rush test --verbose
The above notes will help you decide which commands to run during development on your own machine. But for any commits and pull requests in this repository, the entire test suite will be run using continuous integration.
We use GitHub issues to track bugs. Please ensure your description is clear and has sufficient instructions so that we can reproduce the issue.
Always fork the repository and create your branch from master. If you've added code that should be tested, add tests. Also, ensure the test suite passes before submitting the PR.
Please follow the TypeScript coding guidelines.
- Run the commands below to push all packages to NPM:
$ rush version --bump --override-bump minor
$ rush update --full
$ rush rebuild
$ rush test
$ rush publish --publish --include-all
- Deploy conventions to
conventions.0xcert.org
. We host v1 and v2 conventions on the same domain so make sure you don't delete the old content. Note that v2 conventions are built from the active master branch and v1 conventions are copied fromcommon/conventions-v1
folder.
$ cd ./common/scripts
$ ./build-conventions.sh
$ cd ../..
- Follow the guide in the 0xcert/docs repository to update and deploy the documentation. Make sure documentation pages describe the latest schemas.
Fueling 0xcert framework is the 0xcert protocol which consists for multiple smart contracts which are located in 0xcert/ethereum-gateway-contracts
and 0xcert/ethereum-proxy-contracts
packages. To automate deployment and configuration of this contracts we created a deploy script. Deploy script(deploy-protocol.sh
) is located in common/scripts/
.
Depending on which network you want to deploy (Ethereum / Wanchain) you need a running node of the network with 2 unlocked accounts which own their designated cryptocurrencies(ETH/WAN). To find out how to do this you can check this tutorial for Ethereum network and this for Wanchain.
Navigate to /common/scripts
then deploy the protocol:
GATEWAY_DEPLOYER_ACCOUNT=0x... PROXY_DEPLOYER_ACCOUNT=0x... ./deploy-protocol.sh
** List of possible input parameters **
Key | Description |
---|---|
GATEWAY_DEPLOYER_ACCOUNT | A string representing the Ethereum address from which gateway contracts will be deployed. |
NETWORK | A string representing the name of the network to which we are deploying. Can be either ethereum or wanchain . It is ethereum by default. |
PROXY_DEPLOYER_ACCOUNT | A string representing the Ethereum address from which proxy contracts will be deployed. |
WEB3_URL | A string representing URI to you node. http://localhost:8545 by default. |