@@ -3,9 +3,11 @@ package vm
33import (
44 "context"
55 "errors"
6+ "fmt"
67
78 "github.com/btcsuite/btcd/txscript"
89 "github.com/btcsuite/btcd/wire"
10+ "github.com/davecgh/go-spew/spew"
911 "github.com/lightninglabs/taproot-assets/asset"
1012 "github.com/lightninglabs/taproot-assets/commitment"
1113 "github.com/lightninglabs/taproot-assets/mssmt"
@@ -133,7 +135,10 @@ func (vm *Engine) validateSplit(splitAsset *commitment.SplitAsset) error {
133135 // TODO(roasbeef): revisit?
134136 prevAsset , ok := vm .prevAssets [* rootWitness .PrevID ]
135137 if ! ok {
136- return ErrNoInputs
138+ return fmt .Errorf ("%w: root_witness_prev_id=%v, " +
139+ "num_prev_assets=%v" , ErrNoInputs ,
140+ spew .Sdump (rootWitness .PrevID ),
141+ len (vm .prevAssets ))
137142 }
138143 err := matchesAssetParams (
139144 & splitAsset .Asset , prevAsset , & rootWitness ,
@@ -266,7 +271,7 @@ func (vm *Engine) validateWitnessV0(virtualTx *wire.MsgTx, inputIdx uint32,
266271func (vm * Engine ) validateStateTransition (virtualTx * wire.MsgTx ) error {
267272 switch {
268273 case len (vm .newAsset .PrevWitnesses ) == 0 :
269- return ErrNoInputs
274+ return fmt . Errorf ( "%w: prev witness zero" , ErrNoInputs )
270275
271276 case vm .newAsset .Type == asset .Collectible &&
272277 len (vm .newAsset .PrevWitnesses ) > 1 :
@@ -278,7 +283,9 @@ func (vm *Engine) validateStateTransition(virtualTx *wire.MsgTx) error {
278283 witness := witness
279284 prevAsset , ok := vm .prevAssets [* witness .PrevID ]
280285 if ! ok {
281- return ErrNoInputs
286+ return fmt .Errorf ("%w: no prev asset for " +
287+ "input_prev_id=%v" , ErrNoInputs ,
288+ spew .Sdump (witness .PrevID ))
282289 }
283290
284291 switch prevAsset .ScriptVersion {
0 commit comments