12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package lnwire
- import (
- "bytes"
- "testing"
- "github.com/btcsuite/btcd/btcec/v2"
- )
- // TestDecodeAcceptChannel tests decoding of an accept channel wire message with
- // and without the optional upfront shutdown script.
- func TestDecodeAcceptChannel(t *testing.T) {
- tests := []struct {
- name string
- shutdownScript DeliveryAddress
- }{
- {
- name: "no upfront shutdown script",
- shutdownScript: nil,
- },
- {
- name: "empty byte array",
- shutdownScript: []byte{},
- },
- {
- name: "upfront shutdown script set",
- shutdownScript: []byte("example"),
- },
- }
- for _, test := range tests {
- test := test
- t.Run(test.name, func(t *testing.T) {
- priv, err := btcec.NewPrivateKey()
- if err != nil {
- t.Fatalf("cannot create privkey: %v", err)
- }
- pk := priv.PubKey()
- encoded := &AcceptChannel{
- PendingChannelID: [32]byte{},
- FundingKey: pk,
- RevocationPoint: pk,
- PaymentPoint: pk,
- DelayedPaymentPoint: pk,
- HtlcPoint: pk,
- FirstCommitmentPoint: pk,
- UpfrontShutdownScript: test.shutdownScript,
- }
- buf := &bytes.Buffer{}
- if _, err := WriteMessage(buf, encoded, 0); err != nil {
- t.Fatalf("cannot write message: %v", err)
- }
- msg, err := ReadMessage(buf, 0)
- if err != nil {
- t.Fatalf("cannot read message: %v", err)
- }
- decoded := msg.(*AcceptChannel)
- if !bytes.Equal(
- decoded.UpfrontShutdownScript, encoded.UpfrontShutdownScript,
- ) {
- t.Fatalf("decoded script: %x does not equal encoded script: %x",
- decoded.UpfrontShutdownScript, encoded.UpfrontShutdownScript)
- }
- })
- }
- }
|