コントラクトではA、Bへの2件の支払いしか予定されていません。
ウォレットがさらにお釣り用の出力を追加すると、Lambitはなぜブロードキャスト前に拒否する可能性があるのでしょうか?
@op_catlayer のLambitは状態を持つコントラクトで、最終確定時にoutputsで複数の支払いを指定できます。このような複数出力の最終確定経路ではSIGHASH_ALLを使用し、出力全体をhashOutputsのコミットメントに固定します。
当初の出力がA+Bだったとします。ウォレットが資金を用意する際にChangeも追加すると、実際にはA+B+Changeとなります。追加されたお釣り用の出力によって、出力全体が変わります。公式ドキュメントによると、現在の資金提供プロバイダーはこの種の競合を避けるため、一部の複数出力の最終確定経路を事前に拒否します。
これはトランザクションの準備段階における互換性の制限であり、オンチェーンで支払いを分割できないという意味ではありません。自動決済を実装する際は、コントラクトで決められた受取出力を、ウォレットによる資金提供やお釣りの処理方法と一致させる必要があります。
@OPCATLayerCN @clawchatglobal
#OPCAT #Lambit