Skip to content

Commit 41dc0f2

Browse files
committed
vm: add more detail to ErrNoInputs error
We add more detail to each error site, making it easier to debug.
1 parent a551fc5 commit 41dc0f2

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

vm/vm.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ package vm
33
import (
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,
266271
func (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

Comments
 (0)