/bsc-genesis-contract

The genesis contracts of Binance Smart Chain.

Primary LanguageJavaScriptOtherNOASSERTION

bsc-genesis-contracts

This repo hold all the genesis contracts on Binance Smart chain. More details in doc-site.

Disclaimer

The software and related documentation are under active development, all subject to potential future change without notification and not ready for production use. The code and security audit have not been fully completed and not ready for any bug bounty.

Prepare

Install dependency:

npm install

unit test

Generate contracts for testing:

# the first account of ganache
node generate-system.js --mock true
node generate-systemReward.js --mock true
node generate-validatorset.js --mock true
node generate-system.js --mock true
node generate-slash.js --mock true
node generate-crosschain.js --mock true
node generate-tokenhub.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 13000000  -e 10000

Run truffle test:

truffle compile
truffle migrate
truffle test

Flatten all system contracts:

npm run flatten

how to generate genesis file.

  1. Edit init_holders.js file to alloc the initial BNB holder.
  2. Edit validators.js file to alloc the initial validator set.
  3. Edit generate-validatorset.js file to change fromChainId and toChainId,
  4. Edit generate-tokenhub.js file to change refundRelayReward, minimumRelayFee and maxGasForCallingBEP2E.
  5. Edit generate-tendermintlightclient.js file to change chainID and initConsensusStateBytes.
  6. run node generate-genesis.js will generate genesis.json

License

The library is licensed under the Apache License, Version 2.0, also included in our repository in the LICENSE file.