mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-09-08 23:01:53 +02:00
lnwire+htlcswitch: change NewInvalidBlinding to use array instead of slice
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
||||
|
||||
"github.com/davecgh/go-spew/spew"
|
||||
"github.com/go-errors/errors"
|
||||
"github.com/lightningnetwork/lnd/fn"
|
||||
"github.com/lightningnetwork/lnd/tlv"
|
||||
)
|
||||
|
||||
@@ -1271,14 +1272,19 @@ func (f *FailInvalidBlinding) Encode(w *bytes.Buffer, _ uint32) error {
|
||||
}
|
||||
|
||||
// NewInvalidBlinding creates new instance of FailInvalidBlinding.
|
||||
func NewInvalidBlinding(onion []byte) *FailInvalidBlinding {
|
||||
func NewInvalidBlinding(
|
||||
onion fn.Option[[OnionPacketSize]byte]) *FailInvalidBlinding {
|
||||
// The spec allows empty onion hashes for invalid blinding, so we only
|
||||
// include our onion hash if it's provided.
|
||||
if onion == nil {
|
||||
if onion.IsNone() {
|
||||
return &FailInvalidBlinding{}
|
||||
}
|
||||
|
||||
return &FailInvalidBlinding{OnionSHA256: sha256.Sum256(onion)}
|
||||
shaSum := fn.MapOptionZ(onion, func(o [OnionPacketSize]byte) [32]byte {
|
||||
return sha256.Sum256(o[:])
|
||||
})
|
||||
|
||||
return &FailInvalidBlinding{OnionSHA256: shaSum}
|
||||
}
|
||||
|
||||
// DecodeFailure decodes, validates, and parses the lnwire onion failure, for
|
||||
|
@@ -9,11 +9,12 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/davecgh/go-spew/spew"
|
||||
"github.com/lightningnetwork/lnd/fn"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var (
|
||||
testOnionHash = []byte{}
|
||||
testOnionHash = [OnionPacketSize]byte{}
|
||||
testAmount = MilliSatoshi(1)
|
||||
testCtlvExpiry = uint32(2)
|
||||
testFlags = uint16(2)
|
||||
@@ -43,9 +44,9 @@ var onionFailures = []FailureMessage{
|
||||
&FailMPPTimeout{},
|
||||
|
||||
NewFailIncorrectDetails(99, 100),
|
||||
NewInvalidOnionVersion(testOnionHash),
|
||||
NewInvalidOnionHmac(testOnionHash),
|
||||
NewInvalidOnionKey(testOnionHash),
|
||||
NewInvalidOnionVersion(testOnionHash[:]),
|
||||
NewInvalidOnionHmac(testOnionHash[:]),
|
||||
NewInvalidOnionKey(testOnionHash[:]),
|
||||
NewTemporaryChannelFailure(&testChannelUpdate),
|
||||
NewTemporaryChannelFailure(nil),
|
||||
NewAmountBelowMinimum(testAmount, testChannelUpdate),
|
||||
@@ -56,7 +57,7 @@ var onionFailures = []FailureMessage{
|
||||
NewFinalIncorrectCltvExpiry(testCtlvExpiry),
|
||||
NewFinalIncorrectHtlcAmount(testAmount),
|
||||
NewInvalidOnionPayload(testType, testOffset),
|
||||
NewInvalidBlinding(testOnionHash),
|
||||
NewInvalidBlinding(fn.Some(testOnionHash)),
|
||||
}
|
||||
|
||||
// TestEncodeDecodeCode tests the ability of onion errors to be properly encoded
|
||||
|
Reference in New Issue
Block a user