|
|
|
@ -55,6 +55,12 @@ var (
|
|
|
|
|
errBalanceTooLow = errors.New(
|
|
|
|
|
"channel balance too low for loop out amount",
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// errInvalidAddress is returned when the destination address is of
|
|
|
|
|
// an unsupported format such as P2PK or P2TR addresses.
|
|
|
|
|
errInvalidAddress = errors.New(
|
|
|
|
|
"invalid or unsupported address",
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// swapClientServer implements the grpc service exposed by loopd.
|
|
|
|
@ -1154,6 +1160,18 @@ func validateLoopOutRequest(ctx context.Context, lnd lndclient.LightningClient,
|
|
|
|
|
errIncorrectChain, chainParams.Name)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Check that the provided destination address is a supported
|
|
|
|
|
// address format.
|
|
|
|
|
switch sweepAddr.(type) {
|
|
|
|
|
case *btcutil.AddressWitnessScriptHash,
|
|
|
|
|
*btcutil.AddressWitnessPubKeyHash,
|
|
|
|
|
*btcutil.AddressScriptHash,
|
|
|
|
|
*btcutil.AddressPubKeyHash:
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
return 0, errInvalidAddress
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Check that the label is valid.
|
|
|
|
|
if err := labels.Validate(req.Label); err != nil {
|
|
|
|
|
return 0, err
|
|
|
|
|