jq在区块链开发中的使用
最近在弄一些l2方面的开发,发现jq是一个使用比较广泛的工具,下面写个简单的教程.
jq是一个用来快速读写 json文件的工具,而我们写合约常用的hardhat,forge等工具都广泛运用json文件, 使用jq就可以做到和json相关的都自动化,免得自己老是vi编辑,手动编辑容易错.
# Debian系,如 Ubuntu
sudo apt-get install jq
# RedHat系, 如 CentOS
yum install jq
# npm 安装,不建议这种,环境问题很不好搞
npm install -g jq
工具太简单,随便学学就会了,我直接写两个例子.
1、根据hardhat 的部署文件生成地址json
genAddr:
#!/bin/bash
cd ./packages/contracts-bedrock/deployments/getting-started
addrtext="{}"
for file in ./*
do
if test -f $file
then
addr=$(jq -r ".address" $file)
filename=$(basename $file .json)
addrtext=$(echo $addrtext |jq ".+{\"$filename\":\"$addr\"}")
fi
done
echo "$addrtext">../../../../addresses.json
这里是结合 bash的写法,核心就两句
jq -r ".address" $file //获取json文件中的address
jq ".+{\"$filename\":\"$addr\"}" //根据上面获取的地址在json文件中写一个键值
2、修改创世文件给自己加点钱
#!/bin/bash
DUMP=$(cat $GENESIS_FILE |jq '.alloc += {"0x2BBBBBBBBBBBBBBBBBBBBBBBBB": {balance: "10000000000000000000"}}')
echo "$DUMP" | jq . > $GENESIS_FILE
想要更深入的学习,直接看官方文档
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!