通过shell脚本执行ord节点的wallet receive、wallet send、wallet inscription三个命令

实现思路:

1、通过shell脚本中的case语句实现不同命令的选择

2、然后在确定好了命令方法后,我们在依据需要传递我们需要的参数

脚本内容

bash 复制代码
#!/bin/bash

ord_regtest="/root/ord/target/release/ord --cookie-file=/data/btcregtest/data/regtest/.cookie  --rpc-url=127.0.0.1:8540"

function walletreceive {
    local num=$1	
    datetime=`date +%Y%m%d%H%M`
    mv  ord_address /tmp/ord_address_${datetime}
    for i in $(seq 1 $num)
    do
        ${ord_regtest} -r wallet receive |grep -v "{\|}"|awk -F "\"" '{print $4}' >> ord_address 
    done
    cp ord_address /root/address/ord_address_${datetime}
    echo "Successed"
}

function inscription {
    local fee_rate=$1
    local tick=$2
    local amount=$3
    local destination=$4
    sed -i "s/ordi/$tick/" /root/fee_rate_file.json
    sed -i "s/1000/$amount/" /root/fee_rate_file.json
    ${ord_regtest} -r wallet inscribe --fee-rate $fee_rate --file /root/fee_rate_file.json --
destination $destination}

function send {
    local fee_rate=$1
    local address=$2
    local inscription_id=$3
    ${ord_regtest} -r wallet send --fee-rate $fee_rate $address $inscription_id
}

case "$1" in
    "walletreceive")
        walletreceive "$2"
        ;;
    "inscription")
        inscription "$2" "$3" "$4" $5
        ;;
    "send")
        send "$2" "$3" "$4"
        ;;
    *)
        exit
        ;;
esac
其中fee_rate_file.json最原始文本内容
{"p": "brc-20", "op": "transfer", "tick": "tick", "amt": "1000"}

执行命令:

1、walletreceive (生成钱包地址)
bash 复制代码
./ordinals.sh walletreceive num(表示要生成的地址的数量)
2、inscription (对钱包地址的币进行铭刻)
bash 复制代码
./ordinals.sh inscription fee_rate(费率)  tick(币种) amount(币对应的数量)  destination(要对哪个地址的币进行铭刻)

{
  "commit": "12acb3aef15017408432ccdb35ad74e029c078db3eb3d59b74b4c5e29ee65756",
  "inscriptions": [
    {
      "id": "f0f37af3daf6a89bacc467ac4e6e564e931cdce097e70bea74dd76be828fa74bi0",
      "location": "f0f37af3daf6a89bacc467ac4e6e564e931cdce097e70bea74dd76be828fa74b:0:0"
    }
  ],
  "parent": null,
  "reveal": "f0f37af3daf6a89bacc467ac4e6e564e931cdce097e70bea74dd76be828fa74b",
  "total_fees": 15300
}
3、send (将铭刻好的币进行转走)
bash 复制代码
./ordinals.sh send fee_rate(费率)  address(要转出的目标钱包地址)  inscription_id(铭刻id,上一步生成的id值)

{
  "transaction": "87b4db5a90a2316f9a0bb07433573359391c57a121f5cdb5a3f6d90d6c97ac00"
}

总结

1、脚本服务器上必须要有ord命令,且客户端要获取结果必须和脚本在同一个机器上

2、客户端必须时时刻刻手动执行脚本才能获取到结果信息

3、更多详情python编写的方法:python脚本调用ordinals以及BRC20的接口

相关推荐
Shell运维手记15 小时前
Shell 结构化命令知识点总结(case、for、while)
运维·microsoft·shell·脚本
云计算练习生19 小时前
什么是 Bash?Linux 默认 Shell 的核心功能
linux·操作系统·bash·shell·命令解释器
猫咪很可爱2 天前
MySQL 5.7 备份恢复后函数与存储过程丢失:原因分析与正确备份姿势
数据库·mysql·bug·shell
qetfw3 天前
Linux 文件清理:find、mtime 与安全传参验证
linux·shell·1024程序员节
Lsetea5 天前
curl下载HTTPS文件报23:证书验证成功与本地写入失败分层排查
linux·https·shell·ssl证书·curl
DogDaoDao6 天前
Windows 双 Shell 全面对比:CMD 与 PowerShell 的技术剖析
windows·shell·测试·powershell·cmd·程序员开发
Lsetea7 天前
OpenSSL的checkhost显示不匹配却退出0:名称检查与证书验收
linux·https·shell·ssl证书·openssl
钱栈up9 天前
耳机音效不对,我顺手查了系统更新,结果挖出个崩溃了整天的服务
windows·shell
qetfw9 天前
grep 文本筛选:匹配、反选与退出状态验证
linux·shell
xbzb16 天前
Shell 函数:语法、传参与递归调用一次讲透
shell·递归·函数·调用·传参·递归调用