jq在区块链开发中的使用

  • 晓道
  • 更新于 2023-09-11 12:15
  • 阅读 1231

jq在区块链开发中的使用

最近在弄一些l2方面的开发,发现jq是一个使用比较广泛的工具,下面写个简单的教程.

jq是一个用来快速读写 json文件的工具,而我们写合约常用的hardhat,forge等工具都广泛运用json文件, 使用jq就可以做到和json相关的都自动化,免得自己老是vi编辑,手动编辑容易错.

安装 jq

# 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

想要更深入的学习,直接看官方文档

https://jqlang.github.io/jq/

点赞 0
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
晓道
晓道
0xdD09...9161
技术交流:https://t.me/realDAO