1度の決済で別々のtxでOP_RETURNが送れるかテスト

表題の件、よーく考えたら分かる事なんですが、1取引が1トランザクションなので、表向き偽装しない限りできません。ただこれを何故できないか言い出した理由は、データを別々に登録したかったから。Dプロトコルなどで上書きにしても全項目入れ直しは非常にしんどい。このため1回の決済で個別のtxハッシュが欲しかったの。


で、テストした意味はありました。

<div class='money-button'
	data-outputs = '[
		{
			"script": "OP_0 OP_RETURN hex_text1",
			"amount": "0",
			"currency": "BSV"
		},
		{
			"script": "OP_0 OP_RETURN hex_text2",
			"amount": "0",
			"currency": "BSV"
		}
	]'
	data-on-payment = 'myCustomCallback'
></div>

outputsはもともと以前手数料をいただきつつ~の記事で紹介した変則バージョンになりますね。そもそも送り先は複数が可能です。実際ブロックチェーンは仕組み上そういうものです。
online106.hatenablog.jp

で、このパターンで実行するとどうなるかというとout.iで分けられて記録されます。

{
  "v": 3,
  "q": {
    "find": {"tx.h": "tx hash"}
  },
  "r": {
    "f": "[.[] | { text1: .out[0].s2, text2: .out[1].s2} ]"
  }
}

こういうことですわ。これどうやるのかいままでわかってなかったのでテストしてよかった。軽く見た感じではDプロトコルでこのレコード?までは指定できないっぽい。これ識別子かインデックスかスコープと言われるのか分からないけど...何の役に立つのだろうか。データ分割してもビックブロックだし1tx1GB制限の範囲だしなぁ。