MyGit
🚩收到GitHub仓库的更新通知

bnb-chain/bsc-genesis-contract

Fork: 689 Star: 631 (更新于 2024-05-17 19:53:42)

license: NOASSERTION

Language: Solidity .

The genesis contracts of BNB Smart Chain.

最后发布版本: v1.2.2 ( 2024-03-27 15:05:12)

GitHub网址

✨免费申请网站SSL证书,支持多域名和泛域名,点击查看

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

  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 system contracts setting as needed.
  4. 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-05-01 22:41:02)

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

2022-08-31 14:21:07 v1.1.5

2022-08-17 14:07:16 v1.1.4

主题(topics):

bnb, bsc, smart-contracts

bnb-chain/bsc-genesis-contract同语言 Solidity最近更新仓库

2021-02-26 11:11:11 bnb-chain/eth-bsc-swap-contracts

1970-01-01 00:00:00 Uniswap/v4-core

1970-01-01 00:00:00 bokkypoobah/Tokens

1970-01-01 00:00:00 Vectorized/solady

1970-01-01 00:00:00 Uniswap/UniswapX

1970-01-01 00:00:00 Uniswap/v4-periphery