bnb-chain/bsc-genesis-contract
Fork: 736 Star: 665 (更新于 2024-10-24 22:49:22)
license: NOASSERTION
Language: Solidity .
The genesis contracts of BNB Smart Chain.
最后发布版本: v1.2.4 ( 2024-07-26 11:31:29)
bsc-genesis-contracts
This repo hold all the genesis contracts on BNB Smart chain. More details in doc-site.
Prepare
Install node.js dependency:
npm install
Install foundry:
curl -L https://foundry.paradigm.xyz | bash
foundryup
forge install --no-git --no-commit foundry-rs/forge-std@v1.7.3
Install poetry:
curl -sSL https://install.python-poetry.org | python3 -
poetry install
Tips: You can manage multi version of Node:
## Install nvm and node
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
nvm install 12.18.3 && nvm use 12.18.3
Unit test
Add follow line to .env file in project dir, replace archive_node
with a valid bsc mainnet node url which should be in archive mode:
RPC_BSC=${archive_node}
You can get a free archive node endpoint from https://nodereal.io/.
Run forge test:
forge test
Flatten all system contracts
bash scripts/flatten.sh
All system contracts will be flattened and output into ${workspace}/contracts/flattened/
.
How to generate genesis file
- Edit
init_holders.js
file to alloc the initial BNB holder. - Edit
validators.js
file to alloc the initial validator set. - Edit system contracts setting as needed.
- Run
node scripts/generate-genesis.js
will generate genesis.json
How to generate mainnet/testnet/dev genesis file
poetry run python -m scripts.generate ${network}
Check the genesis.json
file, and you can get the exact compiled bytecode for different network.
(poetry run python -m scripts.generate --help
for more details)
You can refer to generate:dev
in package.json
for more details about how to custom params for local dev-net.
How to update contract interface for test
// get metadata
forge build
// generate interface
cast interface ${workspace}/out/{contract_name}.sol/${contract_name}.json -p ^0.8.0 -n ${contract_name} > ${workspace}/test/utils/interface/I${contract_name}.sol
BEP-171 unlock bot
npm install ts-node -g
cp .env.example .env
# set UNLOCK_RECEIVER, OPERATOR_PRIVATE_KEY to .env
ts-node scripts/bep171-unlock-bot.ts
License
The library is licensed under the Apache License, Version 2.0, also included in our repository in the LICENSE file.
最近版本更新:(数据更新于 2024-08-28 10:26:16)
2024-07-26 11:31:29 v1.2.4
2024-07-22 14:07:17 v1.2.3
2024-03-27 15:05:12 v1.2.2
2024-03-18 10:55:26 v1.2.1
2024-02-26 15:18:59 v1.2.0
2023-05-05 15:40:19 v1.1.9
2023-04-20 16:04:30 v1.1.8
2023-03-10 10:48:17 v1.1.7
2022-09-30 14:48:33 v1.1.6
2022-09-23 14:59:07 v1.1.5-audit
主题(topics):
bnb, bsc, smart-contracts
bnb-chain/bsc-genesis-contract同语言 Solidity最近更新仓库
2024-10-03 22:56:46 OpenZeppelin/openzeppelin-contracts
2024-08-28 00:31:10 Uniswap/UniswapX
2024-02-23 01:47:34 eth-infinitism/account-abstraction
2021-02-26 11:11:11 bnb-chain/eth-bsc-swap-contracts
1970-01-01 00:00:00 Vectorized/solady
1970-01-01 00:00:00 Uniswap/v4-periphery