channeldb: boiler plate code for migration32
In preparation for the commit which will add the main logic for migration 32 (which will migrate the MC store to use a more minimal encoding), this commit just adds some of the code that the migration will need to the package.
This commit is contained in:
5 files changed
+804
No files matched your search
@@ -0,0 +1,59 @@
|
||||
package migration32
|
||||
|
||||
import (
|
||||
"github.com/btcsuite/btcd/btcec/v2"
|
||||
"github.com/lightningnetwork/lnd/tlv"
|
||||
)
|
||||
|
||||
const (
|
||||
// EncryptedDataOnionType is the type used to include encrypted data
|
||||
// provided by the receiver in the onion for use in blinded paths.
|
||||
EncryptedDataOnionType tlv.Type = 10
|
||||
|
||||
// BlindingPointOnionType is the type used to include receiver provided
|
||||
// ephemeral keys in the onion that are used in blinded paths.
|
||||
BlindingPointOnionType tlv.Type = 12
|
||||
|
||||
// MetadataOnionType is the type used in the onion for the payment
|
||||
// metadata.
|
||||
MetadataOnionType tlv.Type = 16
|
||||
|
||||
// TotalAmtMsatBlindedType is the type used in the onion for the total
|
||||
// amount field that is included in the final hop for blinded payments.
|
||||
TotalAmtMsatBlindedType tlv.Type = 18
|
||||
)
|
||||
|
||||
// NewEncryptedDataRecord creates a tlv.Record that encodes the encrypted_data
|
||||
// (type 10) record for an onion payload.
|
||||
func NewEncryptedDataRecord(data *[]byte) tlv.Record {
|
||||
return tlv.MakePrimitiveRecord(EncryptedDataOnionType, data)
|
||||
}
|
||||
|
||||
// NewBlindingPointRecord creates a tlv.Record that encodes the blinding_point
|
||||
// (type 12) record for an onion payload.
|
||||
func NewBlindingPointRecord(point **btcec.PublicKey) tlv.Record {
|
||||
return tlv.MakePrimitiveRecord(BlindingPointOnionType, point)
|
||||
}
|
||||
|
||||
// NewMetadataRecord creates a tlv.Record that encodes the metadata (type 10)
|
||||
// for an onion payload.
|
||||
func NewMetadataRecord(metadata *[]byte) tlv.Record {
|
||||
return tlv.MakeDynamicRecord(
|
||||
MetadataOnionType, metadata,
|
||||
func() uint64 {
|
||||
return uint64(len(*metadata))
|
||||
},
|
||||
tlv.EVarBytes, tlv.DVarBytes,
|
||||
)
|
||||
}
|
||||
|
||||
// NewTotalAmtMsatBlinded creates a tlv.Record that encodes the
|
||||
// total_amount_msat for the final an onion payload within a blinded route.
|
||||
func NewTotalAmtMsatBlinded(amt *uint64) tlv.Record {
|
||||
return tlv.MakeDynamicRecord(
|
||||
TotalAmtMsatBlindedType, amt, func() uint64 {
|
||||
return tlv.SizeTUint64(*amt)
|
||||
},
|
||||
tlv.ETUint64, tlv.DTUint64,
|
||||
)
|
||||
}
|
||||
Reference in new issue
Block a user