cmd/jsutils: add 2 tools get validator version and block txs number (#2036)
This commit is contained in:
parent
e3ef62f3bd
commit
a140a5a324
25
cmd/jsutils/README.md
Normal file
25
cmd/jsutils/README.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
## Requirement
|
||||||
|
|
||||||
|
- nodejs: v20.10.0
|
||||||
|
- npm: v10.2.3
|
||||||
|
|
||||||
|
## Prepare
|
||||||
|
Recommend use [nvm](https://github.com/nvm-sh/nvm) to manage node version.
|
||||||
|
|
||||||
|
Install node.js dependency:
|
||||||
|
```shell script
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
## Run
|
||||||
|
mainnet validators version
|
||||||
|
```bash
|
||||||
|
npm run startMainnet
|
||||||
|
```
|
||||||
|
testnet validators version
|
||||||
|
```bash
|
||||||
|
npm run startTestnet
|
||||||
|
```
|
||||||
|
Transaction count
|
||||||
|
```bash
|
||||||
|
node gettxcount.js --rpc ${url} --startNum ${start} --endNum ${end}
|
||||||
|
```
|
31
cmd/jsutils/gettxcount.js
Normal file
31
cmd/jsutils/gettxcount.js
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
import { ethers } from "ethers";
|
||||||
|
import program from "commander";
|
||||||
|
|
||||||
|
program.option("--rpc <rpc>", "Rpc");
|
||||||
|
program.option("--startNum <startNum>", "start num")
|
||||||
|
program.option("--endNum <endNum>", "end num")
|
||||||
|
program.parse(process.argv);
|
||||||
|
|
||||||
|
const provider = new ethers.JsonRpcProvider(program.rpc)
|
||||||
|
|
||||||
|
const main = async () => {
|
||||||
|
let txCount = 0;
|
||||||
|
let num = 0;
|
||||||
|
console.log("Find the max txs count between", program.startNum, "and", program.endNum);
|
||||||
|
for (let i = program.startNum; i < program.endNum; i++) {
|
||||||
|
let x = await provider.send("eth_getBlockTransactionCountByNumber", [
|
||||||
|
ethers.toQuantity(i)]);
|
||||||
|
let a = ethers.toNumber(x)
|
||||||
|
if (a > txCount) {
|
||||||
|
num = i;
|
||||||
|
txCount = a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log("BlockNum = ", num, "TxCount =", txCount);
|
||||||
|
};
|
||||||
|
|
||||||
|
main().then(() => process.exit(0))
|
||||||
|
.catch((error) => {
|
||||||
|
console.error(error);
|
||||||
|
process.exit(1);
|
||||||
|
});
|
25
cmd/jsutils/getvalidatorversion.js
Normal file
25
cmd/jsutils/getvalidatorversion.js
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import { ethers } from "ethers";
|
||||||
|
import program from "commander";
|
||||||
|
|
||||||
|
program.option("--Rpc <Rpc>", "Rpc");
|
||||||
|
program.option("--Num <Num>", "validator num", 21)
|
||||||
|
program.parse(process.argv);
|
||||||
|
|
||||||
|
const provider = new ethers.JsonRpcProvider(program.Rpc);
|
||||||
|
|
||||||
|
const main = async () => {
|
||||||
|
const blockNum = await provider.getBlockNumber();
|
||||||
|
console.log(blockNum);
|
||||||
|
for (let i = 0; i < program.Num; i++) {
|
||||||
|
let blockData = await provider.getBlock(blockNum - i);
|
||||||
|
let major = ethers.toNumber(ethers.dataSlice(blockData.extraData, 2, 3))
|
||||||
|
let minor = ethers.toNumber(ethers.dataSlice(blockData.extraData, 3, 4))
|
||||||
|
let patch = ethers.toNumber(ethers.dataSlice(blockData.extraData, 4, 5))
|
||||||
|
console.log(blockData.miner, "version =", major + "." + minor + "." + patch)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
main().then(() => process.exit(0))
|
||||||
|
.catch((error) => {
|
||||||
|
console.error(error);
|
||||||
|
process.exit(1);
|
||||||
|
});
|
16
cmd/jsutils/package.json
Normal file
16
cmd/jsutils/package.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"name": "jsutils",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"type": "module",
|
||||||
|
"description": "jsUtils for bsc",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"startMainnet": "node getvalidatorversion.js --Rpc https://bsc-dataseed.bnbchain.org --Num 21",
|
||||||
|
"startTestnet": "node getvalidatorversion.js --Rpc https://bsc-testnet-dataseed.bnbchain.org --Num 7"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"commander": "^3.0.1",
|
||||||
|
"ethers": "^6.2.3"
|
||||||
|
},
|
||||||
|
"author": "BNB Chain"
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user