使用 cloudflare worker 制作一款支持任意 bsv 脚本的 slack bot

432 阅读1分钟

为什么是 slack bot

比命令行更好的交互体验, 且免安装, 有更多扩展空间.

FAQ

如何发送交易? a: 需要跳转到 MoneyButton. 每次发送交易的时候, bot 会生成一个网页, 里面包含一个 moneybutton, 发送者点开网页滑动一下就好了. 直接支持了任意 lock script. 而且只需要使用免费的 woker.dev 就可以实现.

如何解锁任意的脚本? a: MoneyButton 目前还不支持解锁任意的 lock script. 所以, 需要由我们生成交易. 生成交易的话, 需要 txid 和 output index 以及 amount. (或者更高级的功能, 根据上下文来获取这两个信息, 例如在 slack 里面发送一条 lock script, 在底下回复解锁脚本.). 构造好交易之后, bot 返回交易全文. 并提示使用 WOC 来广播交易(或者直接使用免费的 bitindex api 来广播).

首先我们需要在 woker 里面使用 bsv 库. 所以需要先弄懂: 如何在 woker 里使用第三方库? 安装了 cloudflare 的工具 wrangler 之后, 使用 wrangler generate 新建一个 worker 项目, 在 package.json 里添加依赖, 并把 type 改为 webpack 即可.

如何计算 unlock 交易可以获取到金额?

raw_tx1 
    -> {txid, outputIndex, amount}
    ++ receiver
    -> calculate size and fee
    -> raw_tx2

这里我们创建了一个新的 worker, 首先读取 rawtx并解析.

接下来为这个 worker 添加 sweep 的功能, 即输入接收者的 address, 生成新的 tx.