https://github.com/btc415/bsc-genesis-contract
The genesis contracts for the Binance Smart Chain (BSC) network. The project aims to provide a comprehensive set of smart contracts that define the initial state and rules of the BSC blockchain.
https://github.com/btc415/bsc-genesis-contract
bsc javascript solidity
Last synced: about 1 year ago
JSON representation
The genesis contracts for the Binance Smart Chain (BSC) network. The project aims to provide a comprehensive set of smart contracts that define the initial state and rules of the BSC blockchain.
- Host: GitHub
- URL: https://github.com/btc415/bsc-genesis-contract
- Owner: BTC415
- License: other
- Created: 2023-11-18T14:45:59.000Z (over 2 years ago)
- Default Branch: autogen
- Last Pushed: 2023-11-18T14:57:34.000Z (over 2 years ago)
- Last Synced: 2025-03-31T23:38:59.025Z (about 1 year ago)
- Topics: bsc, javascript, solidity
- Language: Solidity
- Homepage:
- Size: 2.26 MB
- Stars: 14
- Watchers: 1
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# bsc-genesis-contracts
This repo hold all the genesis contracts on Binance Smart chain. More details in [doc-site](https://github.com/binance-chain/docs-site/blob/add-bsc/docs/smart-chain/guides/concepts/system-contract.md).
## Prepare
Install dependency:
```shell script
npm install
```
## unit test
Generate contracts for testing:
```shell script
# 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:
```shell script
ganache-cli --mnemonic 'clock radar mass judge dismiss just intact mind resemble fringe diary casino' --gasLimit 13000000 -e 10000
```
Run truffle test:
```shell script
truffle compile
truffle migrate
truffle test
```
Flatten all system contracts:
```shell script
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 `maxGasForCallingBEP20`.
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](https://www.apache.org/licenses/LICENSE-2.0),
also included in our repository in the [LICENSE](LICENSE) file.