9a6bb19770
Messages: - UpdateFulfillHTLC - UpdateFee - UpdateFailMalformedHTLC - UpdateFailHTLC - UpdateAddHTLC - Shutdown - RevokeAndAck - ReplyShortChanIDsEnd - ReplyChannelRange - QueryShortChanIDs - QueryChannelRange - NodeAnnouncement - Init - GossipTimestampRange - FundingSigned - FundingLocked - FundingCreated - CommitSig - ClosingSigned - ChannelUpdate - ChannelReestablish - ChannelAnnouncement - AnnounceSignatures lnwire: update quickcheck tests, use constant for Error multi: update unit tests to pass deep equal assertions with messages In this commit, we update a series of unit tests in the code base to now pass due to the new wire message encode/decode logic. In many instances, we'll now manually set the extra bytes to an empty byte slice to avoid comparisons that fail due to one message having an empty byte slice and the other having a nil pointer.
77 lines
2.5 KiB
Go
77 lines
2.5 KiB
Go
package lnwire
|
|
|
|
import (
|
|
"io"
|
|
|
|
"github.com/btcsuite/btcd/wire"
|
|
)
|
|
|
|
// FundingCreated is sent from Alice (the initiator) to Bob (the responder),
|
|
// once Alice receives Bob's contributions as well as his channel constraints.
|
|
// Once bob receives this message, he'll gain access to an immediately
|
|
// broadcastable commitment transaction and will reply with a signature for
|
|
// Alice's version of the commitment transaction.
|
|
type FundingCreated struct {
|
|
// PendingChannelID serves to uniquely identify the future channel
|
|
// created by the initiated single funder workflow.
|
|
PendingChannelID [32]byte
|
|
|
|
// FundingPoint is the outpoint of the funding transaction created by
|
|
// Alice. With this, Bob is able to generate both his version and
|
|
// Alice's version of the commitment transaction.
|
|
FundingPoint wire.OutPoint
|
|
|
|
// CommitSig is Alice's signature from Bob's version of the commitment
|
|
// transaction.
|
|
CommitSig Sig
|
|
|
|
// ExtraData is the set of data that was appended to this message to
|
|
// fill out the full maximum transport message size. These fields can
|
|
// be used to specify optional data such as custom TLV fields.
|
|
ExtraData ExtraOpaqueData
|
|
}
|
|
|
|
// A compile time check to ensure FundingCreated implements the lnwire.Message
|
|
// interface.
|
|
var _ Message = (*FundingCreated)(nil)
|
|
|
|
// Encode serializes the target FundingCreated into the passed io.Writer
|
|
// implementation. Serialization will observe the rules defined by the passed
|
|
// protocol version.
|
|
//
|
|
// This is part of the lnwire.Message interface.
|
|
func (f *FundingCreated) Encode(w io.Writer, pver uint32) error {
|
|
return WriteElements(
|
|
w, f.PendingChannelID[:], f.FundingPoint, f.CommitSig,
|
|
f.ExtraData,
|
|
)
|
|
}
|
|
|
|
// Decode deserializes the serialized FundingCreated stored in the passed
|
|
// io.Reader into the target FundingCreated using the deserialization rules
|
|
// defined by the passed protocol version.
|
|
//
|
|
// This is part of the lnwire.Message interface.
|
|
func (f *FundingCreated) Decode(r io.Reader, pver uint32) error {
|
|
return ReadElements(
|
|
r, f.PendingChannelID[:], &f.FundingPoint, &f.CommitSig,
|
|
&f.ExtraData,
|
|
)
|
|
}
|
|
|
|
// MsgType returns the uint32 code which uniquely identifies this message as a
|
|
// FundingCreated on the wire.
|
|
//
|
|
// This is part of the lnwire.Message interface.
|
|
func (f *FundingCreated) MsgType() MessageType {
|
|
return MsgFundingCreated
|
|
}
|
|
|
|
// MaxPayloadLength returns the maximum allowed payload length for a
|
|
// FundingCreated message.
|
|
//
|
|
// This is part of the lnwire.Message interface.
|
|
func (f *FundingCreated) MaxPayloadLength(uint32) uint32 {
|
|
return MaxMsgBody
|
|
}
|