funding: route back full lnwire.Error to caller upon funding flow failure

This commit is contained in:
Olaoluwa Osuntokun 2017-11-30 22:53:19 -08:00
parent c081b386d2
commit 9314aa2e7d
No known key found for this signature in database
GPG Key ID: 964EA263DD637C21
1 changed files with 17 additions and 3 deletions

View File

@ -8,6 +8,8 @@ import (
"sync/atomic"
"time"
"google.golang.org/grpc"
"golang.org/x/crypto/salsa20"
"github.com/boltdb/bolt"
@ -23,7 +25,6 @@ import (
"github.com/roasbeef/btcd/chaincfg/chainhash"
"github.com/roasbeef/btcd/wire"
"github.com/roasbeef/btcutil"
"google.golang.org/grpc"
)
const (
@ -2214,9 +2215,22 @@ func (f *fundingManager) handleErrorMsg(fmsg *fundingErrorMsg) {
// error back to the caller (if any), and cancel the workflow itself.
lnErr := lnwire.ErrorCode(protocolErr.Data[0])
fndgLog.Errorf("Received funding error from %x: %v",
peerKey.SerializeCompressed(), lnErr,
peerKey.SerializeCompressed(), string(protocolErr.Data),
)
resCtx.err <- grpc.Errorf(lnErr.ToGrpcCode(), lnErr.String())
// If this isn't a simple error code, then we'll display the entire
// thing.
if len(protocolErr.Data) > 0 {
resCtx.err <- grpc.Errorf(
lnErr.ToGrpcCode(), string(protocolErr.Data),
)
} else {
// Otherwise, we'll attempt tto display just the error code
// itself.
resCtx.err <- grpc.Errorf(
lnErr.ToGrpcCode(), lnErr.String(),
)
}
if _, err := f.cancelReservationCtx(peerKey, chanID); err != nil {
fndgLog.Warnf("unable to delete reservation: %v", err)