通过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的接口

相关推荐
fox_charon7 小时前
Windows 下 CLI 参数的引号陷阱:为什么 --resume 'uuid' 会失败
windows·shell·cmd·cli·引号
吴声子夜歌9 天前
Shell编程实例——编写安全的shell脚本(二)
linux·运维·shell
吴声子夜歌11 天前
Shell编程实例——内务及管理任务(一)
linux·运维·shell
吴声子夜歌11 天前
Shell编程实例——高级脚本编程(一)
linux·运维·网络·shell
吴声子夜歌11 天前
Shell编程实例——bash的配置与自定义(二)
linux·运维·shell
吴声子夜歌11 天前
Shell编程实例——与解析相关的任务(二)
linux·运维·shell
吴声子夜歌12 天前
Shell编程实例——脚本编程的附加特性
linux·运维·shell
云计算练习生12 天前
什么是内核?操作系统内核到底管哪些事
linux·windows·操作系统·内核·shell
吴声子夜歌15 天前
Shell编程实例——bash入门
linux·运维·shell
Swizard15 天前
Linux 日志神器 journalctl 完全指南:彻底替代传统日志查看方式
shell