diff --git a/routing/errors.go b/routing/errors.go index a8bd6fba..ff055d2e 100644 --- a/routing/errors.go +++ b/routing/errors.go @@ -15,6 +15,11 @@ const ( // this update can't bring us something new, or because a node // announcement was given for node not found in any channel. ErrIgnored + + // ErrChannelSpent is returned when we go to validate a channel, but + // the purported funding output has actually already been spent on + // chain. + ErrChannelSpent ) // routerError is a structure that represent the error inside the routing package, diff --git a/routing/router.go b/routing/router.go index a1f50215..673b2cef 100644 --- a/routing/router.go +++ b/routing/router.go @@ -1354,7 +1354,8 @@ func (r *ChannelRouter) processUpdate(msg interface{}, r.quit, ) if err != nil { - return fmt.Errorf("unable to fetch utxo "+ + + return newErrf(ErrChannelSpent, "unable to fetch utxo "+ "for chan_id=%v, chan_point=%v: %v", msg.ChannelID, fundingPoint, err) }