This repo hold all the genesis contracts on Binance Smart chain. More details in doc-site.
Install dependency:
npm install
Node: v12.18.3 Truffle: Truffle v5.1.31 Solc: 0.6.4+commit.1dca32f3.Darwin.appleclang Ganache-cli: v6.10.1
Generate contracts for testing:
# the first account of ganache
node generate-system.js --mock true --network local
node generate-systemReward.js --mock true
node generate-validatorset.js --mock true
node generate-slash.js --mock true
node generate-crosschain.js --mock true
node generate-tokenhub.js --mock true
node generate-relayerhub.js --mock true
node generate-tendermintlightclient.js --mock true
node generate-relayerincentivizecontract.js --roundSize 30 --maximumWeight 3 --mock true
Start ganache:
ganache-cli --mnemonic 'clock radar mass judge dismiss just intact mind resemble fringe diary casino' --gasLimit 100000000 -e 10000 --allowUnlimitedContractSize
Run truffle test:
truffle compile
truffle migrate
truffle test
Run hardhat test:
npx hardhat compile
npx hardhat test
Flatten all system contracts:
npm run flatten
- Edit
init_holders.js
file to alloc the initial BNB holder. - Edit
validators.js
file to alloc the initial validator set. - Edit
generate-validatorset.js
file to changefromChainId
andtoChainId
, - Edit
generate-tokenhub.js
file to changerefundRelayReward
,minimumRelayFee
andmaxGasForCallingBEP20
. - Edit
generate-tendermintlightclient.js
file to changechainID
andinitConsensusStateBytes
. - run
node generate-genesis.js
will generate genesis.json
The library is licensed under the Apache License, Version 2.0, also included in our repository in the LICENSE file.