BSV OP_RETURNにテキストを入れてみるテスツ
まずデータいれます。
アドレスから手数料引かれるのをみます。
トランザクションみます。
刻まれたのを見ます。
moneybuttonに送金、OP_RETURN入れるっていうスクリプトはなさそうだったので、
(moneybutton向けに送金とテキスト入れるみたいなのはある。)
datapayを使う事にしました。datapayを最初にやらんかったのはmemo.cashに投稿するみたいな文面があったから。
いや、memo.cashには投稿したくないなぁと思った次第。でも多分勘違いでmemo.cashには投稿されない。
memo.cash内で検索したけど出てこなかったし、普通にそんな意味不明なライブラリ作らんでしょ(笑)
memo.cashのAPIを使用するみたいなニュアンスととらえました。違うかな。
今後容量が大きくなってもこのまま使えるかは調べないと分からない。
画像を上げるbitstagramがあるので、そっちがどうやってるか確認すればいいかな。
https://bitstagram.bitdb.network/
とりあえず今はそれを考えない。一歩ずつ。
で、最初にどっかからどっかへ送金してそれでテキストなり刻むと思ったんですが、基本OP_RETURN使うときは
宛先は空みたいです。そう、送金せずに手数料だけ払う。送金は自分から自分へ?みたいなイメージですかね。
あと、バグってんのかライブラリ間のバージョンが合わないのか宛先を指定しても自分から自分にしかいかんかった。
まぁ送る予定はないのでいいかな。
まずサーバにアドレスを用意します。それは作れればこんな感じでみれます。
https://api.bitindex.network/api/v2/addrs/balance?address=サーバにあるアドレス
{ "data": [ { "address": "サーバにあるアドレス", "confirmed": 0, "unconfirmed": 0 } ] }
そこに着金させると、確認待ちになる。
{ "data": [ { "address": "サーバにあるアドレス", "confirmed": 0, "unconfirmed": 10000 } ] }
10分待つと
{ "data": [ { "address": "サーバにあるアドレス", "confirmed": 10000, "unconfirmed": 0 } ] }
みたいになります。これは送金した側で大抵見れるtxでも体験できます。
https://blockchair.com/bitcoin-sv/transaction/送金したトランザクション
https://whatsonchain.com/tx/送金したトランザクション
では、ついにサーバにあるアドレスにbsvが届きましたので、OP_RETURNにテキスト刻んでみます。
test.js
var datapay = require('datapay') const tx = { safe: true, data: ["0x6d02", "刻みたいテキスト"], pay: { key: "前回作った秘密鍵", feeb: 1 }, }; datapay.send(tx, function(err, res) { console.log(res) })
これでtxアドレスが出力される。すぐにウォレットアドレスを見てみると...
{ "data": [ { "address": "サーバにあるアドレス", "confirmed": 10000, "unconfirmed": -252 } ] }
こんな感じで確認中の送金ってことでマイナスになって、いずれconfirmedが減額されます。
さて、トランザクションアドレスをみてみると...どっちでも見れるけど、whatsonchainの方がOP_RETURNは少し見やすい。
OP_RETURNのASCIIはちょい文字化けしているが、まー読める。
Scriptは16進数エンコードなんで、デコード(HEX変換)すれば読める。
テキストがマルチで入るかはまだ試してません。0x6d02ってなに?って方は以下プロトコル読めばすっきり。
https://memo.cash/protocol
ライブラリを使えば、ほんの数行で、実施できる。無駄のないスクリプトを目指したそうで、最高に処理も軽くて速いはずです。実際に速かったです。
次は、容量を増やしてチャレンジしてみます。画像とか、ながーいテキストとか。それをさらに取得。
するとできますね、(すべてではないけど)サーバレスなシステムが。